I have a model that passes a variable to a python script. The script uses that variable to query some directories and return a list of paths. What I want to know is:
- How can I then use each of those paths as the parameter in a subsequent operation?
- Is the bridge between python and ModelBuilder a one-way street?
Answer
I assume that you've added the Python script to the model by first adding the Python script to the toolbox, setting the script input through the Parameters tab.
In the Parameters tab you can add new parameters for the script output. To do this simply change:
- the
Directionin the Parameter Properties toOutput; - the
Data Typedepending on what the Python output will be (probably a string or integer, but maybe a feature class); - and then the
Typein the Parameter Properties toDerived(though to be fair,RequiredandOptionalwill work depending on the data type, but I'll describe that below)
Then we can simply use arcpy.SetParameter to output from your Python script back to the model.
A couple of notes:
- If you have the output parameter set to
RequiredorOptionalyou can supply input to your script by providing default values, which you can get witharcpy.GetParameteror fromsys.argv - The number of the parameter to set as output is dependent on the total number of parameters for your Python script (i.e. if you already have two input parameters before your output parameter then you need to use
arcpy.SetParameter(2, value))
Also take a look at the arcpy Setting script tool parameters help.
No comments:
Post a Comment