Tengo un modelo que pasa una variable a un script de python. La secuencia de comandos utiliza esa variable para algunos directorios de consulta y devuelve una lista de rutas. Lo que quiero saber es: ¿Cómo puedo entonces usar cada uno de esos caminos como parámetro en una operación subsecuente? ¿Es el puente entre python y ModelBuilder una calle de sentido único?
Respuesta
¿Demasiados anuncios?Supongo que has añadido la secuencia de comandos de Python para el modelo de la primera por la adición de la secuencia de comandos de Python para la caja de herramientas, la configuración de la secuencia de comandos de entrada a través de la pestaña Parámetros.
En la ficha Parámetros puede agregar nuevos parámetros para la salida de secuencia de comandos. Para hacer esto solo tienes que cambiar:
- el
Direction
en el Parámetro de Propiedades aOutput
; - el
Data Type
dependiendo de lo que el Python de salida será (probablemente una cadena o un entero, pero tal vez una clase de entidad); - y, a continuación, el
Type
en el Parámetro de Propiedades aDerived
(aunque para ser justos,Required
yOptional
funcionará dependiendo del tipo de datos, pero voy a describir a continuación)
Entonces, simplemente puede usar arcpy.SetParameter
a la salida de su secuencia de comandos de Python vuelta al modelo.
Un par de notas:
- Si usted tiene el parámetro de salida de conjunto a
Required
oOptional
puede de entrada de la fuente a la secuencia de comandos al proporcionar valores por defecto, que se puede obtener conarcpy.GetParameter
o desys.argv
- El número del parámetro a configurar como salida es dependiente en el número total de parámetros para su secuencia de comandos de Python (es decir, si usted ya tiene dos parámetros de entrada antes de que su parámetro de salida, entonces usted necesita utilizar
arcpy.SetParameter(2, value)
)
También echa un vistazo a la arcpy Configuración de la herramienta de secuencia de comandos parámetros de ayuda.