Краткий обзор использования предварительных условий
Предварительные условия можно использовать для управления последовательностью операций в модели. Например, можно настроить запуск процесса после другого процесса, сделав выходные данные первого процесса предварительным условием второго процесса. Предварительным условием для работы инструмента можно сделать любую переменную. В свою очередь, любой инструмент может иметь несколько предварительных условий.
Пример 1. Установка переменной даты в качестве предварительного условия
В этом примере два отдельных, но связанных между собой, процесса будут соединены с применением предварительного условия, согласно которому один процесс выполняется перед другим. В первой строке процессов происходит создание нового набора классов объектов в новой файловой базе геоданных. Во втором процессе происходит перенос класса объектов в область изучения, а затем запись выходных данных в недавно созданный набор классов объектов.
Если представленную выше модель выполнить как есть, то контролировать последовательность операций будет невозможно; инструмент Вырезание (Clip) может выполнить свою функцию прежде, чем будет создано место расположения выходных данных, что приведет к ошибке. Вот один из способов избежать этого. Сначала запустите процессы Создать файловую БГД (Create File GDB) и Создать набор классов объектов (Create Feature Dataset), щелкнув процесс правой кнопкой мыши и выбрав Запуск (Run), и наконец запустите процесс Вырезание (Clip).
Однако этот метод запуска отдельных инструментов работает только в интерфейсе ModelBuilder. А что если модель необходимо запустить вне ModelBuilder или необходимо выполнить всю модель сразу, а не инструмент за инструментом?
Предварительные условия можно использовать для управления последовательностью операций в модели. В представленной ниже модели новая переменная Набор классов объектов (Feature Dataset) назначена предварительным условием для инструмента Вырезание (Clip). Благодаря этому выполнение инструмента Вырезание (Clip) не начнется, пока не будет создан новый набор классов данных.
Пример 2. Установка логической переменной в качестве предварительного условия
В представленном выше примере переменная набора классов объектов использовалась в качестве предварительного условия для инструмента. Логическая переменная в роли предварительного условия проявляет себя несколько иначе, чем переменные вроде наборов классов объектов или классов объектов. При работе с логическими переменными ModelBuilder воспринимает одно из двух значений переменной (ИСТИНА (TRUE) или ЛОЖЬ (FALSE)) вместо того, чтобы определять, созданы ли данные. Если обнаруживается значение ИСТИНА (TRUE), значит предварительное условие удовлетворено и зависимый инструмент будет применен. Если обнаруживается значение ЛОЖЬ (FALSE), значит предварительное условие не удовлетворено и зависимый инструмент не будет применен. В представленном ниже примере логическая переменная Запуск модели (Run Model) назначена предварительным условием инструмента.
Переменная логической предпосылки преобразуется в параметр модели, поэтому она отображается при открытии диалогового окна инструмента модели. При установке флажка Запуск модели (Run Model) в диалоговом окне инструмента для переменной устанавливается значение ИСТИНА (TRUE). Поэтому при выполнении модели будет выполнен зависимый процесс внутри модели (Добавить поле (Add Field)). Если флажок Запуск модели (Run Model) не установлен, для переменной устанавливается значение ЛОЖЬ (FALSE). Поэтому при выполнении модели зависимый процесс внутри модели не будет выполнен, поскольку предварительное условие не удовлетворено. Если флажок для параметра не установлен, при запуске модели появится предупреждение: «Этот процесс не выполнен, поскольку не выполнено предварительное условие (The process did not execute because the precondition is false)».
Более подробно о создании различных типов переменных модели см. в разделе Создание переменных.
Пример 3. Установка переменной длинного целого в качестве предварительного условия
Длинная переменная (длинное целое число) в качестве предварительного условия ведет себя так же, как логическая переменная. Если значение длинной переменной представляет собой положительное целое число, оно приравнивается к истине и зависимый процесс выполняется. Если значение «0» или отрицательное, оно приравнивается ко лжи и зависимый процесс не выполняется.