Parameter
Краткая информация
У каждого параметра инструмента есть связанный с ним объект Parameter, характеризующийся необходимыми для осуществления проверки свойствами и методами.
Обсуждение
Хотя многие свойства объекта Parameter доступны для чтения и записи, большинство из них можно задать или изменить только при первоначальном создании или изменении объекта. Следующие свойства устанавливают характеристики параметра и не могут быть изменены во время методов проверки (таких как updateMessages и updateParameters):
categorycontrolCLSIDdatatypedirectiondisplayNamedisplayOrdermultiValuenameparameterDependenciesparameterType
Синтаксис
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 (Дополнительный) |
Путь к файлу слоя ( (Значение по умолчанию — None) |
String |
|
multiValue (Дополнительный) |
Определяет, является ли параметр параметром с множественными значениями. (Значение по умолчанию — False) |
Boolean |
Свойства
| Имя | Объяснение | Тип данных |
|---|---|---|
|
altered (Только для чтения) |
Определяет, изменил ли пользователь значение. |
Boolean |
|
category (Чтение / Запись) |
Категория параметра. |
String |
|
charts (Чтение / Запись) |
Список объектов |
Object |
|
columns (Чтение / Запись) |
Структура столбцов в параметре Таблицы значений. Столбцы организованы в виде списка списков, где каждый внутренний список представляет тип данных столбца, имя столбца и дополнительное значение только для чтения. Если для значения только для чтения установлено значение
|
String |
|
controlCLSID (Чтение / Запись) |
Идентификатор класса, который может быть использован для изменения элемента управления по умолчанию для типа данных. |
String |
|
datatype (Чтение / Запись) |
Тип данных параметра. |
String |
|
defaultEnvironmentName (Чтение / Запись) |
Имя среды геообработки, которая будет использоваться для установки значения параметра по умолчанию. |
String |
|
direction (Чтение / Запись) |
Определяет направление параметра.
|
String |
|
displayName (Чтение / Запись) |
Надпись параметра, показываемая на панели Геообработка. |
String |
|
displayOrder (Чтение / Запись) |
Порядок, в котором параметр отображается на панели Геообработка. Может отличаться от порядка, в котором к параметрам обращается Python. |
Integer |
|
enabled (Чтение / Запись) |
Определяет, будет ли параметр виден на панели Геообработка. |
Boolean |
|
filter (Только для чтения) |
Фильтр, применяемый к значениям параметра. |
Filter |
|
filters (Чтение / Запись) |
Аналогично свойству Для параметра таблицы значений установите свойство
Для составного параметра установите свойство
|
Filter |
|
hasBeenValidated (Только для чтения) |
Определяет, были ли параметр проверен программой внутренней проверки. |
Boolean |
|
message (Только для чтения) |
Сообщение, показываемое пользователю. |
String |
|
multiValue (Чтение / Запись) |
Определяет, является ли параметр параметром с множественными значениями. |
Boolean |
|
name (Чтение / Запись) |
Имя параметра |
String |
|
parameterDependencies (Чтение / Запись) |
Список индексов каждого зависимого параметра. В инструменте-скрипте |
Integer |
|
parameterType (Чтение / Запись) |
Определяет тип параметра.
Для производных параметров задайте для свойства При проверке значение |
String |
|
schema (Только для чтения) |
Схема выходного набора данных. |
Schema |
|
symbology (Чтение / Запись) |
Путь к файлу слоя ( |
String |
|
value (Чтение / Запись) |
Значение параметра. |
Object |
|
valueAsText (Только для чтения) |
Значение параметра в виде строки. |
String |
|
values (Чтение / Запись) |
Значения параметра Таблица значений, заданные для использование в списке списков. |
Object |
Методы
clearMessage()
Очищает любой текст сообщения и устанавливает статус на информативность (не ошибка и не предупреждение).
hasError()
Возвращает значение True, если параметр содержит ошибку.
Чтобы определить, есть ли в параметре ошибка, необходимо вызывать hasError из метода updateMessages проверки инструмента.
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
Boolean |
|
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.
|
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