français

Procédure : appeler un modèle ModelBuilder dans un script Python

Résumé

Dans certains cas, il est souvent plus facile d’appeler un modèle dans ModelBuilder avec un script Python plutôt que de convertir l’ensemble du modèle en script Python. Avant d’appeler le modèle, vous devez ajouter une boîte à outils personnalisée au script Python, car les modèles sont stockés dans une boîte à outils personnalisée. Pour plus d’informations, reportez-vous à la rubrique d’aide ArcGIS Desktop : Ajout et connexion de données et d’outils.

Procédure

Pour appeler un modèle dans un script Python, utilisez la fonction arcpy.AddToolbox() afin d’ajouter la boîte à outils personnalisée. Appelez ensuite le modèle en référençant la boîte à outils dans un paramètre. Vous pouvez également appeler le modèle directement à l’aide de l’alias de la boîte à outils. Les étapes suivantes décrivent la procédure à suivre :

  1. Créez une variable référençant la boîte à outils. Voici un exemple d’utilisation de la fonction arcpy.AddToolbox() :
    tbx = arcpy.AddToolbox("C:/Temp/MyToolbox.tbx")
  2. Appelez le modèle à l’aide de l’un des exemples de code suivants.
    • Pour appeler le modèle à l’aide de la variable définie
      MyToolbox est la boîte à outils personnalisée ajoutée à l’étape 1. Le modèle étiqueté Sample1 se trouve dans MyToolbox. Utilisez l’exemple de code suivant :
      tbx.Sample1()
    • Pour appeler le modèle à l’aide de l’alias prédéfini de la boîte à outils
      SampleMyTools est l’alias prédéfini de la boîte à outils MyToolbox ajoutée à l’étape 1.
      arcpy.Sample1_SampleMyTools()
Remarque :
Il est conseillé d’attribuer un nom d’alias à la boîte à outils. L’alias ne peut pas contenir d’espaces ou de caractères spéciaux, tels qu’un trait de soulignement (_).

Si un modèle requiert une saisie utilisateur, créez une variable dans le script Python et transférez l’emplacement du shapefile en entrée en tant qu’argument au paramètre du modèle. Par exemple, l’exemple de code suivant transmet la classe d’entités en entrée dans l’outil Copier des entités au sein du modèle.

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

tbx.Model(inFC)

Informations associées