Parameter

概要

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

ディスカッション

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).

構文

 Parameter  ({name}, {displayName}, {direction}, {datatype}, {parameterType}, {enabled}, {category}, {symbology}, {multiValue})
パラメーター説明データ タイプ
name

The parameter name.

(デフォルト値は次のとおりです None)

String
displayName

The parameter label as shown on the tool's dialog box.

(デフォルト値は次のとおりです None)

String
direction

The Input/Output direction of the parameter.

(デフォルト値は次のとおりです None)

String
datatype

The data type of the parameter.

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

(デフォルト値は次のとおりです None)

String
parameterType

parameterType can be Required, Optional, or Derived. Derived means that the user of your tool does not enter a value for the parameter. Derived types are always output parameters.

(デフォルト値は次のとおりです None)

String
enabled

False if the parameter is unavailable.

(デフォルト値は次のとおりです None)

Boolean
category

The category of the parameter.

(デフォルト値は次のとおりです None)

String
symbology

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

(デフォルト値は次のとおりです None)

String
multiValue

True if the parameter is a multivalue parameter.

(デフォルト値は次のとおりです None)

Boolean

プロパティ

プロパティ説明データ タイプ
altered
(読み取り専用)

True if the user has modified the value.

Boolean
category
(読み書き)

The category of the parameter.

String
columns
(読み書き)

The column data types and names of a value table parameter are set using a list of lists.

import arcpy
param = arcpy.Parameter()
param.datatype = "GPValueTable"
param.columns = [["GPFeatureLayer", "Features"], ["GPLong", "Ranks"]]
String
datatype
(読み書き)

The data type of the parameter.

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

String
defaultEnvironmentName
(読み書き)

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

String
direction
(読み書き)

The Input/Output direction of the parameter.

String
displayName
(読み書き)

The parameter label as shown on the tool's dialog box.

String
displayOrder
(読み書き)

The order in which a parameter is displayed on the tool's dialog box. This may be different from the order the parameters are accessed from Python.

Integer
enabled
(読み書き)

False if the parameter is unavailable.

Boolean
filter
(読み取り専用)

The filter to apply to values in the parameter.

Filter
filters
(読み書き)

Similar to filter but 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
(読み取り専用)

True if the internal validation routine has checked the parameter.

Boolean
message
(読み取り専用)

The message to be displayed to the user.

String
multiValue
(読み書き)

True if the parameter is a multivalue parameter.

Boolean
name
(読み書き)

The parameter name.

String
parameterDependencies
(読み書き)

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
(読み書き)

parameterType can be Required, Optional, or Derived. Derived means that the user of your tool does not enter a value for the parameter. Derived types are always output parameters.

  • RequiredA Required parameter requires an input value from the user. The tool cannot be executed until a value has been supplied.
  • Optional An Optional parameter does not require a value.
  • DerivedA Derived parameter is only for output parameters. A derived output parameter does not show on the tool dialog box.
String
schema
(読み取り専用)

The schema of the output dataset.

Schema
symbology
(読み書き)

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

String
value
(読み書き)

The value of the parameter.

Object
valueAsText
(読み取り専用)

The value of the parameter as a string.

メモ:

For Python toolboxes only.

String
values
(読み書き)

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

Variant

手法の概要

手法説明
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)

Marks the 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})

Allows you to set a system message.

setWarningMessage (message)

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

手法

clearMessage ()
hasError ()
戻り値
データ タイプ説明
Boolean

True if the parameter contains an error.

hasWarning ()
戻り値
データ タイプ説明
Boolean

True if the parameter contains a warning.

isInputValueDerived ()
戻り値
データ タイプ説明
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)
パラメーター説明データ タイプ
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})
パラメーター説明データ タイプ
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 datatype 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 datatype is variable depending on the message.

Object
setWarningMessage (message)
パラメーター説明データ タイプ
message

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

String

コードのサンプル

Parameter example

Enabling or disabling 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

Setting 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

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

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

    # Check to see if 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. Please specify "
                "a distance.")

    return

関連トピック