Вы можете задать пользовательское поведение в диалоговом окне вашего инструмента-скрипта, указав параметры включения и отключения, значения по умолчанию и строковые ключевые слова обновления. С помощью добавления кода Python, вы можете сделать следующее:
- Включить или отключить параметр, основываясь на значениях, содержащихся в других параметрах.
- Изменить фильтр параметра. Используя фильтр поля, вы можете создать список корректных типов поля, таких, как Long и Double. Используя текстовый фильтр, вы можете задать список корректных ключевых слов, как показано ниже. Существует шесть типов фильтров: Список значений, Диапазон, Класс объектов, Файл, Поле и Рабочая область.
- Указать значения по умолчанию для параметров, таких, как размер ячейки для растров.
- Настроить предупреждения и сообщения об ошибках, которые появляются в диалоговом окне.
- Поместить параметры в различные категории.
- Изменить описание выходных наборов данных, чтобы использовать их в ModelBuilder.
Как работает проверка
Проверка выполняется с помощью блока кода Python, который геообработка использует для управления изменением диалогового окна инструмента и окна Python на основе пользовательского ввода. Системные инструменты (предоставляемые Esri) могут реагировать на задаваемые пользователем данные и соответственно изменять диалоговое окно инструмента, как описано выше.
Проверка
Проверка означает проверку всех параметров инструмента на корректность, и предоставление полезных сообщений, если они не корректны. Существует две части проверки:
- Код, который вы добавляете.
- Автоматическая внутренняя проверка (или базовая проверка), выполняемая геообработкой в ArcGIS.
Внутренняя проверка выполняет следующие действия:
- Если параметр требуется, он проверяет, не является ли он пустым (ничего не введено), и, если да, указывает в диалоговом окне инструмента, что требуется значение (используя зеленую точку вместо красного X).
- Проверяет, имеет ли введенное значение правильный тип (например, растр вместо класса пространственных объектов или символы алфавита вместо числа).
- Проверяет принадлежность фильтра. Например, если у вас есть Фильтр списка значений, содержащий ключевые слова RED, ORANGE и YELLOW, и вы вводите значение BLUE, вы получите сообщение об ошибке, поскольку BLUE не содержится в Фильтре списка значений.
- Проверяет существование входных наборов данных.
- Генерирует путь для выходных наборов данных, используемый по умолчанию.
- Изменяет описание выходных данных на основе набора правил, содержащихся в специальном объекте Schema.
- Проверяет наличие выходного набора данных с параметром геообработки, позволяющим перезапись выходных данных. Если набор данных существует, и данный параметр имеет значение False, выводится ошибка, в противном случае выводится предупреждение.
- Если параметр является Типом поля данных, то выполняется проверка на существование поля в связанной таблице.
- Проверяет, чтобы выходной набор данных не совпадал с входным набором данных (если только данные не обрабатываются, как, например, в инструменте Добавить поле).
- Для параметров, содержащих типы данных линейных и площадных единиц, устанавливает значения по умолчанию, исследуя соответствующие значения в ArcMap (при запуске из ArcMap).
- Если результатом является покрытие, грид или таблица INFO, проверяет имя файла на ограничение длины в 13 символов для этих наборов данных.
Внутренняя проверка не выполняет следующее (но вы можете сделать это с помощью собственного кода проверки):
- Изменение фильтров на основе взаимодействия с другими параметрами. Например, если пользователь вводит в качестве первого параметра класс точечных объектов, и вы хотите, чтобы в третьем параметре диалогового окна отображались значения RED, ORANGE и YELLOW. Если пользователь вводит полигональный класс объектов, вы хотите отображать в третьем параметре значения BLUE, INDIGO и VIOLET.
- Включение или отключение параметров.
- Вычисление значений по умолчанию.
- Выполнение взаимодействий любых параметров, специфических для данного инструмента.
Добавляемый код работает с внутренней проверкой следующим образом:
- Вы можете установить набор правил, которые внутренняя проверка будет использовать для изменения описания выходных наборов данных. Эти правила содержатся в объекте Schema.
- Вы можете изменять и обновлять фильтры перед выполнением внутренней проверки. В приведенном выше примере, если введен класс точечных объектов, обновите фильтр, чтобы он содержал RED, ORANGE и YELLOW. Внутренняя проверка проверяет введенное пользователем значение на соответствие значениям в фильтре.
И, как было указано, вы можете использовать собственный код проверки для вычисления значений по умолчанию, включения и отключения параметров, и настройки сообщений. Эти типы действий не имеют последствий для внутренней проверки; они влияют только на появление диалогового окна инструмента.