Beispiele für die direkte Variablenersetzung mit ModelBuilder-Systemvariablen

ModelBuilder stellt zwei integrierte Systemvariablen bereit, die in Iterationsworkflows verwendet werden können. Diese zwei Systemvariablen enthalten die aktuelle Iterationszahl und den aktuellen Listenindex: %i% verweist auf die aktuelle Listenposition in einer Listenvariable (die erste Position ist Null), und %n% verweist auf die aktuelle Modelliteration (die erste Iteration ist Null).

Verwenden der %i%-Systemvariable bei der direkten Variablenersetzung

Für Modelle, die einen Prozess für eine Liste von Eingaben ausführen, erhält die Ausgabe jedes Mal, wenn der Prozess ausgeführt wird, den gleichen Namen wie die Ausgabe von der vorherigen Ausführung des Prozesses, und die vorherige Ausgabe wird überschrieben. Um zu vermeiden, dass in aufeinander folgenden Iterationen vorherige Ausgaben überschrieben werden, hängen Sie %i% an den Namen der Ausgabe an, wodurch jede Ausgabe einen eindeutigen Namen erhält, der ihre Position in der Eingabeliste angibt.

Verwenden von %i%

Verwenden der %n%-Systemvariable bei der direkten Variablenersetzung

%n% gibt die aktuelle Modelliterationszahl an und wird für ein iterierendes Modell verwendet. Im Beispiel unten wird der Iterator For verwendet, um ein Modell viermal zu durchlaufen. Die Ausgabe des Werkzeugs Puffer wird als Feedback, das heißt als Eingabe, für das Werkzeug verwendet. Das Modell wird durchlaufen und erstellt bei jeder Iteration eine neue Ausgabe. %n% wird im Ausgabenamen des Werkzeugs Puffer verwendet, um den Iterationsausgaben unterschiedliche Namen zu geben.

Verwenden von %n%

VorsichtVorsicht:

Wenn Sie %n% im Ausgabenamen eines Modellparameters verwenden und das Modell in ArcMap oder ArcCatalog über sein Werkzeugdialogfeld ausgeführt wird, wird %n% durch die Iterationszahl der Anwendung ersetzt. Da die Iterationszahl %n% der Anwendung 0 ist, gibt das Modellwerkzeug nach einer Iteration folgende Fehlermeldung aus: "FEHLER 000622: Fehler beim Ausführen (Werkzeug). Parameter sind ungültig." In diesem Fall müssen Sie entweder die Variable ändern, damit sie nicht als Modellparameter verwendet wird, oder %n% aus dem Ausgabenamen entfernen.

Verwandte Themen


7/10/2012