Parameter

Краткая информация

Каждый параметр инструмента имеет связанный с ним объект Parameter, характеризующийся необходимыми для осуществления проверки свойствами и методами.

Обсуждение

Хотя многие свойства объекта Parameter доступны для чтения и записи, большинство из них можно задать или изменить только при первоначальном создании или изменении объекта. Некоторые свойства, включая name, displayName, datatype, direction и parameterType, устанавливают характеристики инструмента и не могут быть изменены во время проверки (например, updateMessages и updateParameters).

Синтаксис

 Parameter  ({name}, {displayName}, {direction}, {datatype}, {parameterType}, {enabled}, {category}, {symbology}, {multiValue})
ПараметрОписаниеТип данных
name

Имя параметра

(Значение по умолчанию — None)

String
displayName

Надпись параметра, отображаемая в диалоговом окне инструмента.

(Значение по умолчанию — None)

String
direction

Входное/выходное направление параметра.

(Значение по умолчанию — None)

String
datatype

Тип данных параметра.

Для получения списка типов данных параметров см. Типы данных в геообработке.

(Значение по умолчанию — None)

String
parameterType

Свойство parameterType может содержать Required, Optional или Derived.

(Значение по умолчанию — None)

String
enabled

False, если параметр недоступен.

(Значение по умолчанию — None)

Boolean
category

Категория параметра.

(Значение по умолчанию — None)

String
symbology

Путь к файлу слоя (.lyrx или .lyr), используемый для отображения выходных данных.

(Значение по умолчанию — None)

String
multiValue

True, если параметр является параметром с множественными значениями.

(Значение по умолчанию — None)

Boolean

Свойства

СвойствоОписаниеТип данных
altered
(только чтение)

True, если пользователь изменил значение.

Boolean
category
(чтение и запись)

Категория параметра.

String
columns
(чтение и запись)

Типы данных столбца и имена параметра таблицы значений, заданные с использованием списка списков:

import arcpy
param = arcpy.Parameter()
param.datatype = "GPValueTable"
param.columns = [["GPFeatureLayer", "Features"], ["GPLong", "Ranks"]]
String
datatype
(чтение и запись)

Тип данных параметра.

Для получения списка типов данных параметров см. Типы данных в геообработке.

String
defaultEnvironmentName
(чтение и запись)

Переменная среды геообработки, используемая для установки значения параметра по умолчанию.

String
direction
(чтение и запись)

Входное/выходное направление параметра.

String
displayName
(чтение и запись)

Надпись параметра, отображаемая в диалоговом окне инструмента.

String
displayOrder
(чтение и запись)

Порядок отображения параметров в диалоговом окне инструмента. Может отличаться от порядка, в котором к параметрам обращается Python.

Integer
enabled
(чтение и запись)

False, если параметр недоступен.

Boolean
filter
(только чтение)

Фильтр, применяемый к значениям параметра.

Filter
filters
(чтение и запись)

Такой же, как filter, но используется для поддержки параметров таблицы значений.

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, если параметр был проверен программой внутренней проверки.

Boolean
message
(только чтение)

Сообщение, показываемое пользователю.

String
multiValue
(чтение и запись)

True, если параметр является параметром с множественными значениями.

Boolean
name
(чтение и запись)

Имя параметра

String
parameterDependencies
(чтение и запись)

Список индексов каждого зависимого параметра.

В инструменте-скрипте parameterDependencies устанавливается со списком индексов параметров; в инструменте набора инструментов Python parameterDependencies устанавливается со списком имен параметров.

Integer
parameterType
(чтение и запись)

Свойство parameterType может содержать Required, Optional или Derived.

При проверке значение parameterType не может быть динамически изменено. Однако может потребоваться, чтобы параметр соответствовал обязательному или необязательному, в зависимости от настроек других параметров. В этом случае установите параметр как дополнительный. Затем в методе проверки updateMessages используйте метод Parameter setIDMessage с идентификатором сообщения 735. Использование идентификатора сообщения 735 приводит к тому, что необязательный параметр ведет себя как обязательный параметр.

  • RequiredДля выполнения параметра необходимо значение инструмента.
  • OptionalДля выполнения параметра не требуется значение инструмента.
  • DerivedИнструмент возвращает выходное значение, которое не указано в качестве входного параметра. Производные параметры всегда являются выходными параметрами.
String
schema
(только чтение)

Схема выходного набора данных.

Schema
symbology
(чтение и запись)

Путь к файлу слоя (.lyrx или .lyr), используемый для отображения выходных данных.

String
value
(чтение и запись)

Значение параметра.

Object
valueAsText
(только чтение)

Значение параметра в виде строки.

String
values
(чтение и запись)

Значения параметра Таблица значений, заданные для использование в списке списков.

Variant

Обзор метода

МетодОписание
clearMessage ()

Очищает любой текст сообщения и устанавливает статус на информативность (не ошибка и не предупреждение).

hasError ()

Возвращает значение True, если параметр содержит ошибку.

Чтобы определить, имеется ли в параметре ошибка, hasError необходимо вызывать внутри метода updateMessages проверки инструмента.

hasWarning ()

Возвращает значение True, если параметр содержит предупреждение.

isInputValueDerived ()

Возвращает значение True, если инструмент был проверен внутри Модели и его входное значение является выходным значением другого инструмента данной модели.

setErrorMessage (message)

Устанавливает параметр как имеющий ошибку с предоставленным сообщением. Инструменты не выполняются, если один из параметров имеет ошибку.

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

Задает параметр как имеющий системное сообщение.

setWarningMessage (message)

Устанавливает параметр как имеющий ошибку с предоставленным сообщением. В отличие от ошибок, инструменты будут выполняться с предупреждающими сообщениями.

Методы

clearMessage ()
hasError ()
Возвращаемое значение
Тип данныхОписание
Boolean

True, если параметр содержит ошибку.

hasWarning ()
Возвращаемое значение
Тип данныхОписание
Boolean

True, если параметр содержит предупреждение.

isInputValueDerived ()
Возвращаемое значение
Тип данныхОписание
Boolean

Значение True, если инструмент был проверен внутри Модели и его входное значение является выходным значением другого инструмента данной модели.

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 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)
ПараметрОписаниеТип данных
message

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

String

Пример кода

Parameter, пример

Включение или отключение параметра в классе ToolValidator.

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 2, пример

Задание значения по умолчанию для параметра в классе ToolValidator.

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 3, пример

Задание пользовательского сообщения об ошибке для параметра в классе ToolValidator.

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

Связанные разделы