Name
DEFINE STYLE

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

Aufklappen Wertebereiche
stilname, 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 * 1000/ GLOB_SCALE

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 gab bis Archicad 9 keine Möglichkeit die im System definierten und in ArchiCAD verfügbaren Zeichensätze aus GDL heraus abzufragen. 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.

Umgekehrt sind die Schriftstile Hochstellung und Tiefstellung bei TEXT2 nicht wirksam; Durchgestrichener Text kann zwar erzeugt werden, wird aber einen Fehler im Protokoll auswerfen: "Facecode Wert ausserhalb des Bereichs"

Aufklappen Tipps und Tricks
Gerade die Zeichensatznamen sind ein immer wiederkehrender Parameter. Um die komplette List der verfügbaren Fonts automatisch zu generieren lässt sich folgender Code-Schnipsel einsetzen.
Dabei wird im Parameterscript die System-Zeichensatzliste abgefragt, in ein Array gespeichert und zum Abschluss dem Parameter zeichensatz zugewiesen.

DIM fontNames[]
n = REQUEST("FONTNAMES_LIST", "", fontNames)
VALUES "zeichensatz" fontNames, CUSTOM


Aufklappen Kontext
2D-Skript, 3D-Skript