L'itération, parfois appelée boucle, 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.
| Itérateur | Description | 
|---|---|
| Exécute une itération sur une valeur de début et une valeur de fin en fonction d'une valeur donnée. Il se comporte comme tout itérateur Pour de n'importe quel langage de programmation/script. Il exécute l'itération sur un nombre défini d'éléments. | |
| Fonctionne exactement comme l'instruction "while" dans tout script/langage de programmation, et qui s'exécute tant qu'une condition est soit true, soit false pour l'entrée ou le jeu d'entrées. | |
| Itère des entités dans une classe d'entités. | |
| Itère les lignes d'une table. | |
| Itère chaque valeur d'un champ. | |
| Itère une liste de valeurs. | |
| Itère des jeux de données dans un espace de travail ou un jeu de données d'entité. | |
| Itère des classes d'entités dans un espace de travail ou un jeu de données d'entité. | |
| Itère des fichiers dans un dossier. | |
| Itère des rasters dans un espace de travail ou un catalogue d'images. | |
| Itère des tables dans un espace de travail. | |
| Itère les espaces de travail d'un dossier. | 
Fonctionnement d'un itérateur
Chaque itérateur est doté d'un ensemble de paramètres qui peuvent varier d'un itérateur à un autre, mais la structure globale de tous les outils d'itération est très similaire. Ci-dessous figure une explication d'un itérateur courant, à savoir Itérer les classes d'entité.

L'itérateur Itérer les classes d'entité nécessite un espace de travail en entrée dans lequel toutes les classes d'entités à itérer sont stockées. Deux paramètres supplémentaires, Caractère générique et Type d'entité, permettent de restreindre les classes d'entités devant être itérées dans l'espace de travail :
- Le paramètre Caractère générique limite les classes d'entités en fonction de leur nom.
- Le paramètre Type d'entité limite les classes d'entités en fonction de leur type : annotation, arc, dimension, tronçon, jonction, étiquette, ligne, nœud, point, polygone, région, itinéraire ou TIC.
Le paramètre Récursive permet de contrôler l'itération sur des classes d'entités dans des sous-dossiers de l'espace de travail.
Le paramètre Itérer les classes d'entité a deux variables en sortie : la classe d'entités en sortie et le nom de la classe d'entités. La classe d'entités en sortie peut être connectée à l'outil suivant pour le traitement, et la variable Nom peut être utilisée pour la substitution de variables en ligne. Par exemple, si l'outil Zone tampon a été ajouté au modèle, et si la variable Classe d'entités a été connectée à l'outil, chaque classe d'entités de l'espace de travail sera bufférisée.
Itérateur en entrée et en sortie
Vous trouverez ci-dessous une liste d'itérateurs et leurs entrées et leurs sorties associées. Plusieurs itérateurs ont une Valeur ou un Nom comme deuxième sortie, utilisable pour la substitution de variable en ligne.
| Itérateur | Entrée | Sortie 1 | Sortie 2 | 
|---|---|---|---|
| Valeurs | Valeur | - | |
| Valeurs | Valeur booléenne - Vrai ou Faux | - | |
| Entités | Entité | Valeur | |
| Table | Enregistrement | Valeur | |
| Table | Valeur du champ | - | |
| Valeurs | Valeur | - | |
| espace de travail ou jeu de données d'entité | Jeu de données | Nom | |
| espace de travail ou jeu de données d'entité | Classe d'entités | Nom | |
| Dossier | Fichier | Nom | |
| Espace de travail ou catalogue d’images | Jeu de données raster | Nom | |
| Espace de travail | Table | Nom | |
| Dossier | Espace de travail | Nom |