Exemple d'utilisation d'un itérateur dans un modèle

Pour illustrer l'utilisation d'un itérateur, l'exemple de modèle ci-dessous fait appel à l'itérateur Itérer les classes d'entité pour projeter chaque classe d'entités dans un espace de travail, nommer de manière dynamique chaque sortie de l'outil Projeter en fonction du nom en entrée à l'aide de la substitution de variable en ligne et ajouter un nouveau champ à chaque classe d'entités.

  1. Un espace de travail en entrée est spécifié pour l'itérateur Itérer les classes d'entité en vue d'itérer chaque classe d'entités de cet espace de travail.
  2. Les classes d'entités à itérer sont restreintes au moyen d'un caractère générique et d'un type d'entités (seules les classes d'entités surfaciques avec un nom commençant par I seront itérées).
  3. L'itérateur Itérer les classes d'entité produit deux sorties : la classe d'entités qui a fait l'objet de l'itération et son nom. La variable de classe d'entités est connectée en tant qu'entrée à l'outil Projeter et la variable de nom de la classe d'entités permet d'effectuer la substitution de variable en ligne en vue d'attribuer de manière dynamique à chaque sortie de l'outil Projeter le même nom que la classe d'entités en entrée.
  4. Un nouveau champ est ajouté à chaque classe d'entités en connectant l'outil Ajouter un champ.
Exemple d'itérateur
RemarqueRemarque :

  • Un seul itérateur peut être utilisé par modèle. Les options d'ajout d'un autre itérateur sont désactivées si un itérateur existe dans le modèle.
  • Si un itérateur est ajouté à un modèle, tous les outils du modèle itèrent chaque valeur de l'itérateur. Si vous ne souhaitez pas exécuter chacun des outils que le modèle comprend pour chaque valeur itérée, créez un sous-modèle/modèle dans le modèle/modèle imbriqué qui contient uniquement l'itérateur et ajoutez-le comme outil de modèle dans le modèle principal.
  • Si un modèle contenant un itérateur est exporté vers un script Python, le script ne comprend pas la logique d'itération. Vous pouvez ajouter la logique de liste de Python au script pour obtenir un effet similaire.
  • L'utilisation d'un itérateur définit une valeur par défaut de -1 dans les options Itération des Propriétés du modèle, ce qui signifie que le modèle s'exécute un nombre illimité de fois ou correspond au nombre d'entrées d'un itérateur (et non à un nombre prédéfini).
  • La sortie d'un outil connecté à l'itérateur peut avoir (le cas échéant) un nom unique pour chaque itération afin d'éviter tout risque d'écrasement
    • en faisant appel à la variable système %n%, par exemple, C:\Scratch\scratch.gdb\output_%n%.
    • en faisant appel à la sortie Nom ou Valeur de l'itérateur utilisée dans le modèle comme variable en ligne, par exemple, C:\Scratch\scratch.gdb\output_%Name%, C:\Scratch\scratch.gdb\output_%Value%.
    • en faisant appel à une autre variable du modèle comme variable en ligne ; par exemple, avec une variable XYZ, le nom de la sortie peut être C:\Scratch\scratch.gdb\output_%Name%, C:\Scratch\scratch.gdb\output_%Value%. Cette variable ne doit pas contenir de valeur constante, mais une valeur qui change à chaque itération, pour éviter que le fichier ne soit écrasé à chaque itération.
  • Les sorties de l'outil avec l'option Ajouter à la carte activée sont ajoutées à l'affichage dans ArcMap à l'aide du nom de variable. Si vous souhaitez ajouter à la carte la sortie de chaque itération dans ArcMap avec le nom de l'outil en sortie plutôt que celui de la variable :
    1. Connectez la sortie à afficher à l'outil Recueillir des valeurs.
    2. Cliquez avec le bouton droit sur la sortie de Recueillir des valeurs et activez l'option Ajouter à la carte.
    3. Si le modèle est destiné à être exécuté à partir de la boîte de dialogue d'outil du modèle, définissez Recueillir des valeurs comme paramètre de modèle, car seuls les paramètres de modèle en sortie sont ajoutés à la carte.

Thèmes connexes

5/10/2014