Español

Cómo: Invocar un modelo de ModelBuilder en un script de Python

Resumen

En algunos casos, a menudo es más fácil invocar un modelo en ModelBuilder con un script de Python en lugar de convertir todo el modelo en un script de Python. Antes de invocar el modelo, se debe agregar una caja de herramientas personalizada al script de Python, ya que los modelos se almacenan en una caja de herramientas personalizada. Para obtener más información, consulte ArcGIS Desktop: Agregar y conectar datos y herramientas.

Procedimiento

Para invocar un modelo en un script de Python, utilice la función arcpy.AddToolbox() para agregar la caja de herramientas personalizada. A continuación, invoque el modelo referenciando la caja de herramientas en un parámetro o invoque el modelo directamente utilizando el alias de la caja de herramientas. En los siguientes pasos se describe cómo hacerlo:

  1. Cree una variable que haga referencia a la caja de herramientas. A continuación, se ofrece un ejemplo de uso de la función arcpy.AddToolbox():
    tbx = arcpy.AddToolbox("C:/Temp/MyToolbox.tbx")
  2. Invoque el modelo con una de las siguientes muestras de código.
    • Para invocar el modelo con la variable definida
      MyToolbox es la caja de herramientas personalizada agregada en el paso 1. El modelo etiquetado Sample1 se encuentra en MyToolbox. Utilice la siguiente muestra de código:
      tbx.Sample1()
    • Para invocar el modelo con el alias predefinido de la caja de herramientas
      SampleMyTools es el alias predefinido de la caja de herramientas MyToolbox agregada en el paso 1.
      arcpy.Sample1_SampleMyTools()
      Nota:
      Esta es una práctica recomendada para agregar un nombre de alias a la caja de herramientas. El alias no puede contener espacios ni caracteres especiales, como un guion bajo (_).

Si un modelo requiere una entrada del usuario, cree una variable en el script de Python y referencie la ubicación del shapefile de entrada como el argumento para el parámetro de modelo. Por ejemplo, la siguiente muestra de código pasa la clase de entidad de entrada a la herramienta Copiar entidades del modelo.

inFC = "C:/Temp/input.shp"

tbx.Model(inFC)

Información relacionada