Skip to main content

Parameter

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

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

Обсуждение

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

  • category

  • controlCLSID

  • datatype

  • direction

  • displayName

  • displayOrder

  • multiValue

  • name

  • parameterDependencies

  • parameterType

Синтаксис

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, но используется для поддержки параметров таблицы значений и составных параметров.

Для параметра таблицы значений установите свойство filters и определите объект Filter с помощью list и необязательного type для каждого столбца таблицы значений.

class ValueTableSampleTool(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]

        return [in_fc, vt]

Для составного параметра установите свойство filters и определите объект Filter, используя list для каждого типа данных в составном параметре.

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

    def getParameterInfo(self):
        composite = arcpy.Parameter(
            name="composite_example",
            displayName="Composite Example",
            datatype=["GPString", "GPDouble"],
            parameterType="Optional",
            direction="Input",
            multiValue=True)

        composite.filters = ["CodedValue", "Range"]
        composite.filters[0].list = ["MIN", "MAX"]
        composite.filters[1].list = [1, 100]

        return [composite]

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

(Чтение / Запись)

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

Object

Методы

clearMessage()

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

hasError()

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

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

Возвращаемое значение

Тип данных Объяснение

Boolean

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

hasWarning()

Указывает, содержит ли параметр предупреждение.

Возвращаемое значение

Тип данных Объяснение

Boolean

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

isInputValueDerived()

Указывает, проверен ли инструмент внутри модели, а входное значение является выходным значением другого инструмента данной модели.

Возвращаемое значение

Тип данных Объяснение

Boolean

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

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.

  • ERROR—The message will be an error message.

  • WARNING—The 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