Вы можете задать пользовательское поведение в диалоговом окне вашего инструмента-скрипта, указав параметры включения и отключения, значения по умолчанию и строковые ключевые слова обновления. С помощью добавления кода Python, вы можете сделать следующее:
- Изменить фильтр параметра. Используя фильтр поля, вы можете создать список корректных типов поля, таких, как LONG и DOUBLE. Используя текстовый фильтр, вы можете задать список корректных ключевых слов. Существует шесть типов фильтров: Список значений - Value List, Диапазон - Range, Класс объектов - Feature Class, Файл - File, Поле - Field и Рабочая область - Workspace.
- Указать значения по умолчанию для параметров, таких, как размер ячейки для растров.
- Настроить предупреждения и сообщения об ошибках, которые появляются в диалоговом окне.
- Включить или отключить параметр, основываясь на значениях, содержащихся в других параметрах.
Примечание:
Когда параметр отключен, он исчезает из диалогового окна инструмента, и, при включении, он будет отображаться вновь. Этот эффект можно увидеть на нескольких системных инструментах геообработки, таких как инструмент Добавить поле, где потребность в нескольких параметрах зависит от типа поля.
- Поместить параметры в различные категории. Категории - это разворачиваемые списки с набором параметров.
- Изменить описание выходных наборов данных, чтобы использовать их в ModelBuilder. Посредством обновления описания, последующие инструменты в ModelBuilder могут увидеть ожидаемые характеристики данных до запуска любого из инструментов.
Как работает проверка
Проверка выполняется в блоке кода Python, который геообработка использует, чтобы контролировать изменение диалогового окна инструмента и окна Python, основываясь на пользовательских входных данных. Системные инструменты (предоставляемые Esri) всегда содержат функциональность, позволяющую реагировать на задаваемые пользователем данные и соответственно изменять диалоговое окно инструмента, как описано выше.
Проверка
Проверка означает проверку всех параметров инструмента на корректность, и предоставление полезных сообщений, если они не корректны. Существует две части проверки:
- Часть, осуществляемая с помощью добавления кода Python.
- Часть, осуществляемая автоматически в ArcGIS. Эта часть проверки называется внутренняя проверка (или базовая проверка), поскольку она является базовой проверкой, выполняемой внутри ArcGIS с помощью геообработки.
Что делает внутренняя проверка (internal validation):
- Если требуется какой-либо параметр, то проверяет, не пустой ли он (ранее не введен), и если да, то отправляет сообщение о требовании значения в диалоговое окно инструмента.
- Проверяет правильность типа введенного пользователем значения (например, введение растра вместо класса объектов, или текстового символа вместо числа).
- Проверяет участие в фильтре; то есть, если у вас есть фильтр списка значений, содержащий такие ключевые слова, как RED, ORANGE, и YELLOW, и вы вводите значение BLUE, то вы получите сообщение об ошибке, поскольку BLUE не содержится в фильтре списка значений.
- Проверяет существование входных наборов данных.
- Генерирует путь, используемый по умолчанию, для выходных наборов данных.
- Изменяет описание выходных данных на основе набора правил, содержащихся в специальном объекте Schema.
- Проверяет существование выходных данных в настройке среды overwriteOutput. Если набор данных существует, и параметр overwriteOutput имеет значение False, то выводится ошибка; в противном случае выводится предупреждение.
- Если параметр является Типом поля данных, то выполняется проверка на существование поля в связанной таблице.
- Проверяет, чтобы выходной набор данных не совпадал с входным набором данных (если только выходной результат не вычисляется, как, например, в инструменте Добавить поле).
- Для параметров, содержащих типы данных линейных и площадных единиц, устанавливает значения по умолчанию, взятые после обработки соответствующих значений в ArcGIS Pro (при запуске из ArcGIS Pro).
- Если результатом является покрытие, грид или таблица INFO, проверяет имя файла на ограничение длины в 13 символов для этих наборов данных.
Внутренняя проверка не выполняет следующее (но вы можете сделать это с помощью собственного кода проверки):
- Изменение фильтров на основе взаимодействия с другими параметрами. Например, если пользователь вводит в качестве первого параметра класс точечных объектов, и вы хотите, чтобы диалоговое окно отображало в третьем параметре RED, ORANGE и YELLOW. Если пользователь вводит полигональный класс объектов, вы хотите отображать в третьем параметре BLUE, INDIGO и VIOLET.
- Включение/Отключение параметров.
- Вычисление значений по умолчанию.
- Выполнение взаимодействий любых параметров, специфических для данного инструмента.
Код, который вы добавляете, работает в соответствии с внутренней проверкой, например:
- Вы можете установить набор правил, которые внутренняя проверка использует для изменения описания выходных наборов данных. Эти правила содержатся в объекте Schema.
- Вы можете изменять и обновлять фильтры перед выполнением внутренней проверки. В примере выше, если введен класс точечных объектов, то вы изменяете фильтр на содержание значений RED, ORANGE и YELLOW Внутренняя проверка проверяет введенное пользователем значение на соответствие значениям в фильтре.
Вы можете использовать собственный код проверки для вычисления значений по умолчанию, включения и отключения параметров и настройки сообщений. Эти типы действий не имеют последствий для внутренней проверки; они влияют только на появление диалогового окна инструмента.