abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

Das 2025 Technology Preview Programm ist jetzt verfügbar. Jetzt teilnehmen!

Programmierung
Alles über Programmierung in GDL und Python
GELÖST!

Unterkante zu Meerespiegel in einem Objekt als TEXT anzeigen lassen

Rainer123
Contributor

Ich möchte eine Höhenkotenobjjekt erstellen welches in 3D und Grundriss sichtbar ist.
Hierzu möchte ich die absolute Höhe und die Abstand zum Ursprungsgeschoss durch den Befehl TEXT2 auslesen lassen.

DIese Parameter hab ich dazu gefunden:
https://gdl.graphisoft.com/reference-guide/built-in-property-guide/

Leider weis ich nicht ob dies hierzu brauchbar ist und ob ich diesen Parameter durch einen TEXT auslesen kann:
"Builtin.General_ElevationToSeaLevel"

3 AKZEPTIERTE LÖSUNGEN

Akzeptierte Lösungen
Lösung
Bernhard Binder
Graphisoft Partner
Graphisoft Partner

Du kannst als Abstand den Parameter "GLOB_ELEVATION" verwenden.

TEXT2 0,0,GLOB_ELEVATION

Wenn du diesen in Bezug zu den 4 möglichen Referenzhöhen setzen möchtest...

BernhardBinder_0-1753699066586.png

... dann kannst du diese mit auslesen.

REQUEST ("REFERENCE_LEVEL_DATA", "", name1, elev1, name2, elev2, name3, elev3, name4, elev4)

 

also z.B. zur Meereshöhe:

n = REQUEST ("REFERENCE_LEVEL_DATA", "", name1, elev1, name2, elev2, name3, elev3, name4, elev4)
TEXT2 0,0,GLOB_ELEVATION+elev4*(-1)

 

PS: Die Werte sollten natürlich noch sinnvoll formatiert werden und nicht nur einfach so, wie in meinem Beispiel verwendet werden.

 

AC4.5-AC29 AUT, GER, INT www.a-null.com

Lösung in ursprünglichem Beitrag anzeigen

Lösung

Hier die Requests: REQUEST Options | GRAPHISOFT GDL Center

Hier die Globalen Parameter: General Libpart Parameters | GRAPHISOFT GDL Center

 

Der Request Befehl mit "Reference_Level_Data" liefert dir einfach 8 Werte zurück. Jeweils den Namen und den eingetragenen Wert (siehe Screenshot).

Es sollte im Screenshot übrigens nicht "Ansicht" sondern "Höhe" heißen. Das ist das Problem von der englischen Übersetzung von "Elevation"

AC4.5-AC29 AUT, GER, INT www.a-null.com

Lösung in ursprünglichem Beitrag anzeigen

Lösung
n = REQUEST ("REFERENCE_LEVEL_DATA", "", name1, elev1, name2, elev2, name3, elev3, name4, elev4)

myVal = GLOB_ELEVATION + elev4 * ( - 1 )

eps = 0.00001
_plus = ""
IF ABS(myVal) < eps 	THEN _plus = "±"
IF myVal < 0 			THEN _plus = ""
IF myVal > 0 			THEN _plus = "+"

myString = _plus + STR(myVal, 4, 2) 

TEXT2 0, 0, myString

So geht es am einfachsten, aber man kann die Nachkommastellen auch noch nach den Projektpräferenzen ausgeben lassen.

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

Lösung in ursprünglichem Beitrag anzeigen

5 ANTWORTEN 5
Lösung
Bernhard Binder
Graphisoft Partner
Graphisoft Partner

Du kannst als Abstand den Parameter "GLOB_ELEVATION" verwenden.

TEXT2 0,0,GLOB_ELEVATION

Wenn du diesen in Bezug zu den 4 möglichen Referenzhöhen setzen möchtest...

BernhardBinder_0-1753699066586.png

... dann kannst du diese mit auslesen.

REQUEST ("REFERENCE_LEVEL_DATA", "", name1, elev1, name2, elev2, name3, elev3, name4, elev4)

 

also z.B. zur Meereshöhe:

n = REQUEST ("REFERENCE_LEVEL_DATA", "", name1, elev1, name2, elev2, name3, elev3, name4, elev4)
TEXT2 0,0,GLOB_ELEVATION+elev4*(-1)

 

PS: Die Werte sollten natürlich noch sinnvoll formatiert werden und nicht nur einfach so, wie in meinem Beispiel verwendet werden.

 

AC4.5-AC29 AUT, GER, INT www.a-null.com
Rainer123
Contributor

Vielen Dank!
Stehen diese Angaben:

("REFERENCE_LEVEL_DATA", "", name1, elev1, name2, elev2, name3, elev3, name4, elev4)

"
irgendwo beschrieben?
Oder woher weis man, dass da name1,elev1,... usw. hinter dem Befehl stehen muss?

Lösung

Hier die Requests: REQUEST Options | GRAPHISOFT GDL Center

Hier die Globalen Parameter: General Libpart Parameters | GRAPHISOFT GDL Center

 

Der Request Befehl mit "Reference_Level_Data" liefert dir einfach 8 Werte zurück. Jeweils den Namen und den eingetragenen Wert (siehe Screenshot).

Es sollte im Screenshot übrigens nicht "Ansicht" sondern "Höhe" heißen. Das ist das Problem von der englischen Übersetzung von "Elevation"

AC4.5-AC29 AUT, GER, INT www.a-null.com
Rainer123
Contributor

Ich bekomme beim Textoutput . statt ,
Kann man das durch formatieren auf Komma ändern?
z.B.: 347,78 statt 347.78

Kann man den Textwert auf 2 Dezimalstellen begrenzen?
Kann man beim Outputwert + - ± automatisch einfügen?

Lösung
n = REQUEST ("REFERENCE_LEVEL_DATA", "", name1, elev1, name2, elev2, name3, elev3, name4, elev4)

myVal = GLOB_ELEVATION + elev4 * ( - 1 )

eps = 0.00001
_plus = ""
IF ABS(myVal) < eps 	THEN _plus = "±"
IF myVal < 0 			THEN _plus = ""
IF myVal > 0 			THEN _plus = "+"

myString = _plus + STR(myVal, 4, 2) 

TEXT2 0, 0, myString

So geht es am einfachsten, aber man kann die Nachkommastellen auch noch nach den Projektpräferenzen ausgeben lassen.

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