Parameter

Сводка

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

Описание

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

Синтаксис

 Parameter  ({name}, {displayName}, {direction}, {datatype}, {parameterType}, {enabled}, {category}, {symbology}, {multiValue})
ParameterОбъяснениеТип данных
name

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

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

String
displayName

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

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

String
direction

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

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

String
datatype

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

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

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

String
parameterType

parameterType может быть Required, Optional или Derived. Derived означает, что пользователь инструмента не вводит значения параметра. Derived типы всегда являются выходными параметрами.

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

String
enabled

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

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

Boolean
category

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

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

String
symbology

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

(Значение по умолчанию — 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 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 может быть Required, Optional или Derived. Derived означает, что пользователь инструмента не вводит значения параметра. Derived типы всегда являются выходными параметрами.

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

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

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

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

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

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

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

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

Примечание:

Только для наборов инструментов Python.

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

Значения параметра Value Table, заданные для использование в списке списков.

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)
ParameterОбъяснениеТип данных
message

Строка, добавляемая как сообщение об ошибке к сообщениям инструмента геообработки.

String
setIDMessage (message_type, message_ID, {add_argument1}, {add_argument2})
ParameterОбъяснениеТип данных
message_type

Определяет, будет ли сообщение являться сообщением об ошибке или предупреждением.

  • ОШИБКАСообщение будет сообщением об ошибке.
  • WARNINGСообщение будет предупреждением.
String
message_ID

ID сообщения позволяет ссылаться на системные сообщения.

Integer
add_argument1

В зависимости от используемого ID сообщения, для завершения этого сообщения может потребоваться аргумент. В основном это набор данных или имя поля. Значение datatype – это переменная, зависящая от сообщения.

Object
add_argument2

В зависимости от используемого ID сообщения, для завершения этого сообщения может потребоваться аргумент. В основном это набор данных или имя поля. Значение datatype – это переменная, зависящая от сообщения.

Object
setWarningMessage (message)
ParameterОбъяснениеТип данных
message

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

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

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