Iteration, häufig auch Wiederholung genannt, bedeutet, dass ein Prozess immer wieder wiederholt wird, wobei ein gewisser Grad an Automatisierung zum Einsatz kommt. Die Iteration ist sehr wichtig, da durch die Automatisierung von wiederkehrenden Tasks weniger Zeit und Aufwand erforderlich ist, um die Tasks auszuführen. Mit der Iteration in ModelBuilder kann ein Prozess immer wieder ausgeführt werden, wobei in jeder Iteration andere Einstellungen oder Daten verwendet werden. ModelBuilder ermöglicht auch eine flexible Iteration, da ein gesamtes Modell oder nur ein einzelnes Werkzeug oder ein Prozess immer wieder ausgeführt werden kann.
| Iterator | Beschreibung | 
|---|---|
| Durchläuft einen Start- und Endwert nach einem angegebenen Wert. For funktioniert hier genau so wie in jeder Skript-/Programmiersprache und wird durch eine festgelegte Anzahl von Elementen ausgeführt. | |
| Funktioniert genau wie "While" in jeder Skripterstellungs-/Programmiersprache und wird ausgeführt, solange eine Bedingung für die Eingabe oder den Satz von Eingaben wahr oder falsch ist. | |
| Durchläuft Features in einer Feature-Class. | |
| Durchläuft Zeilen in einer Tabelle. | |
| Durchläuft jeden Wert in einem Feld. | |
| Durchläuft eine Liste von Werten. | |
| Durchläuft Datasets in einem Workspace oder einem Feature-Dataset. | |
| Durchläuft Feature-Classes in einem Workspace oder einem Feature-Dataset. | |
| Durchläuft Dateien in einem Ordner. | |
| Durchläuft Raster in einem Workspace oder einem Raster-Katalog. | |
| Durchläuft Tabellen in einem Workspace | |
| Durchläuft Workspaces in einem Ordner | 
Iteratoren
Jeder Iterator verfügt über einen Satz von Parametern, der sich möglicherweise von den anderen Iteratoren unterscheidet, die Gesamtstruktur aller Iteratorwerkzeuge ist jedoch sehr ähnlich. Ein häufig verwendeter Iterator namens Feature-Classes iterieren wird unten erläutert.

Für Feature-Classes iterieren ist ein Eingabe-Workspace erforderlich, in dem alle Feature-Classes, die zu durchlaufen sind, gespeichert werden. Mit zwei zusätzlichen Parametern namens Platzhalter und Feature-Typ wird eingeschränkt, welche Feature-Classes im Workspace durchlaufen werden:
- "Platzhalter" schränkt die Feature-Classes über den Namen ein.
- "Feature-Typ" beschränkt die Feature-Classes nach Feature-Typ: Annotation, Arc, Bemaßung, Kante, Beschriftung, Linie, Knoten, Punkt, Polygon, Region, Route oder TIC.
Der Parameter Rekursiv wird verwendet, um die Iteration über Feature-Classes in Unterordnern im Workspace zu steuern.
Feature-Classes iterieren verfügt über zwei Ausgabevariablen: die Ausgabe-Feature-Class und der Name der Feature-Class. Die Ausgabe-Feature-Class kann mit dem nächsten Werkzeug zu weiteren Verarbeitung verbunden werden, und die Variable Name zur direkten Variablenersetzung verwendet werden. Wenn beispielsweise das Werkzeug Puffer dem Modell hinzugefügt und die Variable Feature Class mit dem Werkzeug verbunden wurde, dann würde jede Feature-Class im Workspace gepuffert.
Iteratoreingabe und -ausgabe
Es folgt ist eine Liste von Iteratoren und deren Eingabe und Ausgabe. Einige Iteratoren haben als zweite Ausgabe einen Wert oder Namen, der zur direkten Variablenersetzung verwendet werden kann.
| Iterator | Eingabe | Ausgabe 1 | Ausgabe 2 | 
|---|---|---|---|
| Werte | Wert | - | |
| Werte | Boolesch – Wert "True" oder "False" | - | |
| Features | Feature | Wert | |
| Tabelle | Aufnehmen | Wert | |
| Tabelle | Feldwert | - | |
| Werte | Wert | - | |
| Workspace oder Feature-Dataset | Dataset | Name | |
| Workspace oder Feature-Dataset | Feature-Class | Name | |
| Ordner | Datei | Name | |
| Workspace oder Raster-Katalog | Raster-Dataset | Name | |
| Workspace | Tabelle | Name | |
| Ordner | Workspace | Name |