Вы можете задать пользовательское поведение собственного инструмента геообработки, например, включение и отключение параметров, задание значений по умолчанию и обновление строковых ключевых слов. С помощью добавления кода Python, вы можете сделать следующее:
- Изменить фильтр параметра. Используя фильтр поля, вы можете создать список корректных типов поля, таких, как Long и Double. Используя текстовый фильтр, вы можете задать список корректных ключевых слов. Существует шесть типов фильтров: Список значений - Value List, Диапазон - Range, Класс объектов - Feature Class, Файл - File, Поле - Field и Рабочая область - Workspace.
- Указать значения по умолчанию для параметров, таких, как размер ячейки для растров.
- Настроить предупреждения и сообщения об ошибках.
- Включить или отключить параметр, основываясь на значениях, содержащихся в других параметрах.
Примечание:
Если параметр отключен, он исчезнет из диалогового окна на панели Геообработка, а если его снова включить, он снова появится. Тот же эффект наблюдается в нескольких системных инструментах геообработки, таких как инструмент Добавить поле, в котором несколько параметров зависят от типа поля.
- Изменить описание выходных наборов данных, чтобы использовать их в ModelBuilder. Обновление описания позволяет последующим инструментам в ModelBuilder идентифицировать ожидаемые характеристики данных до их запуска.
Как работает проверка
Проверка выполняется с помощью блока кода Python, который геообработка использует для управления тем, как панель Геообработки и окно Python изменяются в зависимости от пользовательского ввода.
Проверка
Проверка означает проверку всех параметров инструмента на корректность, и предоставление полезных сообщений, если они не корректны. Ниже приведены две части проверки:
- Проверка, которая выполняется ArcGIS Pro автоматически. Эта часть проверки называется внутренняя проверка.
- Проверку можно выполнить, добавив код.
Внутренняя проверка выполняет следующие действия:
- Если требуется параметр, он оценивается, чтобы определить, предоставлено ли значение. Если значение не указано, выводится сообщение.
- Проверяет, что значение имеет правильный тип. Например, введение растра вместо класса объектов или строки вместо числа.
- Проверяет участие в фильтре; то есть, если у вас есть фильтр списка значений, содержащий ключевые слова, такие как КРАСНЫЙ, ОРАНЖЕВЫЙ и ЖЕЛТЫЙ, и вы вводите СИНИЙ, вы получите сообщение об ошибке.
- Проверяет существование входных наборов данных.
- Генерирует путь по умолчанию для выходных наборов данных.
- Обновляет описание выходных данных на основе набора правил, содержащихся в объекте Schema.
- Проверяет наличие выходных наборов данных с помощью параметра Разрешить инструментам геообработки перезаписывать существующие наборы данных. Если набор данных существует и параметр имеет значение Ложь, выдается ошибка; в противном случае выдается предупреждение.
- Если параметр имеет тип данных Поле, проверяется существование поля в связанной таблице.
- Проверяет, что выходной набор данных отличается от входного набора данных.
- Для параметров, содержащих типы данных линейных и площадных единиц, задает их значения по умолчанию, проверяя соответствующие значения в ArcGIS Pro (если запущен из ArcGIS Pro).
Вы можете настроить проверку для выполнения следующих действий:
- Изменение фильтров на основе взаимодействия с другими параметрами. Например, если пользователь вводит класс точечных объектов в первом параметре, вы хотите, чтобы третий параметр отображал один набор вариантов выбора. Если введен класс полигональных объектов, необходимо отобразить другой набор вариантов в третьем параметре.
- Включение и отключение параметров.
- Вычисление значений по умолчанию.
- Выполнение взаимодействий любых параметров, специфических для данного инструмента.
Добавленный код работает с внутренней проверкой следующим образом:
- Вы можете установить набор правил, которые внутренняя проверка использует для изменения описания выходных наборов данных. Эти правила содержатся в объекте Schema.
- Вы можете изменять и обновлять фильтры перед выполнением внутренней проверки. Внутренняя проверка сравнивает введенное пользователем значение со значениями в фильтре.
Вы можете настроить свой код проверки для расчета значений по умолчанию, включения и отключения параметров, а также настройки сообщений. Подобные действия не имеют последствий для внутренней проверки.