Краткая информация
У каждого параметра инструмента есть связанный с ним объект 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, столбец не может быть изменен пользователем.
| String |
controlCLSID (чтение и запись) | Идентификатор класса, который может быть использован для изменения элемента управления по умолчанию для типа данных. | String |
datatype (чтение и запись) | Тип данных параметра. Для получения списка типов данных параметров см. Типы данных в геообработке. | String |
defaultEnvironmentName (чтение и запись) | Имя переменной среды геообработки, используемое для установки значения параметра по умолчанию. | String |
direction (чтение и запись) | Направление параметра.
| String |
displayName (чтение и запись) | Надпись параметра, показываемая на панели Геообработка. | String |
displayOrder (чтение и запись) | Порядок, в котором параметр отображается на панели Геообработка. Может отличаться от порядка, в котором к параметрам обращается Python. | Integer |
enabled (чтение и запись) | Определяет, будет ли параметр виден на панели Геообработка. | Boolean |
filter (только чтение) | Фильтр, применяемый к значениям параметра. | Filter |
filters (чтение и запись) | Аналогично свойству filter, но используется для поддержки параметров таблицы значений.
| Filter |
hasBeenValidated (только чтение) | Определяет, были ли параметр проверен программой внутренней проверки. | Boolean |
message (только чтение) | Сообщение, показываемое пользователю. | String |
multiValue (чтение и запись) | Определяет, является ли параметр параметром с множественными значениями. | Boolean |
name (чтение и запись) | Имя параметра | String |
parameterDependencies (чтение и запись) | Список индексов каждого зависимого параметра. В инструменте-скрипте parameterDependencies устанавливается со списком индексов параметров; в инструменте набора инструментов Python parameterDependencies устанавливается со списком имен параметров. | Integer |
parameterType (чтение и запись) | Тип параметра.
Для производных параметров задайте для свойства 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.
| 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 |
Пример кода
Включите или отключите параметр класса 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
Задайте значение по умолчанию для параметра в классе 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
Задайте пользовательское сообщение об ошибке для параметра класса 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