Передача переменной из скрипта ArcPy в ModelBuilder?

9

У меня есть модель, которая передает переменную в скрипт Python. Сценарий использует эту переменную для запроса некоторых каталогов и возврата списка путей. То, что я хочу знать, это:

  • Как я могу использовать каждый из этих путей в качестве параметра в последующей операции?
  • Является ли мост между python и ModelBuilder улицей с односторонним движением?
Том
источник

Ответы:

8

Я предполагаю, что вы добавили скрипт Python в модель, сначала добавив скрипт Python на панель инструментов, настроив ввод скрипта через вкладку «Параметры».

На вкладке «Параметры» вы можете добавить новые параметры для вывода скрипта. Для этого просто измените:

  • Directionв Параметрах свойств к Output;
  • в Data Typeзависимости от того, каким будет вывод Python (возможно, строка или целое число, но, возможно, класс объектов);
  • а затем Typeв свойствах параметров для Derived(хотя, чтобы быть справедливым, Requiredи Optionalбудет работать в зависимости от типа данных, но я опишу это ниже)

Затем мы можем просто использовать arcpy.SetParameterдля вывода вашего скрипта Python обратно в модель.

Пара заметок:

  • Если для выходного параметра установлено значение Requiredили Optionalвы можете вводить данные в сценарий, предоставляя значения по умолчанию, которые можно получить с помощью arcpy.GetParameterили изsys.argv
  • Номер параметра, который нужно установить в качестве выходного, зависит от общего количества параметров для вашего скрипта Python (т. Е. Если у вас уже есть два входных параметра перед выходным параметром, то вам нужно использовать arcpy.SetParameter(2, value))

Также взгляните на справку параметров инструмента arcpy Setting script .

om_henners
источник