coord-transf.2d elements3d elementsnon geo scriptsfunctionscontrol statem.attributesvariousaddons
flow controlloopsext. connection
IF…THEN GOTO GOSUB…RETURN END/EXIT BREAKPOINT
Name
END_EXIT
Syntax
END
oder (since ArchiCAD 10)
END  expression1 [,expression2, ... expressionn]
oder
EXIT
Aufklappen Range
expressioni, Typ string oder real, je nach zugehörigem Variablentyp im Hauptobjekt
Aufklappen Description
Beendet die Ausführung eines Skriptes unmittelbar nach dem Befehl, auch wenn danach noch weitere Befehle folgen. Endet das Skript in der letzten Programmzeile, ist der Befehl nicht zwingend nötig.

Da es mehrere Skripte für die unterschiedlichen Situationen (3D-Fenster, Grundriss, Objekteinstellungsfenster) gibt, die nacheinander abgearbeitet werden, beendet der Befehl nur das Skript, in dem er steht, nicht ein evt. nachfolgendes. Wird END/EXIT innerhalb eines Makros verwendet, wird lediglich das Makro beendet und im übergeordneten Skript die Ausführung fortgesetzt.
Ausnahme ist das Master-Skript, das immer vor allen anderen Skripts durchlaufen wird. Ein END oder EXIT dort beendet alle Skripte (dieser Hierarchieebene) und erzeugt ein Objekt ohne Inhalt.

Die Verwendung von END (an Stelle von EXIT) stellt die gebräuchlichere Syntax dar.

Ab ArchiCAD® 10 wird ein Mechanismus eingeführt, der die Datenübergabe zwischen Makro und Hauptobjekt ermöglicht. Dazu wird dem END (im Makroobjekt) eine Liste von Ausdrücken (expressioni) (feste oder berechnete Werte oder Variablen) angehängt. Diese Werte werden in der Reihenfolge ihrer Auflistung im END-Befehl der Liste von Variablen(namen) zugewiesen, die im aufrufenden Hauptobjekt wiederum im CALL-Befehl nach dem Schlüsselwort RETURNED_PARAMETERS aufgeführt sind.

Es können auch Arrays übergeben werden. Allerdings werden alle Werte eines Arrays in nur einer Dimension des Zielarrays abgelegt. D.h. die Werte eines Arrays quelle[2][3] im Makro werden im aufrufenden Objekt in der Zielvariablen z.B. als Array ziel[6] abgelegt. Eine zuvorige Deklarierung der Arrayvariablen mit DIM ist obligatorisch. Die Abmesungen der Dimensionen des Arrays werden aber abhängig von der Anzahl der Werte im Makroobjekt bei der Übergabe angepaßt. Es ist nutzlos die Deklaration zweidimensional anzulegen. Nach RETURNED_PARAMETERS enthält das Array in jedem Fall alle Werte in einer Spalte (z.B. ziel[1][6]). Die Werte werden zeilenweise aneinandergereiht.

Diese Funktionalität stellt die Umkehrung der Datenübergabe an das Makro mit PARAMETERS dar. Es können auch Texte übergeben werden.
Aufklappen Example
FOR i=1 TO 10
 GOSUB 100
 ADD2 1,0
 NEXT i

DEL i

END

100:
! Unterprogramm
RECT2 0,0, 0.75,0.25
RETURN


Beendet das Programm vor dem Unterprogramm, da es sonst zu einer Fehlermeldung käme.
Aufklappen Tips and Tricks
Siehe zum Datenaustausch zwischen Makros und Hauptobjekten mittels Pufferspeicher Tipps und Tricks unter dem CALL-Befehl.
Aufklappen References
GDL-Handbuch 4.5 (DE) p. 107
GDL-Handbuch 5.0 (DE) p. 154
GDL-Handbuch 6.0 (DE) p. 188
GDL-Handbuch 6.5 (DE) p. 188
GDL-Handbuch 7.0 (DE) p. 188
GDL-Handbuch 8.0 (DE) p. 126
GDL-Handbuch 8.1 (DE) p. 128
GDL-Handbuch 9.0 (DE) p. 216
GDL-Handbuch 10.0 (DE) p. 216
GDL-Handbuch 11.0 (DE) p. 222
GDL Reference Guide 9.0 (INT) p. 208
GDL Reference Guide 10.0 (INT) p. 214
GDL Reference Guide 11.0 (INT) p. 214
GDL Cookbook 3.1 (EN/DE) p. 1.12