Wir schätzen Ihren Input! Bitte nehmen Sie an der Umfrage zu Archicad 28 Startbildschirm und Lerninhalte/Schnell-Tutorials teil
2024-04-23 01:02 PM - bearbeitet 2024-04-23 01:19 PM
hallo zusammen,
gerne würde ich wissen, ob es möglich ist, eine request-abfrage im gesetzten gdl-element automatisch zu aktualisieren?
ich habe ein gdl programmiert, welches mir per request (REFERENCE_LEVEL_DATA) die verschiedenen referenzhöhen abfragt.
wenn ich nun eine dieser höhen ändere, möchte ich, dass diese höhenangabe auch automatisch im gdl geändert wird.
bis anhin muss ich kurz die einstellungen des entsprechenden elements öffnen, damit sich der wert aktuallisiert, ansonsten bleibt es beim alten wert.
das ist aber sehr gefährlich, wenn man vergisst, sämtliche gesetzten elemente kurz zu öffnen.
beispielsweise bei autotexten im gdl klappt das ja problemlos, wenn sich da etwas verändert, wird das im gdl auch gleich richtig angezeigt.
kennt dafür jemand eine lösung?
Operating system used: Windows 11
Gelöst! Gehe zu Lösung.
am 2024-04-24 12:42 PM
Wozu benötigst Du das Parameter-Script.
Wenn es nur um die Anzeige in 2D geht, z.B. bei einem Etikett, funktioniert folgendes problemlos (sofortige Aktualisierung bei Änderung einer Referenzhöhe oder der Meereshöhe):
n = REQUEST ("REFERENCE_LEVEL_DATA", "", name1, elev1, name2, elev2, name3, elev3, name4, elev4)
TEXT2 0, 0, SYMB_POS_Z
TEXT2 0, -1, elev4 ! Meereshöhe
TEXT2 0, -2, elev4 - SYMB_POS_Z
TEXT2 0, -3, elev2 ! Referenzhöhe 1
TEXT2 0, -4, elev2 - SYMB_POS_Z
am 2024-04-24 08:43 AM
AC arbeitet in jedem Kontext z.B. beim Neuaufbau einer Ansicht die jeweils nötigen Skripte ab, wenn es annimmt, dass sich etwas geändert haben könnte. Das Master-Skript wird immer abgearbeitet. Das PARAMETER Skript wird aber nur in speziellen Fällen abgearbeitet. Problematisch ist der PARAMETERS-Befehl , der fixe Parameter ändert. Diese dynamisch bedingt durch Umgebungsparameter zu aktualisieren ist sollte vermieden werden, da der Befehl nicht in jedem Kontext bei der Abarbeitung wirksam ist. Sicher wird er nur ausgeführt, wenn auch andere Parameter des Objektes geändert werden. Z.B. durch den Einstellungsdialog.
Du müsstest genauer zeigen, wo und wozu du den REQUEST verwendest.
am 2024-04-24 08:57 AM
danke frank für die antwort.
das problem habe ich bei zwei gdl-scripts. das eine ist ein kanalisationsetikett, welches mir per request die meereshöhe abholt und diese mit hilfe von variablen für die ausgabe umrechnet.
beim anderen möchte ich ganz einfach die meereshöhe in einem plankopf ausgeben. für mich wäre es schon hilfreich, wenn diese scripts nach einem modell-neuaufbau oder einem neuladen der bibliotheken, wieder neu abgearbeitet werden.
wir haben das nun schon zweimal erlebt, dass etwas an den referenzhöhen (meereshöhen) verändert wurde aber eben nicht bei diesen gdl's und gemerkt haben wir es dann erst auf der baustelle.
am 2024-04-24 09:57 AM
In welchen Skripten verwendest Du den REQUEST-Befehl und die Umrechnung?
Arbeitest Du auch mit dem PARAMETERS Befehl in diesem Zusammenhang?
am 2024-04-24 11:08 AM
@Jochen Suehlo und @Frank Beister
seht ihr denn da überhaupt eine Möglichkeit, den Skriptdurchlauf anzuschubsen, ohne den Einstelldialog zu öffnen oder einen Parameter zu ändern ?
(man könnte z.B eine Änderung eines nicht benutzten Parameters b verwenden, um eine Aktualisierung durchzuführen - bringt aber auch keinen wesentlichen Vorteil, finde ich)
am 2024-04-24 11:38 AM
Meiner Meinung nach sollte z.B. eine Abfrage im 2D-Script eines Etiketts (was ja keinen PARAMETERS-Befehl verwendet) eigentlich auf Änderungen des Kontextes reagieren können, ohne dass manuelle Aktualisierungen erforderlich sind. Ich kann mich aber auch irren. Ich werde das nachher mal selber ausprobieren.
am 2024-04-24 11:49 AM
die abfrage findet im parametersript statt. ich hatte es testweise auch im masterscript probiert aber das hat mir auch nicht weitergeholfen.
und ja, die variable aus der abfrage wird im parameterscript an einen parameter weitergegeben bzw. mit -1 multipliziert, da die ausgabe der meereshöhe immer in einer negativen zahl erfolgt.
am 2024-04-24 11:51 AM
ich hatte schon probiert das script mittels eines im script vorhandenen autotexts anzustossen, hat aber auch nicht funktioniert.
am 2024-04-24 12:42 PM
Wozu benötigst Du das Parameter-Script.
Wenn es nur um die Anzeige in 2D geht, z.B. bei einem Etikett, funktioniert folgendes problemlos (sofortige Aktualisierung bei Änderung einer Referenzhöhe oder der Meereshöhe):
n = REQUEST ("REFERENCE_LEVEL_DATA", "", name1, elev1, name2, elev2, name3, elev3, name4, elev4)
TEXT2 0, 0, SYMB_POS_Z
TEXT2 0, -1, elev4 ! Meereshöhe
TEXT2 0, -2, elev4 - SYMB_POS_Z
TEXT2 0, -3, elev2 ! Referenzhöhe 1
TEXT2 0, -4, elev2 - SYMB_POS_Z
am 2024-04-24 02:22 PM
danke joachim, das war's.
wenn ich die request-abfrage ins 2d-script schreibe, funktionierts tadellos mit dem aktualisieren.
wieso diese befehle im parameterscript waren, weiss ich auch nicht. diese scripte sind schon jahrealt und wurden immer wieder erweitert, bis man dann einmal fehler entdeckt...