Parameter

Resumen

Every tool parameter has an associated Parameter object with properties and methods that are useful in tool validation.

Debate

Although many Parameter object properties are read/write, most of these properties can only be set or modified when you initially create or modify the object. Several properties, including name, displayName, datatype, direction, and parameterType, establish the characteristics of a tool and cannot be modified during validation methods (such as updateMessages and updateParameters).

Sintaxis

 Parameter ({name}, {displayName}, {direction}, {datatype}, {parameterType}, {enabled}, {category}, {symbology}, {multiValue})
ParámetroExplicaciónTipo de datos
name

The parameter name.

(El valor predeterminado es None)

String
displayName

The parameter label as shown in the Geoprocessing pane.

(El valor predeterminado es None)

String
direction

The direction of the parameter.

(El valor predeterminado es Input)

String
datatype

The data type of the parameter.

For a list of parameter data types, see Geoprocessing data types.

(El valor predeterminado es GPString)

String
parameterType

The parameter type.

(El valor predeterminado es Required)

String
enabled

Specifies whether the parameter is visible in the Geoprocessing pane.

(El valor predeterminado es True)

Boolean
category

The category of the parameter.

(El valor predeterminado es None)

String
symbology

The path to a layer file (.lyrx or .lyr) used for drawing the output.

(El valor predeterminado es None)

String
multiValue

Specifies whether the parameter is a multivalue parameter.

(El valor predeterminado es False)

Boolean

Propiedades

PropiedadExplicaciónTipo de datos
altered
(Sólo lectura)

Specifies whether the user has modified the value.

Boolean
category
(Lectura y escritura)

The category of the parameter.

String
charts
(Lectura y escritura)

A list of Chart objects that are added to an output parameter.

Object
columns
(Lectura y escritura)

The structure of the columns in a value table parameter.

The columns are organized in a list of lists, with each inner list representing the column data type, column name, and an optional read-only value. If the read-only value is set to ReadOnly, the column cannot be modified by the user.


import arcpy
param = arcpy.Parameter()
param.datatype = "GPValueTable"
param.columns = [["GPFeatureLayer", "Features"], ["GPLong", "Ranks"]]
String
controlCLSID
(Lectura y escritura)

A class identifier that can be used to override the default control for the data type.

Learn more about parameter controls

String
datatype
(Lectura y escritura)

The data type of the parameter.

For a list of parameter data types, see Geoprocessing data types.

String
defaultEnvironmentName
(Lectura y escritura)

The name of the geoprocessing environment setting used to set the parameter's default value.

String
direction
(Lectura y escritura)

The direction of the parameter.

  • Input—An input parameter
  • Output—An output parameter
String
displayName
(Lectura y escritura)

The parameter label as shown in the Geoprocessing pane.

String
displayOrder
(Lectura y escritura)

The order in which a parameter displays in the Geoprocessing pane. This may be different from the order the parameters are accessed from Python.

Integer
enabled
(Lectura y escritura)

Specifies whether the parameter is visible in the Geoprocessing pane.

Boolean
filter
(Sólo lectura)

The filter to apply to values in the parameter.

Filter
filters
(Lectura y escritura)

Similar to the filter property, but it is used to support value table parameters.

class SampleTool(object):
    # __init__ left out to simplify example

    def getParameterInfo(self):
        in_fc = arcpy.Parameter(
            name='in_features',
            displayName='Input Features',
            datatype='GPFeatureLayer',
            direction='Input',
            parameterType='Required')

        vt = arcpy.Parameter(
            name='summary_fields',
            displayName='Summary fields',
            datatype='GPValueTable',
            direction='Input',
            parameterType='Optional')

        vt.parameterDependencies = [in_fc.name]
        vt.columns = [['Field', 'Field'], ['GPString', 'Statistic'], ['GPDouble', 'Multiplier']]
        vt.filters[0].list = ['Double', 'Float', 'Short', 'Long']
        vt.filters[1].type = 'ValueList'
        vt.filters[1].list = ['SUM', 'MIN', 'MAX', 'MEAN']
        vt.filters[2].type = 'Range'
        vt.filters[2].list = [0,10]
Filter
hasBeenValidated
(Sólo lectura)

Specifies whether the internal validation routine has checked the parameter.

Boolean
message
(Sólo lectura)

The message to be displayed to the user.

String
multiValue
(Lectura y escritura)

Specifies whether the parameter is a multivalue parameter.

Boolean
name
(Lectura y escritura)

The parameter name.

String
parameterDependencies
(Lectura y escritura)

A list of indexes of each dependent parameter.

In a script tool, parameterDependencies is set with a list of parameter indexes; in a Python toolbox tool, parameterDependencies is set with a list of parameter names.

Integer
parameterType
(Lectura y escritura)

The parameter type.

  • Required—The tool cannot be run until a value has been provided.
  • Optional—The parameter does not require a value.
  • Derived—The parameter returns an output value. Derived parameters are always output parameters and are not shown in the Geoprocessing pane.

For derived parameters, set the direction property to Output and the parameterType property to Derived.

En la validación, el valor de parameterType no se puede modificar de forma dinámica. Sin embargo, puede que resulte necesario que un parámetro se comporte como un parámetro obligatorio o un parámetro opcional, dependiendo de la configuración del otro parámetro. En este caso, configure el parámetro como opcional. Entonces, en el método de validación updateMessages, utilice el método Parameter setIDMessage con el mensaje Id. 530 o 735. El uso del mensaje Id. 530 o 735 hará que un parámetro opcional se comporte como un parámetro obligatorio.

String
schema
(Sólo lectura)

The schema of the output dataset.

Schema
symbology
(Lectura y escritura)

The path to a layer file (.lyrx or .lyr) used for drawing the output.

String
value
(Lectura y escritura)

The value of the parameter.

Object
valueAsText
(Sólo lectura)

The value of the parameter as a string.

String
values
(Lectura y escritura)

The values of a Value Table parameter, which is set using a list of lists.

Variant

Descripción general del método

MétodoExplicación
clearMessage ()

Clears out any message text and sets the status to informative (no error or warning).

hasError ()

Returns True if the parameter contains an error.

To evaluate whether a parameter has an error, hasError should be called within the tool validation's updateMessages method.

hasWarning ()

Returns True if the parameter contains a warning.

isInputValueDerived ()

Returns True if the tool is being validated inside a Model and the input value is the output of another tool in the model.

setErrorMessage (message)

Sets a parameter as having an error with the supplied message. Tools do not execute if any of the parameters have an error.

setIDMessage (message_type, message_ID, {add_argument1}, {add_argument2})

Sets a parameter as having a system message.

setWarningMessage (message)

Sets a parameter as having an error with the supplied message. Unlike errors, tools will execute with warning messages.

Métodos

clearMessage ()
hasError ()
Valor de retorno
Tipo de datosExplicación
Boolean

True if the parameter contains an error.

hasWarning ()
Valor de retorno
Tipo de datosExplicación
Boolean

True if the parameter contains a warning.

isInputValueDerived ()
Valor de retorno
Tipo de datosExplicación
Boolean

True if the tool is being validated inside a Model and the input value is the output of another tool in the model.

setErrorMessage (message)
ParámetroExplicaciónTipo de datos
message

The string to be added as an error message to the geoprocessing tool messages.

String
setIDMessage (message_type, message_ID, {add_argument1}, {add_argument2})
ParámetroExplicaciónTipo de datos
message_type

Defines whether the message will be an error or a warning.

  • ERRORThe message will be an error message.
  • WARNINGThe message will be a warning message.
String
message_ID

The message ID allows you to reference existing system messages.

Integer
add_argument1

Depending on which message ID is used, an argument may be necessary to complete the message. Common examples include dataset or field names. The data type is variable depending on the message.

Object
add_argument2

Depending on which message ID is used, an argument may be necessary to complete the message. Common examples include dataset or field names. The data type is variable depending on the message.

Object
setWarningMessage (message)
ParámetroExplicaciónTipo de datos
message

The string to be added as a warning message to the geoprocessing tool messages.

String

Muestra de código

Parameter example

Enable or disable a parameter in a ToolValidator class.

def updateParameters(self):
    # If the option to use a weights file ("Get Spatial Weights From File") 
    # is selected, enable the parameter for specifying the file; 
    # otherwise, disable it.

    if self.params[3].value == "Get Spatial Weights From File":
        self.params[8].enabled = True
    else:
        self.params[8].enabled = False

    return
Parameter example 2

Set a default value for a parameter in a ToolValidator class.

def updateParameters(self):
    # Set the default distance threshold to 1/100 of the larger of
    # the width or height of the extent of the input features.  Do
    # not set if there is no input dataset yet, or the user has set
    # a specific distance (Altered is true).

    if self.params[0].value:
        if not self.params[6].altered:
            extent = arcpy.Describe(self.params[0].value)
        width = extent.XMax - extent.XMin
        height = extent.YMax - extent.YMin

        if width < height:
            self.params[6].value = width / 100
        else:
            self.params[6].value = height / 100

        return
Parameter example 3

Set a custom error message for a parameter in a ToolValidator class.

def updateMessages(self):
    self.params[6].clearMessage()

    # Check whether the threshold distance contains a value of
    # zero and the user has specified a fixed distance band.
    if self.params[6].value <= 0:
        if self.params[3].value == "Fixed Distance Band":
            self.params[6].setErrorMessage(
                "Zero or a negative distance is invalid when "
                "using a fixed distance band. Please use a "
                "positive value greater than zero.")
        elif self.params[6].value < 0:
            self.params[6].setErrorMessage(
                "A positive distance value is required when "
                "using a fixed distance band. Be sure to specify "
                "a distance.")

    return

Temas relacionados