abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
Programmierung
Alles über Programmierung in GDL und Python
GELÖST!

request automatisch aktualisieren

pla-vis
Contributor

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

Software: ARCHICAD 6.5 - 28 Voll, CH | Artlantis Render 4 - 2019 | D5 Render | Windows 11 x64
Hardware: AMD Ryzen 9 3900X | 12 x 3.80 GHz | 64 GB RAM | Nvidia GeForce RTX 2070
1 AKZEPTIERTE LÖSUNG

Akzeptierte Lösungen
Lösung
Jochen Suehlo
Moderator

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

 

 

Jochen Suehlo . AC12-27 . MAC OSX 14.4 . WIN11
GDL object creation: b-prisma.de

Lösung in ursprünglichem Beitrag anzeigen

9 ANTWORTEN 9
Frank Beister
Moderator

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.

bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm
pla-vis
Contributor

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.

Software: ARCHICAD 6.5 - 28 Voll, CH | Artlantis Render 4 - 2019 | D5 Render | Windows 11 x64
Hardware: AMD Ryzen 9 3900X | 12 x 3.80 GHz | 64 GB RAM | Nvidia GeForce RTX 2070
Jochen Suehlo
Moderator

In welchen Skripten verwendest Du den REQUEST-Befehl und die Umrechnung?
Arbeitest Du auch mit dem PARAMETERS Befehl in diesem Zusammenhang?

Jochen Suehlo . AC12-27 . MAC OSX 14.4 . WIN11
GDL object creation: b-prisma.de

@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)

ArchiCAD 25 / Windows 10
Jochen Suehlo
Moderator

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.

Jochen Suehlo . AC12-27 . MAC OSX 14.4 . WIN11
GDL object creation: b-prisma.de

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.

Software: ARCHICAD 6.5 - 28 Voll, CH | Artlantis Render 4 - 2019 | D5 Render | Windows 11 x64
Hardware: AMD Ryzen 9 3900X | 12 x 3.80 GHz | 64 GB RAM | Nvidia GeForce RTX 2070

ich hatte schon probiert das script mittels eines im script vorhandenen autotexts anzustossen, hat aber auch nicht funktioniert.

Software: ARCHICAD 6.5 - 28 Voll, CH | Artlantis Render 4 - 2019 | D5 Render | Windows 11 x64
Hardware: AMD Ryzen 9 3900X | 12 x 3.80 GHz | 64 GB RAM | Nvidia GeForce RTX 2070
Lösung
Jochen Suehlo
Moderator

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

 

 

Jochen Suehlo . AC12-27 . MAC OSX 14.4 . WIN11
GDL object creation: b-prisma.de

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...

Software: ARCHICAD 6.5 - 28 Voll, CH | Artlantis Render 4 - 2019 | D5 Render | Windows 11 x64
Hardware: AMD Ryzen 9 3900X | 12 x 3.80 GHz | 64 GB RAM | Nvidia GeForce RTX 2070

Setup info provided by author