coord-transf.2d elements3d elementsnon geo scriptsfunctionscontrol statem.attributesvariousaddons
planarprimitivebasic shapesprismscomplex shapesfrom polylines3d cuttingsolid commandsvarious
GROUP ADDGROUP ISECTGROUP SUBGROUP SWEEPGROUP SWEEPGROUP{2} PLACEGROUP ISECTLINES KILLGROUP
3D-Elemente: Solidbefehle
Mit ArchiCAD® 8.0 eingeführt kann man nun mit geometrischen Körpern "rechnen". Man nennt dies SOLID OBJEKT MODELING oder in ArchiCAD® "Solid-Elemente-Befehle". Als Abkürzung hat sich die englische Beschreibung "Solid-Element-Operation" SEO durchgesetzt.

Für die Umsetzung in GDL wird intern eine Art Pufferspeicher für erzeugte 3D-Modelldaten geschaffen. Durch GROUP ... ENDGROUP - Konstruktionen werden 3D-Elemente einem Namen zugewiesen, mit dem in der Folge operiert werden kann. Operationsergebnisse werden wiederum namentlich benannten Gruppen zugewiesen, die wiederum Bestandteil neuer Solid-Operationen sein können.
Ursprungs- und Ergebnismodell lassen sich so namentlich (als String) benennen uns sind eine von mit Standardbefehlen erzeugbaren Formen freie Ansammlung von 3D-Elementen.
Die Gruppendefinitionen sind nur Objektweit gültig. Auf einen internen Index, wie von den Attributdefinitionen bekannt, kann nicht zurückgegriffen werden.
Funktionsprinzip
Elemente werden als Operanden gruppiert, die mit einer Bearbeitungsvorschrift kombiniert werden. Dabei kann die Bearbeitung ein Verschmelzen (Addition, Verschneiden, Verziehen), ein Herausfräsen (Abzug) oder das Bilden ihrer Schnittlinien sein.

Die Elemente innerhalb einer GROUP ... ENDGROUP-Konstruktion werden nicht unmittelbar ausgegeben, sondern zunächst unter einem Gruppennamen intern gespeichert und erst mit dem Befehl PLACEGROUP ausgegeben. Der Ausgabeort ist dann bezogen auf den dann gültigen Ursprung. Transformationen des Koordinatensystems zwischen Definition und Ausgabe wirken sich somit aus. Eine mehrfache Ausgabe ist möglich.
Anmerkung
Die Berechnung kann je nach verwendeten Objekten sehr komplex werden, was sich in der Darstellungsgeschwindigkeit des Objektes niederschlagen kann.
Die Verwendung von Arrays als Ergebnisnamen, z.B.
ergebnis[2]=ADDGROUP("Block",Zylinder")
funktioniert nicht. Hingegen kann ein GROUP-Name sehr wohl in einem Array abgelegt werden.