Name
DEFINE_SYMBOL_LINE

Syntax
DEFINE SYMBOL_LINE linienname skalierung, abstand, macroname[[,] PARAMETERS [name1= wert1, ... namen= wertn]]
[[,] 
ADDITIONAL_DATA [name_extern1= wert_extern1, ... name_externn= wert_externn]

Aufklappen Wertebereiche
linienname, Typ Text
0 < skalierung, Typ real
abstand, Typ real
makroname, Typ string
namei, gültiger Parametername innerhalb des Makroobjektes
werti, Typ real oder string, abhängig vom Parameter namei im Makro

name_externi, in der externen Anwendung verwendeter Parametername
wert_externi, Ausdruck oder Wert, Typ abhängig von der externen Anwendung

Maximale Anzahl von 2D-Elementen in Makro: 8369.
Maximale Breite: 4.25 * GLOB_SCALE (5397.5 mm)
Maximale Höhe: 1 * GLOB_SCALE (1270 mm)

Aufklappen Erläuterung
Definiert wie DEFINE LINE_TYPE einen Linientyp, jedoch nicht aus linearen Bestandteilen sondern aus komplexeren Elementen als Symbollinie. Dazu wird zur Beschreibung des "Symbols" ein Makro (makroname) aufgerufen, in dem die graphischen Anweisungen erfolgen. Dem Makro können, analog zum CALL-Befehl Parameter übergeben werden. Diese werden, durch Kommata getrennt, als (Parameter)namei=werti-Zuweisungen nach dem Schlüsselwort PARAMETERS angeführt.

Im Makro zulässig sind ausschließlich 2D-Zeichnungselemente, die auch bei der Liniendefinition über das Optionenmenü erlaubt sind: Linien, Kreise, Polygone (als Linienzüge, nicht Flächen) und Fangpunkte. Auch Transformationen des Koordinatensystems mit ADD2 und ROT2 sind möglich.

Die absoluten Abmessungen der Zeichnungselemente innerhalb des Makros werden ignoriert. Lediglich die Proportionen bleiben erhalten. Nach dem Durchlauf des Makros werden (intern) die maximalen Abmessungen des Symbols ermittelt (xmax,ymax) und mit skalierung auf die Zielgröße skaliert. Es ergeben sich die Abmessungen:

  x=skalierung
  y=skalierung * ymax/xmax

Der Faktor für die Vergrößerung hat wie bei DEFINE LINE_TYPE bei einer Zielbreite des Symbols von x folgende Wirkungen:

 skalierung=x: absolut, Maßangabe in Metern (auf dem Papier).
 skalierung=x/1000 : absolut, Maßangabe in mm (auf dem Papier).
 skalierung=x*1000/GLOB_SCALE  : maßstäblich, Maßangaben in Meter (im Plan).

Die erzeugten 2D-Elemente werden mit abstand in X-Richtung aneinandergereiht. Eine Überlappung der sich wiederholenden Elemente ist nicht möglich.

Das Symbol wird immer mittig zur Konstruktonslinie ausgerichtet, also je y/2 ober- und unterhalb der Zeichenlinie.

Das ab ArchiCAD 9 verfügbare Syntaxfragment ADDITIONAL_DATA wird separat erläutert.

Aufklappen Beispiel
Das Hauptobjekt:

! HAUPTOBJEKT
! Zeichnungssymbol, platzierbar
! Grundwerte: a=0.04; b=0.1

! Abmessungen der Schlinge
a=0.04 ! Breite (=Durchmesser)
b=0.10 ! Höhe

faktor=1000/GLOB_SCALE
DEFINE SYMBOL_LINE "Symbollinie GDL" a*faktor, 0,  "selfgdl_SCHLINGE.gsm" PARAMETERS a=a, b=b

LINE_TYPE 1
LINE2 0,0, a,0

LINE_TYPE "Symbollinie GDL"
LINE2 0,b, a,b



Das Makroobjekt "selfgdl_SCHLINGE.gsm":

! MAKROOBJEKT
! Zeichnungssymbol, nicht platzierbar
! Grundwerte: a=0.04; b=0.1

! Grundwerte
t=a/2 ! Radius der Schlinge
d=b-a ! Höhe des Zwischenbereichs

! siehe Kreisbogenversatz
s=sqr((t/2)^2+(d/2)^2)/2
alpha=atn(d/t)
w=2*(90-alpha)
r=s/cos(alpha)

! Schleifenbögen links unten
ARC2 0,t, t, 270,360
ARC2 t-r,t, r, 0,w

! Schleifenbögen oben
ARC2 r, b-t, r, 180, 180+w
ARC2 t, b-t, t, 0, 180
ARC2 a-r,b-t, r, 360-w,360

! Schleifenbögen rechts unten
ARC2 a, t, t, 180,270
ARC2 t+r,t, r, 180-w,180

! Ober- / Unterlinie
POLY2_ 4,1, 0,0,1, a,0,0, a,b,1, 0,b,0

Aufklappen Besonderheiten
Siehe auch unter DEFINE LINE_TYPE Besonderheiten.

Im Makro verwendete Attribute der Zeichnungselemente werden ignoriert. Mehrfarbige Linien oder Linienstücke als Nicht-Volllinie sind demnach nicht möglich.

Dynamische Linien, durch ein kontextabhängiges Makroobjekt, sind mit DEFINE SYMBOL_LINE nicht möglich. In der Linientypenliste wird mit dem neu definierten Linientyp nicht das Makro sondern die vom Makro zum Zeitpunkt der Abarbeitung erzeugten graphischen Elemente verknüpft. Entscheidend für die Ausgestaltung der Linie ist der Zeitpunkt der Abarbeitung des Hauptobjektes.

Das optionale Komma vor PARAMETERS und ADDITIONAL_DATA ist erst ab ArchiCAD 10 zulässig und erlaubt so eine bessere Formatierung des Skriptes durch die Möglichkeit eines Zeilenumbruchs.

Aufklappen Tipps und Tricks
Man kann mit etwas Mühe so auch einen Schriftzug als Linie definieren. Siehe Thread im ArchiCADwiki-Tip of the month (EN).

Download Beispielobjekt für ArchiCAD 8.1 und höher.

Aufklappen Kontext
2D-Skript, MASTER_GDL-Objekt

Aufklappen ArchiCAD
ab 8.0