Name
DICT

Syntax
DICT variablenName1[, variablenName2...]

Aufklappen Wertebereiche
Schlüssel-Bezeichner: String
Werte: String, Ganzzahl, Fließkommazahl

Aufklappen Erläuterung
Dictionaries wurden mit ARCHICAD 23 eingeführt.
Übersetzen kann man Dictionaries mit „Hierarchische Variablen“ oder „Hierarchievariablen“.
Dictionaries sind nämlich Variablen, welche aus hierarchischen Sammlungen von Schlüssel-/Wertepaaren bestehen.
Eine Variable wird als Dictionary-Variable deklariert, nachdem vorher die Dictionary-Sammlung deklariert wurde.
Schlüssel werden als Bezeichner betrachtet.
Ein Schlüssel des Dictionaries kann als Punktnotation referenziert werden.

Dictionaries-Werte können wie andere Variablen vom Typ String, Ganzzahl oder Gleitkomma sein.
Dictionaries selber bilden neben Zahlenwerten, Strings und Gruppen einen neuen Variablentyp: VARTYPE = 4.

Schlüssel von Dictionaries können auch aus 1-dimensionalen Arrays bestehen (oder anderen Dictionaries), welche nicht mit DIM deklariert werden müssen, z.B.
EPS.arrayLENGTH[1] = 0.0001

Man kann komplette Dictionaries auf ein anderes Dictionary durch Zuweisung übertragen, das gilt auch für Parameter-Dictionaries. Die Übertragung funktioniert auch hierarchie-ebenen-weise, d.h. einem 2-Hierarchie-Ebenen-Dictionary wird ein 2-Hierarchie-Ebenen-Dictionary zugewiesen.

Im Script deklarierte Dictionaries kann man mit PRINT-Befehl mit „Script prüfen“ anzeigen lassen.

Parameter
Bibliothekselement-Parameter können auch Dictionary sein, indem man in der Parameterliste den Typ Wörterbuch auswählt und mit entsprechende Werte mit PARAMETERS zuweist. Einstellen und sehen kann man die entsprechenden Werte in der Parameterliste nicht. Als Parameter sind sie in erster Linie für MAKRO-Aufrufe hilfreich.

Anwendung:
Ein Beispielobjekt aus ARCHICAD 23, welches Dictionaries ausgiebig verwendet, ist das Objekt „BasicGeometricCalc.gsm“.
Dictionaries bieten die Möglichkeit, Variablen mittels hierarchischer Strukturen übersichtlicher zu strukturieren und Scripte zu kürzen, da der Inhalt der Dictionaries als ganzes übergeben werden kann, was auch für Makro-Übergabewerte und -Rückgabewerte gilt.

Aufklappen Beispiel
! ---------------------------------------------------------------!
dict EPS
EPS.LENGTH = 0.0001 ! 1/10 mm
EPS.SQUARE = EPS.LENGTH **2
EPS.SCALAR = EPS.SQUARE
EPS.ANGLE = ACS(1 - EPS.SCALAR) ! 0.0081°
! ---------------------------------------------------------------!

Aufklappen Beispiel Erläuterung
EPS wird mit dem Befehl dict als Dictionary(-Sammlung) deklariert, ähnlich wie ein Array mit DIM.
Anschließend werden mehreren Schlüsseln z.B. EPS.LENGTH Werte zugewiesen z.B. 0.00001, woraus sich das genannte Schlüssel-/Wertepaar ergibt.

Aufklappen Tipps und Tricks
Beispiel für ein Wörterbuch/Übersetzungstool, zuerst das Makro:

VALUES{2} "lang", 1, "deutsch", 2, "english"

! ---------------------------------------------------------------------- !

DICT local

! ---------------------------------------------------------------------- !

local.de.zarge = "Zarge"
local.de.blatt = "Blatt"
local.de.schraube = "Schraube"

! ---------------------------------------------------------------------- !

local.en.zarge = "frame"
local.en.blatt = "leaf"
local.de.schraube = "screw"

! ---------------------------------------------------------------------- !

DICT dict_words
IF lang = 1 THEN dict_words = local.de
IF lang = 2 THEN dict_words = local.en

PARAMETERS dict_words = dict_words

! ---------------------------------------------------------------------- !


TEXT2 0, 0, "Ausdruck für Zarge: " + dict_words.zarge

Dann den Caller:

CALL "DICT-Macro" PARAMETERS ALL

In beiden Objekten benötigen wir die Parameter lang (Ganzzahl) und dict_words (Dictionary)

Aufklappen Referenzen
GDL Reference Guide (PDF) für AC 23 ab Seite 294

Aufklappen Kontext
Alle Scripte

Aufklappen ArchiCAD
ARCHICAD 23