2024-05-17 04:24 PM - bearbeitet 2024-09-13 09:21 AM
Ich habe an anderer Stelle praktisch die gleich Frage gestellt. Aber hier ist der Schwerpunkt auf GDL Programmierung. Kann mir jmd einen Hinweis geben, wie man Etikett-Eigenschaften wie z.B. die Hintergrundfarbe über eine Eigenschaft des Parent Objekts steuern kann? Als ich das vor ein paar Monaten probiert habe, war ich schnell bei kryptischen Eigenschaftsnummer und funktioniert hat es irgendwie trotzdem nicht. Hat jmd. eine Idee?
Operating system used: Windows
Gelöst! Gehe zu Lösung.
am 2024-09-12 02:51 PM
Mit ist nur nicht ganz klar, wie ich den richtigen Wert für die _stPropertyID bekomme.
Unsere Etiketten suchen den Namen der Eigenschaft, kriegen die ID, lesen den Wert und machen was damit.
Wenn bei den Namen also keine allzu große Dynamik herrscht:
EigenschaftWert = ""
meine_ID = ""
for j = 20 to vardim1(parentProperties) step 4
if parentProperties [j] = NameEigenschaft then
meine_ID = parentProperties [j-3]
goto 100
endif
next j
100:
if meine_ID # "" then
dim propertyValues[]
m = 0
m = REQUEST ("Property_Value_Of_Parent", meine_ID, typeValue, dim1, dim2, propertyValues)
if m > 0 then EigenschaftWert = propertyValues [1]
endif
Jede Eigenschaft bildet ein Viererpäckchen im Array der 'parentProperties', darum 'step 4'.
Wenn ein Eigenschaftenname mehrmals (aber in verschiedenen Eigenschaften-Gruppen) vorkommt, musst Du die auch noch durchforsten.
Der Datentyp der Eigenschaft steht in 'typeValue', falls das von Interesse ist, sonst schnapp' Dir den Wert einfach aus dem Array 'propertyValues[1]'.
Der 'offizielle' Weg der Eigenschaften-Auswahl mit den Aufklapplisten aus dem GS-Beispiel war uns immer viel zu kompliziert...
https://gdl.graphisoft.com/tips-and-tricks/display-properties-with-labels
am 2024-05-21 12:40 AM
Ohne es getestet zu haben scheinen mehrere Hinweise hier verborgen zu sein:
https://gdl.graphisoft.com/forums/topic/request-object-parameters-with-label
Ein fire_rating Zeile ist in der DW_marker auch zu finden.
Der "F Marker 27.gsm" baut dabei auf der "gs_DW_Marker.gsm" auf, die die eigentliche Abfrage macht.
Mir ist noch nicht ganz klar, was nun ein Marker Objekt von einem normalen Objekt unterscheidet. Also wie erkennt ArchiCAD, dass mein Objekt gerne Daten aus einem anderen Bauteil hätte?
2024-09-11 12:03 PM - bearbeitet 2024-09-11 12:11 PM
Meine eigene Antwort auf die letzte Frage ist, dass dies über Subtypen erkannt wird. Damit kann man auch einen Haufen von Parameter gleich in sein GDL übernehmen.
Eine nette Methode habe ich auf Youtube gefunden, ist aber ein ganz anderen Ansatz.
https://youtu.be/phIitZmaFCM?si=eH6x-iFq9xwXcTMB
Meine Frage ist nun, ob man vielleicht mit Call und Subtype Huckepack auf einem/r fertigen Marker/Tür reiten kann, so dass man nicht in ein Standardobjekt reinpfuschen muss, sondern einfach ein bestehendes Objekt um eine Darstellung/Funktion erweitert?
am 2024-09-12 08:54 AM
Du hast schon den richtigen Befehl gefunden. Schau sonst auch nochmal auf selfGDL .
Der Ablauf ist:
Per REQUEST ("ASSOCLP_PARVALUE", den Wert abfragen, der das Etikett steuern soll.
Entscheidungsabfrage auf die die Darstellung des Etiketts reagiert.
sts = REQUEST ("ASSOCLP_PARVALUE", "B", iPara, typ, dPara, dim1, dim2, wert)
if sts then
if wert > 2 then
pen 15
else
if wert > 1 then
pen 20
else
pen 25
endif
endif
else
pen 1
endif
am 2024-09-12 11:36 AM
Hallo Frank,
Danke für die Antwort. Sie gibt mir schonmal etwas Sicherheit.
Für die Parameter von selbst erstellten GDL-Objekten ist das sicherlich eine gangbare Lösung. Was ich eigentlich gesucht habe, war eine Möglichkeit die Eigenschaften/Properties zu visualisieren. Ich hatte es nur nicht mehr geupdatet, weil sich keiner für das Problem zu interessieren schien.
Also im Eigenschaft-Etikett 27.gsm findet sich unter der sub "getPropertyValue" folgende Abfrage:
Interessant finde ich den "Türstempel 27.gsm" vom Subtype Tür-Marker, dort ist nur ein
"call "DW_stamp_macro" parameters all bWindow = 0" drin. Also praktisch optimal für eine eigene Erweiterung.
(In dw_stamp_makro unter der Sub "getPropData" ist, meine ich, lesenswert)
Wenn man richtig geschickt sein möchte, dann ist vielleicht
Gruß aus Düsseldorf
Thorsten
am 2024-09-12 02:39 PM
Was ist dann nochmal die Frage und v.a. was möchtest du machen? Ich kann da zu viel reininterpretieren. Und ja, Quellcode lesen ist mitunter interessant. GS-GDL-Quellcode hingegen meist nicht.
am 2024-09-12 02:51 PM
Mit ist nur nicht ganz klar, wie ich den richtigen Wert für die _stPropertyID bekomme.
Unsere Etiketten suchen den Namen der Eigenschaft, kriegen die ID, lesen den Wert und machen was damit.
Wenn bei den Namen also keine allzu große Dynamik herrscht:
EigenschaftWert = ""
meine_ID = ""
for j = 20 to vardim1(parentProperties) step 4
if parentProperties [j] = NameEigenschaft then
meine_ID = parentProperties [j-3]
goto 100
endif
next j
100:
if meine_ID # "" then
dim propertyValues[]
m = 0
m = REQUEST ("Property_Value_Of_Parent", meine_ID, typeValue, dim1, dim2, propertyValues)
if m > 0 then EigenschaftWert = propertyValues [1]
endif
Jede Eigenschaft bildet ein Viererpäckchen im Array der 'parentProperties', darum 'step 4'.
Wenn ein Eigenschaftenname mehrmals (aber in verschiedenen Eigenschaften-Gruppen) vorkommt, musst Du die auch noch durchforsten.
Der Datentyp der Eigenschaft steht in 'typeValue', falls das von Interesse ist, sonst schnapp' Dir den Wert einfach aus dem Array 'propertyValues[1]'.
Der 'offizielle' Weg der Eigenschaften-Auswahl mit den Aufklapplisten aus dem GS-Beispiel war uns immer viel zu kompliziert...
https://gdl.graphisoft.com/tips-and-tricks/display-properties-with-labels
am 2024-09-12 02:55 PM
Ich versuche eine möglichst einfach Lösung für das Visualisieren von Eigenschaften zu finden.
am 2024-09-12 04:09 PM
Achtung Werbung:
Da dieser Anwendungsfall öfters von unseren Kunden angefragt wurde, haben wir eine Lösung in unserer kommenden A-NULL Club-Bibliothek. (Hinweis: die ist kostenpflichtig!)
Wir haben das aus unserer Sicht recht geschickt gelöst, indem wir Einfärbungen ähnlich wie in den grafischen Überschreibungen über die Modelldarstellung lösen. Es kann dabei auf alle Eigenschaften eine Elements zugegriffen werden, oder alternativ über eine Auswertung auch auf alle Parameter.
Hier ein Teaser dazu, der Release ist für Ende September geplant.
am 2024-09-12 04:37 PM
Bei "Goto 100" springen bei mir alle Alarmglocken an, aber es geht ja ums Prinzip. 😉 Danke für die sehr hilfreichen Antworten.