Itérateurs

L’itération, parfois appelée boucle ou traitement par lots, consiste à répéter plusieurs fois un processus avec plus ou moins d’automatisation. L'itération s'avère très importante, car l'automatisation réduit le temps et l'effort requis pour effectuer des tâches répétitives. Grâce à l’itération qu’offre ModelBuilder, un processus peut être exécuté plusieurs fois avec des données ou des paramètres différents dans chaque itération. L’itération que propose ModelBuilder est également souple, car elle peut porter sur un modèle entier ou sur un outil ou un processus individuel.

Remarque :
  • Un seul itérateur peut être utilisé par modèle. Le bouton permettant d'ajouter un autre itérateur est désactivé 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 autre modèle et ajoutez seulement l’itérateur et les traitements que vous souhaitez exécuter plusieurs fois, enregistrez-le et ajoutez-le en tant qu’outil de modèle dans le modèle principal. En savoir plus sur l’ajout d’un sous-modèle à un modèle.
  • Pour donner un nom unique à la sortie d’un outil connecté à un itérateur, utilisez la substitution de variables en ligne.

ModelBuilder comprend plusieurs itérateurs à utiliser pour itérer des valeurs, jeux de données et espaces de travail différents.

ItérateurDescription
For (Pour)

Se répète un nombre de fois donné.

Tant que

Se répète jusqu’à ce qu’une variable ou une condition donnée ait la valeur True ou False.

Itérer dans une sélection d’entités

Se répète dans chaque entité d'une classe d'entités ou dans un groupe d'entités dotées d'attributs communs.

Itérer dans une sélection d’enregistrements

Se répète dans chaque enregistrement d'une table ou dans un groupe d'enregistrements dotés d'attributs communs

Itérer dans des valeurs de champ

Se répète dans chaque valeur d'un champ.

Itérer dans des valeurs multiples

Se répète dans chaque valeur d'une liste de valeurs en entrée.

Itérer dans des jeux de données

Se répète dans chaque jeu de données d'un espace de travail.

Itérer dans des classes d’entités

Se répète dans chaque classe d'entités d'un espace de travail.

Itérer dans des fichiers

Se répète dans chaque fichier d'un dossier.

Itérer dans des rasters

Se répète dans chaque raster d'un espace de travail.

Itérer dans des tables

Se répète dans chaque table d'un espace de travail.

Itérer dans des espaces de travail

Se répète dans chaque espace de travail, comme une géodatabase, d'un dossier.

Ajouter et utiliser un itérateur

Pour ajouter un itérateur à votre modèle, cliquez sur ModelBuilder > Insert (Insérer) > Iterator (Itérateur) et choisissez un itérateur dans la liste. 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.

Double-cliquez sur l’élément d’itérateur à afficher et modifiez ses paramètres. Les itérateurs sont similaires, même si chacun peut avoir des paramètres qui diffèrent de ceux des autres itérateurs. Vous trouverez ci-dessous des explications concernant un itérateur courant, à savoir Iterate Feature Classes (Itérer les classes d’entité).

Iterate Feature Classes (Itérer dans des classes d’entités)

ElémentDescription
Workspace (Espace de travail)

Espace de travail en entrée (par exemple, géodatabase) ou jeu de classes d'entités.

Wildcard (Caractère générique)

Combinaison de * et d’autres caractères pour limiter les résultats. Par exemple, A* signifie que seules les classes d’entités commençant par A sont incluses. Ce paramètre est facultatif.

Feature Type (Type d’entités)

Filtre de type d’entités qui aide à limiter les résultats. Les plus courants sont Point, Line et Polygon. Ce paramètre est facultatif.

Recursive (Récursif)

Détermine si l’itérateur doit ouvrir les sous-dossiers de l’espace de travail. Ce paramètre est facultatif.

Output Feature Class (Classe d’entités en sortie)

Variable en sortie qui contient le chemin de la classe d’entités. Vous pouvez utiliser cette variable comme entrée de tous les outils de géotraitement acceptant des couches d'entités ou des classes d'entités.

Name (Nom)

Variable en sortie qui contient le nom de la classe d’entités. Il s'agit d'une chaîne.

L’itérateur Iterate Feature Classes (Itérer les classes d’entités) nécessite un Input Workspace (Espace de travail en entrée) (la variable nommée Input Feature Classes (Classes d’entités en entrée) dans le graphique ci-dessus) dans lequel toutes les classes d’entités à itérer sont stockées. Trois paramètres supplémentaires, Wildcard (Caractère générique), Feature Type (Type d’entité) et Recursive (Récursif), permettent de restreindre les classes d’entités devant être itérées dans l’espace de travail et de contrôler l’itération dans les sous-dossiers de l’espace de travail.

Le paramètre Iterate Feature Classes (Itérer les classes d’entités) a deux variables en sortie : une classe d’entités et le nom de la classe d’entités. La variable de classe d’entités en sortie peut être connectée à l’outil suivant pour le traitement, et la variable Name (Nom) peut être utilisée pour la substitution de variables en ligne.

Exemple

L’exemple ci-après utilise l’itérateur Iterate Feature Classes (Itérer les classes d’entités) pour projeter toutes les classes d’entités d’un espace de travail vers une nouvelle projection cartographique. Chaque nouvelle classe d’entités créée par l’outil Projeter est nommée en fonction de la valeur Name (Nom) en entrée grâce à la substitution de variables en ligne. En outre, un nouveau champ est ajouté à chaque classe d’entités en sortie. Après avoir ajouté l’itérateur Iterate Feature Classes (Itérer les classes d’entités) dans ModelBuilder, suivez les étapes ci-après :

  1. Précisez un espace de travail, tel qu'une géodatabase, en vue d'itérer chaque classe d'entités de cet espace de travail.
  2. Précisez un caractère générique et un type d’entités (dans l’exemple, seules les classes d’entités surfaciques avec un nom commençant par la lettre I seront incluses).
  3. L’itérateur Iterate Feature Classes (Itérer les classes d’entités) produit deux sorties : la classe d’entités (Output Feature Class (Classe d’entités en sortie)) et le nom de la classe d’entités (Name (Nom)). Connectez la variable Output Feature Class (Classe d’entités en sortie) à l’outil Projeter et utilisez la variable Name (Nom) et la substitution de variables en ligne en vue d’attribuer à chaque sortie de l’outil Projeter le même nom que celui de la classe d’entités en entrée. La sortie de l’outil Projeter est écrite dans une autre géodatabase.
  4. Connectez la sortie de l’outil Projeter à l’outil Ajouter un champ pour ajouter un nouveau champ.
Exemple d’itérateur