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

Направление параметра.

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

String
datatype

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

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

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

String
parameterType

Тип параметра.

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

String
enabled

Определяет, будет ли параметр виден на панели Геообработка.

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

Boolean
category

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

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

String
symbology

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

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

String
multiValue

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

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

Boolean

Свойства

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

Определяет, изменил ли пользователь значение.

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

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

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

Список объектов Chart, которые добавляются к выходному параметру.

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

Структура столбцов в параметре таблицы значений.

Столбцы организованы в виде списка списков, где каждый внутренний список представляет тип данных столбца, имя столбца и дополнительное значение только для чтения. Если для значения только для чтения установлено значение ReadOnly, столбец не может быть изменен пользователем.


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

Идентификатор класса, который может быть использован для изменения элемента управления по умолчанию для типа данных.

Подробнее об элементах управления параметрами

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

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

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

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

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

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

Направление параметра.

  • Input - входной параметр
  • Output - выходной параметр
String
displayName
(чтение и запись)

Надпись параметра, показываемая на панели Геообработка.

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

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

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

Определяет, будет ли параметр виден на панели Геообработка.

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
(только чтение)

Определяет, были ли параметр проверен программой внутренней проверки.

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

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

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

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

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

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

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

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

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

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

Тип параметра.

  • Required - инструмент не может быть запущен до тех пор, пока не будет указано значение.
  • Optional – для параметра не требуется значение.
  • Derived - параметр возвращает выходное значение. Производные параметры всегда являются выходными параметрами и не отображаются на панели Геообработка.

Для производных параметров задайте для свойства direction значение Output, а для свойства parameterType - Derived.

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

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

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