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

Wir schätzen Ihren Input!
Bitte nehmen Sie an der Umfrage zu Archicad 28 Startbildschirm und Lerninhalte/Schnell-Tutorials teil

Programmierung
Alles über Programmierung in GDL und Python

A, B, ZZYZX mit Parametervariablen verknüpfen

mac_martin
Newcomer
Hallo zusammen,

ich möchte gerne die vordefinierten Variablen A, B und ZZYZX mit Parametervariaben meines Objekts verknüpfen.
Mein Ziel ist, in den Objekteinstellungen sowohl oben links, bei den Symbolen, als auch in der Parameter Liste Einstellungen vornehmen zu können, die dann im jeweils anderen Eingabefeld auch angezeigt und vom Objekt verwendet werden.

Ich habe versucht, das im Masterskript zu machen mit
A=meine_Variable_a
B=meine_Variable_b

Das führt aber nicht zum gewünschten Ergebnis.

Wie muss ich vorgehen.
iMac 27'' - 3,4 GHz - RAM 16/32 GB - VRAM 2 GB
AC 10-aktuell
7 ANTWORTEN 7
Anonymous
Nicht anwendbar
Warum arbeitest Du nicht im Script direkt mit A, B, zzyzx?
Z.B. BLOCK A, B, zzyzx

Es geht aber auch folgendes:
meine_Variable_a = A
meine_Variable_b = B
meine_Variable_z = zzyzx
BLOCK meine_Variable_a, meine_Variable_b, meine_Variable_z

A, B, zzyzx sind im übrigen bei jedem Objekt die 3 ersten Parametervariablen.
Wenn Du unbedingt andere Parametervariablen verwenden willst, musst Du folgendes machen, im Parameterscript:

A=meine_Variable_a : PARAMETERS A=A
B=meine_Variable_b : PARAMETERS B=B

Da A, B, zzyzx selber Parameter sind, muss Du in diesem Fall den Parametersbefehl verwenden.
mac_martin
Newcomer
Danke für Deine Hilfe.

"Jochen Suehlo" wrote:
Warum arbeitest Du nicht im Script direkt mit A, B, zzyzx?
Z.B. BLOCK A, B, zzyzx
Weil ich mir angewöhnt habe, "sprechende" Variablennamen zu verwenden (auch in anderen Programmier-/Skriptsprachen).
Macht mir persönlich vieles leichter.

"Jochen Suehlo" wrote:

Es geht aber auch folgendes:
meine_Variable_a = A
meine_Variable_b = B
meine_Variable_z = zzyzx
BLOCK meine_Variable_a, meine_Variable_b, meine_Variable_z
Wo müsste das stehen?
Kann man das in das Masterskript schreiben?
Das hatte ich versucht, hat aber nicht richtig funktioniert.
Sollte sich da auch die Anzeige in der Parameterlsite aktualisieren, wenn ich oben links in den Einstellungen Werte verändere?

"Jochen Suehlo" wrote:
...
musst Du folgendes machen, im Parameterscript:

A=meine_Variable_a : PARAMETERS A=A
B=meine_Variable_b : PARAMETERS B=B
Was genau bewirken diese Kommandos?
Wo ist der Unterschied zu dem, was Du oben geschrieben hast (meine_Variable_a = A ..)
iMac 27'' - 3,4 GHz - RAM 16/32 GB - VRAM 2 GB
AC 10-aktuell
Frank Beister
Moderator
Wirkungsweise Parameters

Wenn beide Variablen gültig sein sollen, dann solltest du folgendes verwenden (im Parameters-Skript):
IF GLOB_MODPAR_NAME="A" THEN PARAMETERS meine_Variable_a = A
IF GLOB_MODPAR_NAME="meine_Variable_a" THEN PARAMETERS A = meine_Variable_a


Achtung: Hier ist die Beachtung der Groß-/Kleinschreibung der Namen wichtig. Dabei geht es mal nicht um die Netiquette. 🙂

Wenn du da aber nicht triftige Gründe für hast, möchte ich dir aber davon abraten doppelte Parameter zu führen. Es ist sowohl für den Anwender als auch für den Quelltext schwer nachvollziehbar und logisch.
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
mac_martin
Newcomer
"Beister" wrote:
...
Wenn du da aber nicht triftige Gründe für hast, möchte ich dir aber davon abraten doppelte Parameter zu führen. Es ist sowohl für den Anwender als auch für den Quelltext schwer nachvollziehbar und logisch.

Ja, das sehe ich ein.

Im Einstellungen Fenster der Objekt sind halt standardmäßig die Felder für Länge, Breite und Höhe da.
Wenn ich die Variablen A,B, ZZ... nicht in meinem Skript verwende, bleiben Eingaben hier wirkungslos. Das finde ich halt nicht so besonders schön.

Im Augenblick ist das aber sekundär für mich.
Ich arbeite mich gerade erst ein in GDL.
Die Frage interessiert mich im insofern nur am Rande.
iMac 27'' - 3,4 GHz - RAM 16/32 GB - VRAM 2 GB
AC 10-aktuell
Anonymous
Nicht anwendbar
Was genau bewirken diese Kommandos?
Wo ist der Unterschied zu dem, was Du oben geschrieben hast (meine_Variable_a = A ..)


In anderen Sprachen ist A = B und B = A identisch.
In GDL geht die Wertzuweisung aber nur in eine Richtung.
D.H. wenn Du einem Parameter (A) den Wert eines anderen Parameters (meine_Variable_a) zuweisen willst, musst Du schreiben:
A = meine_Variable_a (wodurch der Wert im Script zugewiesen wird) und zusätzlich
PARAMETERS A = A (wodurch dem Parameter A der Wert der Variablen A aus dem Script zugewiesen wird).
Näheres, wie Frank schon sagte, in selfGDL.
Frank Beister
Moderator
Im Augenblick ist das aber sekundär für mich.
Nicht ganz: A,B und ZZYZX definieren für die "Welt außerhalb deines Objektes", also dein ArchiCAD-Projekt, welche Dimensionen dein Objekt hat. Läßt du die Werte beliebig und haben die so gar nichts mit den tatsächlichen Dimensionen zu tun, wunderst du dich vielleicht irgendwann mal über eigenartiges Verhalten von Fangpunkten oder Höhen und Sichtbarkeit.
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
Bernhard Binder
Graphisoft Partner
Graphisoft Partner
"mac.martin" wrote:
[Im Einstellungen Fenster der Objekt sind halt standardmäßig die Felder für Länge, Breite und Höhe da.
Wenn ich die Variablen A,B, ZZ... nicht in meinem Skript verwende, bleiben Eingaben hier wirkungslos. Das finde ich halt nicht so besonders schön.


Dann wäre es doch eleganter diese 3 Werte einfach auszublenden. Dann werden Sie auch nicht angezeigt.
(Das geht mit dem x in der Parameterliste)
AC4.5-AC28 AUT, GER, INT www.a-null.com