Name
DEFINE_STYLE

Syntax
DEFINE STYLE name schriftart, zeichenhöhe, anker, schriftstil

Aufklappen Wertebereiche
name, Typ text
schriftart, Typ text
0 ≤ zeichenhöhe, Typ real
0 < anker < 10, Typ integer
0 ≤ schriftstil < 256, Typ integer (*)

(*) mit schriftstil=j1+j2+j3+j4+j5+j6+j7+j8

j1-8=0: normal
j1=1: fett
j2=2: kursiv
j3=4: unterstrichen
j4=8: outline (nur Kontur) (nur unter MacOS bis Version 9.2.2)
j5=16: mit Schatten (nur unter MacOS bis Version 9.2.2)
j6=32: hochgestellt (ab ArchiCAD® 9)
j7=64: tiefgestellt (ab ArchiCAD® 9)
j8=128: durchgestrichen (ab ArchiCAD® 9)

Aufklappen Erläuterung
Definiert einen Texttyp für die Darstellung in 2D mit TEXT2 oder in 3D mit TEXT. Bevor Texttypen mit STYLE aktiviert werden können, müssen sie mit der DEFINE STYLE-Anweisung definiert werden.

Der gewählte Zeichensatz wird mit schriftart angegeben. Er muss im Betriebssystem installiert und in ArchiCAD verfügbar sein. Zusätze unter Windows wie "Western" müssen nicht angegeben werden.

Die Zeichensatzgröße gibt zeichenhöhe an. Das Maß ist die nominelle Höhe zwischen Schriftlinie und Oberlängenlinie in mm auf dem Papier. Das entspricht nicht der Gesamthöhe der Schriftart. Siehe hierzu auch die Funktion REQUEST ("HEIGHT_OF_STYLE", ...). Eine maßstäbliche Schriftgröße erhält man mit der Formel:
schriftgröße = RealeHöhe / GLOB_SCALE * 100

Zur Definition des schriftstil siehe die möglichen Werte unter Wertebereich.

Der anker gibt die Ausdehnungsrichtung des Textfeldes zum Einsetzpunkt an. Die 9 Ankerpunkte entsprechen den Zahlen auf einer Telefontastatur (nicht Zehnerblock einer Computertastatur!). 1 ist also links-oben (Text dehnt sich nach unten und rechts vom Ankerpunkt aus), 9 rechts unten (Text dehnt sich nach oben und links vom Ankerpunkt aus). Siehe Abbildung.

Aufklappen Beispiel
! Definition
DEFINE STYLE "Schrift_1" "Arial",
  2.5, 6, 1+2
DEFINE STYLE "Schrift_2" "Arial",
  2.5*1000/GLOB_SCALE, 4, 2+3

! Ausgabe
STYLE "Schrift_1"
TEXT2 0,0,"Ich bleibe fixiert"

STYLE "Schrift_2"
TEXT2 0,0," und ich skaliere mit!"

Aufklappen Besonderheiten
Neben der Zuordnung eines im Skript eindeutigen Namens (name) wird ArchiCAD-intern für jede Instanz eines Objektes ein lokaler Index aller definierten Texttypen angelegt und mit der DEFINE STYLE-Anweisung automatisch erzeugt. Der Index ist mit IND(STYLE,...) abfragbar. Beide Definitionsbefehle (DEFINE STYLE und DEFINE STYLE{2}) für Schrifttypen verwenden eine gemeinsame Namens- und Indexverwaltung. Daher müssen die Namen der Typen nicht nur innerhalb eines Befehls eindeutig sein.

Es gibt bis ArchiCAD9 keine Möglichkeit die im System definierten und in ArchiCAD verfügbaren Zeichensätze aus GDL heraus abzufragen. Bernhard Binder hat im deutschen ArchiCAD-Forum ein kleines Programm veröffentlicht, das eine Zeichensatzliste generiert und als Makro in die Bibliothek eingebunden werden kann. Das Programm muss aber manuell aus der Windowsoberfläche heraus gestartet werden. Ab ArchiCAD 10 gibt es hierfür einen REQUEST-Befehl.

Ab ArchiCAD 9 gibt es mehrere zusätzliche Befehle zur komfortablen Ausgabe formatierten Textes. Siehe die übrigen Befehle in diesem Abschnitt. Mit DEFINE STYLE definierte Schrifttypen können zwar innerhalb eines PARAGRAPH-Befehls verwendet werden, doch kann das zu Unstimmigkeiten bei Schrifthöhen führen. Es wurde extra der DEFINE STYLE{2}-Befehl eingeführt und im Handbuch empfohlen. Dieser sollte für formatierten Text auch nach Möglichkeit verwendet werden.

Aufklappen Tipps und Tricks
Gerade die Zeichensatznamen sind ein immer wiederkehrender Parameter, für den voll automatisiert keine Auswahlliste erzeugt werden kann. Es empfiehlt sich eine MASTER_GDL-Datei anzulegen und dort z.B. mit dem Befehl
VALUES "Zeichensatz" "Arial","Helvetica",CUSTOM für die selbstgeschriebenen Objekte der Bürobibliothek eine Auswahlliste vorzudefinieren. Alle Objekte, die einen Textparameter mit dem Namen "Zeichensatz" beinhalten werden mit dem Befehl aus dem MASTER_GDL.gdl mit der Vorschlagliste versorgt. Erfolgt im Objekt selbst nochmal ein VALUES-Befehl wird die bestehende Liste einfach überschrieben.


Aufklappen Kontext
2D-Skript, 3D-Skript