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 traitement 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 comporte plusieurs itérateurs que vous pouvez utiliser pour itérer des valeurs, jeux de données et espaces de travail différents.

ItérateurDescription

Pour

Exécute une itération sur une valeur de début et une valeur de fin en fonction d'une valeur donnée.

Itérer dans des jeux de données

Itère des jeux de données dans un espace de travail ou un jeu de données d'entité.

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

Itère des classes d'entités dans un espace de travail ou un jeu de données d'entité.

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

Itère des entités dans une classe d'entités.

Itérer dans des valeurs de champ

Itère chaque valeur d'un champ.

Itérer les champs

Itère les champs d’une table.

Itérer dans des fichiers

Itère des fichiers dans un dossier.

Itérer dans des valeurs multiples

Itère une liste de valeurs.

Iterate Layers (Itérer sur les couches)

Itère les couches dans une carte.

Itérer dans des rasters

Itère des rasters dans un espace de travail.

Itérer dans une sélection d'enregistrements

Itère les lignes d'une table.

Itérer dans des tables

Itère des tables dans un espace de travail.

Itérer dans des espaces de travail

Itère les espaces de travail d'un dossier.

Tant que

Itère jusqu’à ce qu’une condition devienne vraie ou fausse.

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
Espace de travail

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

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.

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.

Récursif

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

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.

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 Workspace (Espace de travail) 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