Name
UI_CUSTOM_POPUP_INFIELD
Syntax
UI_CUSTOM_POPUP_INFIELD "name", x, y, breite, höhe,
verborgeneIDnutzen, baumtiefe, gruppierMethode, anzeigename,
wert1, wert2, .... wertn
verborgeneIDnutzen, baumtiefe, gruppierMethode, anzeigename,
wert1, wert2, .... wertn
name, Parametername, Typ string
x, y ≥ 0, Postion im UI, Typ integer
breite, höhe ≥ 0, Typ integer
verborgeneIDnutzen 0, 1, Typ integer
baumtiefe ≥ 0, 3, Typ integer
gruppierMethode 1, 2, Typ integer
anzeigename Typ String
wertw Typ String
x, y ≥ 0, Postion im UI, Typ integer
breite, höhe ≥ 0, Typ integer
verborgeneIDnutzen 0, 1, Typ integer
baumtiefe ≥ 0, 3, Typ integer
gruppierMethode 1, 2, Typ integer
anzeigename Typ String
wertw Typ String
UI_CUSTOM_POPUP_INFIELD (und UI_CUSTOM_POPUP_INFIELD{2}) stellt eine Auswahlliste als Baum mit beliebiger Tiefe im UI dar.
Dieser Befehl wurde eingeführt, damit man Parameter im UI setzen kann, ohne dass man das Parameterskript an sich benutzen muss. Der Hintergrund ist, dass in neueren Archicad-Versionen viele Requests nicht mehr im Parameterskript stehen dürfen, da sie sonst eine Warnung hervorrufen.
Hauptsächlich wird UI_CUSTOM_POPUP_INFIELD für die Auswahl von Eigenschaften in Etiketten verwendet.
UI_CUSTOM_POPUP_INFIELD und UI_CUSTOM_POPUP_INFIELD{2} sind sehr komplexe und nicht einfach zu verstehende Befehle und die offizielle Dokumentation ist hier leider eher ein wenig mager.
Beide Befehle besitzen mehrere Varianten und insgesamt auch mehrerer wesentliche Syntaxvarianten, die man klar unterscheiden muss.
Die wichtigsten Steuerungsattribute der wesentlichen Syntaxvarianten sind die folgenden:
verborgeneIDnutzen
Der 1. wesentliche Wert einer Syntaxvariante ist verborgeneIDnutzen (storeHiddenId).
Ist dieser Wert 0, werden im Parameter die im User Interface im Popup angezeigten Werte gespeichert.
UI_CUSTOM_POPUP_INFIELD
"name", x, y, breite, höhe, verborgeneIDnutzen, baumtiefe, gruppierMethode, anzeigename,
wert1, wert2, wert3, usw.
Ist dieser Wert 1, werden im Parameter nicht die im User Interface im Popup angezeigten Werte gespeichert, sondern die entsprechenden Werte in der Baumhierarchie in der 1. Spalte, die aber im Popup nicht sichtbar sind. Das ist z.B. dann sinnvoll wenn verborgeneID = "EF", während wert = "Einfachfalz", dann wird in der Parameteranzeige im UI "EF" angezeigt, in der Popuauswahl jedoch "Einfachfalz"
UI_CUSTOM_POPUP_INFIELD
"name", x, y, breite, höhe, verborgeneIDnutzen, baumtiefe, gruppierMethode, anzeigename,
verborgeneID1, wert1, verborgeneID2, wert2, verborgeneID3, wert3, usw.
baumtiefe
Die baumtiefe gibt die Anzahl der im Popup sichtbaren Gliederungsbaumtiefe an und kann max. 3 sein. Bei einem Wert von 3 kann man also eine Hauptgruppe, 1 Untergruppe und einen Wert sehen, bei einem Wert von 2 eine Hauptgruppe und einen Wert, bei einem Wert von 1 einen Wert, bei einem Wert von 0 ebenfalls einen Wert, wobei bei einer Baumtiefe > 0 immer verborgeneIDnutzen = 1 sein muss.
Der Wert Baumtiefe = 0 ist nur in Kombination mit verborgeneIDnutzen = 0 möglich.
gruppierMethode
Die gruppierMethode funktioniert sowohl mit skalaren als auch mit Array-Parametern.
• Wenn der Wert auf 1 gesetzt ist, werden die Einträge im Pop-up-Baum genauso in der Reihenfolge angezeigt, in der sie im Befehl definiert wurden.
• Wenn der Wert auf 2 gesetzt ist, werden Gruppen mit dem gleichen Namen zusammengefasst und nur einmal angezeigt.
Wichtig: Die Einträge und Gruppen in der Pop-up-Liste werden nicht alphabetisch sortiert. Stattdessen erscheinen die Gruppen basierend auf ihrem ersten Vorkommen in der Liste.
Dieser Befehl wurde eingeführt, damit man Parameter im UI setzen kann, ohne dass man das Parameterskript an sich benutzen muss. Der Hintergrund ist, dass in neueren Archicad-Versionen viele Requests nicht mehr im Parameterskript stehen dürfen, da sie sonst eine Warnung hervorrufen.
Hauptsächlich wird UI_CUSTOM_POPUP_INFIELD für die Auswahl von Eigenschaften in Etiketten verwendet.
UI_CUSTOM_POPUP_INFIELD und UI_CUSTOM_POPUP_INFIELD{2} sind sehr komplexe und nicht einfach zu verstehende Befehle und die offizielle Dokumentation ist hier leider eher ein wenig mager.
Beide Befehle besitzen mehrere Varianten und insgesamt auch mehrerer wesentliche Syntaxvarianten, die man klar unterscheiden muss.
Die wichtigsten Steuerungsattribute der wesentlichen Syntaxvarianten sind die folgenden:
verborgeneIDnutzen
Der 1. wesentliche Wert einer Syntaxvariante ist verborgeneIDnutzen (storeHiddenId).
Ist dieser Wert 0, werden im Parameter die im User Interface im Popup angezeigten Werte gespeichert.
UI_CUSTOM_POPUP_INFIELD
"name", x, y, breite, höhe, verborgeneIDnutzen, baumtiefe, gruppierMethode, anzeigename,
wert1, wert2, wert3, usw.
Ist dieser Wert 1, werden im Parameter nicht die im User Interface im Popup angezeigten Werte gespeichert, sondern die entsprechenden Werte in der Baumhierarchie in der 1. Spalte, die aber im Popup nicht sichtbar sind. Das ist z.B. dann sinnvoll wenn verborgeneID = "EF", während wert = "Einfachfalz", dann wird in der Parameteranzeige im UI "EF" angezeigt, in der Popuauswahl jedoch "Einfachfalz"
UI_CUSTOM_POPUP_INFIELD
"name", x, y, breite, höhe, verborgeneIDnutzen, baumtiefe, gruppierMethode, anzeigename,
verborgeneID1, wert1, verborgeneID2, wert2, verborgeneID3, wert3, usw.
baumtiefe
Die baumtiefe gibt die Anzahl der im Popup sichtbaren Gliederungsbaumtiefe an und kann max. 3 sein. Bei einem Wert von 3 kann man also eine Hauptgruppe, 1 Untergruppe und einen Wert sehen, bei einem Wert von 2 eine Hauptgruppe und einen Wert, bei einem Wert von 1 einen Wert, bei einem Wert von 0 ebenfalls einen Wert, wobei bei einer Baumtiefe > 0 immer verborgeneIDnutzen = 1 sein muss.
Der Wert Baumtiefe = 0 ist nur in Kombination mit verborgeneIDnutzen = 0 möglich.
gruppierMethode
Die gruppierMethode funktioniert sowohl mit skalaren als auch mit Array-Parametern.
• Wenn der Wert auf 1 gesetzt ist, werden die Einträge im Pop-up-Baum genauso in der Reihenfolge angezeigt, in der sie im Befehl definiert wurden.
• Wenn der Wert auf 2 gesetzt ist, werden Gruppen mit dem gleichen Namen zusammengefasst und nur einmal angezeigt.
Wichtig: Die Einträge und Gruppen in der Pop-up-Liste werden nicht alphabetisch sortiert. Stattdessen erscheinen die Gruppen basierend auf ihrem ersten Vorkommen in der Liste.
Beispiel 1:
Das einfachste Beispiel besitzt eine baumtiefe von 0. Dann muss verborgeneIDnutzen ebenfalls 0 sein:

Beispiel 2:
Dieses Beispiel ist eine Abwandlung von Beispiel 1. Bei sämtlichen Varianten des Befehls können wir die Gruppennamen und Textinhalte anstatt in Einzeltextwerten auch als komplettes 1-dimesionales Array nutzen, welches vorher definiert sein muss. Dies erleichtert zum einen die Übersichtlichkeit des Befehls bei langen Textketten und zum anderen ermöglicht es die dynamische Erzeugung dieser Werte. Das Anzeige-Ergebnis des Popups ist identisch mit Beispiel 1.
Dieser Anwendungsfall ist identisch mit einem Beispiel von Graphisoft.
Beispiel 3:
Dieses Beispiel erzeugt eine hierarchische Baumstruktur mit einer maximalen Baumtiefe. verborgeneIDnutzen ist 1 und baumtiefe ist 3.
Das einfachste Beispiel besitzt eine baumtiefe von 0. Dann muss verborgeneIDnutzen ebenfalls 0 sein:
Code Beispiel 1
UI_CUSTOM_POPUP_INFIELD "str_Text", 10, 10, 120, 20, ! X Position, Y Position, Breite, Höhe 0, ! Verdeckte ID nutzen 0, ! Baumtiefe 1, ! gruppierMethode "", ! Ausgewählter Wert Beschreibung: gleich wie die ID "Eiche", "Buche", "Esche"

Beispiel 2:
Dieses Beispiel ist eine Abwandlung von Beispiel 1. Bei sämtlichen Varianten des Befehls können wir die Gruppennamen und Textinhalte anstatt in Einzeltextwerten auch als komplettes 1-dimesionales Array nutzen, welches vorher definiert sein muss. Dies erleichtert zum einen die Übersichtlichkeit des Befehls bei langen Textketten und zum anderen ermöglicht es die dynamische Erzeugung dieser Werte. Das Anzeige-Ergebnis des Popups ist identisch mit Beispiel 1.
Dieser Anwendungsfall ist identisch mit einem Beispiel von Graphisoft.
Code Beispiel 2
DIM auswahl_01[] auswahl_01[1] = "Eiche" auswahl_01[2] = "Buche" auswahl_01[3] = "Esche" UI_CUSTOM_POPUP_INFIELD "str_Text", 150, 10, 120, 20, ! X Position, Y Position, Breite, Höhe 0, ! Verdeckte ID nutzen 0, ! Baumtiefe 1, ! gruppierMethode "", ! Ausgewählter Wert Beschreibung: gleich wie die ID auswahl_01
Beispiel 3:
Dieses Beispiel erzeugt eine hierarchische Baumstruktur mit einer maximalen Baumtiefe. verborgeneIDnutzen ist 1 und baumtiefe ist 3.
Code Beispiel 3
UI_CUSTOM_POPUP_INFIELD "str_Text", 150, 10, 120, 20, ! X Position, Y Position, Breite, Höhe 1, ! Verdeckte ID nutzen 3, ! Baumtiefe 1, ! gruppierMethode "", ! Ausgewählter Wert Beschreibung: gleich wie die ID "verborgeneID1_1", "Group1", "Subgroup1", "Text1", "verborgeneID1_2", "Group1", "Subgroup2", "Text2", "verborgeneID1_3", "Group1", "Subgroup3", "Text3", "verborgeneID2_1", "Group2", "Subgroup1", "Text1", "verborgeneID3_1", "Group3", "Subgroup1", "Text1", "verborgeneID3_2", "Group3", "Subgroup2", "Text2"
Ein Bug verhindert, dass dieser Befehl alleine stehen kann. Archicad stellt dann kein UI dar. Sobald ein weiterer Befehl, wie UI_OUTFIELD, vorhanden ist, funktioniert es wie angedacht.
Der Satz "storeHiddenId = 0, treeDepth = 0: funktioniert nur bei Array-Parametern." aus dem GDL-Referenzhandbuch von Graphisoft konnte nicht bestätigt werden, da dies in unseren Beispielen auch mit Skalarparametern funktioniert.
Der Satz "storeHiddenId = 1, treeDepth > 0: funktioniert nur bei Einzelparametern." aus dem GDL-Referenzhandbuch von Graphisoft konnte nicht bestätigt werden, da dies in unseren Beispielen auch mit Arrayparametern funktioniert.
Der Satz "Der Parameter 'treeDepth' wird automatisch von der zweiten Dimension des Arrays (Anzahl der Spalten) gesetzt." aus dem GDL-Referenzhandbuch von Graphisoft konnte nicht nachvollzogen werden. Dieser Befehlsparameter kann ja manuell gesetzt werden ?!
Der Satz "storeHiddenId = 0, treeDepth = 0: funktioniert nur bei Array-Parametern." aus dem GDL-Referenzhandbuch von Graphisoft konnte nicht bestätigt werden, da dies in unseren Beispielen auch mit Skalarparametern funktioniert.
Der Satz "storeHiddenId = 1, treeDepth > 0: funktioniert nur bei Einzelparametern." aus dem GDL-Referenzhandbuch von Graphisoft konnte nicht bestätigt werden, da dies in unseren Beispielen auch mit Arrayparametern funktioniert.
Der Satz "Der Parameter 'treeDepth' wird automatisch von der zweiten Dimension des Arrays (Anzahl der Spalten) gesetzt." aus dem GDL-Referenzhandbuch von Graphisoft konnte nicht nachvollzogen werden. Dieser Befehlsparameter kann ja manuell gesetzt werden ?!
GRAPHISOFT GDL-CENTER reference guide
New Custom Popup Infield von Graphisoft
fontlist-Beispiel von Graphisoft
New Custom Popup Infield von Graphisoft
fontlist-Beispiel von Graphisoft
User Interface
20