Passer la variable du script ArcPy à ModelBuilder?

9

J'ai un modèle qui transmet une variable à un script python. Le script utilise cette variable pour interroger certains répertoires et renvoyer une liste de chemins. Ce que je veux savoir c'est:

  • Comment puis-je utiliser chacun de ces chemins comme paramètre dans une opération ultérieure?
  • Le pont entre python et ModelBuilder est-il une rue à sens unique?
À M
la source

Réponses:

8

Je suppose que vous avez ajouté le script Python au modèle en ajoutant d'abord le script Python à la boîte à outils, en définissant l'entrée de script via l'onglet Paramètres.

Dans l'onglet Paramètres, vous pouvez ajouter de nouveaux paramètres pour la sortie du script. Pour ce faire, changez simplement:

  • la Directiondans les Propriétés des paramètres à Output;
  • la Data Typefonction de la sortie Python (probablement une chaîne ou un entier, mais peut-être une classe d'entités);
  • puis la Typedans les Propriétés des paramètres à Derived(bien que pour être juste, Requiredet Optionaltravaillera en fonction du type de données, mais je vais le décrire ci - dessous)

Ensuite, nous pouvons simplement utiliser arcpy.SetParameterpour sortir de votre script Python vers le modèle.

Quelques notes:

  • Si le paramètre de sortie est défini sur Requiredou Optionalvous pouvez fournir une entrée à votre script en fournissant des valeurs par défaut, que vous pouvez obtenir avec arcpy.GetParameterou à partir desys.argv
  • Le numéro du paramètre à définir comme sortie dépend du nombre total de paramètres pour votre script Python (c'est-à-dire si vous avez déjà deux paramètres d'entrée avant votre paramètre de sortie, vous devez alors utiliser arcpy.SetParameter(2, value))

Jetez également un œil à l' aide des paramètres de l'outil de script Arcpy Setting .

om_henners
la source