Das Wissen aller Anwender nutzen

Im Allplan Connect Forum tauschen sich Anwender aus, geben wertvolle Tipps oder beraten sich bei ganz konkreten Aufgabenstellungen − auch international.
Und damit wirklich keine Frage unbeantwortet bleibt, unterstützen die Mitarbeiter des Technischen Supports ebenfalls aktiv das Forum.

Es erwarten Sie:

  • Foren-Vielfalt aus CAD Architektur, CAD Ingenieurbau uvm.
  • Tipps von User für User
  • international: Deutsch, Englisch, Italienisch, Französisch und Tschechisch

Melden Sie sich jetzt an und diskutieren Sie mit!

Zur Registrierung

[Frage] Reagieren auf Parameter [Gelöst]

Schlagworte:
  • PythonParts
  • MessageBox
  • EventID

Hallo!

Ist es Möglich auf einen Parameter (Typ Length) zu reagieren, wenn dieser modifiziert wird? Bei Smartparts ist das ja mit "GLOB_MODPAR_NAME" oder "GLOB_MODPAR_IDX" möglich. Ich habe es schon mit einer Event-ID probiert, jedoch reagiert der Pythonpart nicht wenn ich den gewählten Parameter modifiziere. Um zu testen, ob die gewünschte Reaktion stimmt, habe ich einen Button mit der gleichen Event-ID definiert und hier funktioniert alles wie gewünscht..

Das Thema Pythonparts ist für mich noch Neuland, also verzeiht mir für die Fragestellung.

Anhänge (1)

Typ: image/png
25-mal heruntergeladen
Größe: 23,24 KiB

Lösung anzeigen Lösung verbergen

In den Python-Parts gibt es dafür die Funktion "modify_element_property".
Wenn man diese im PythonParts-Script implementiert, wird diese immer aufgerufen, wenn der Anwender eine Parameter-Wert
per Eingabe in der Palette ändern möchte.

Es ist nicht ganz klar, ob die Änderung beim Aufruf der Funktion bereits erfolgt ist (Post-Call), oder
ob die Änderungen bevorsteht (Pre-Call), oder die Änderung in der Funktion zu machen ist.

Ich habe immer den entspr. Parameter mit dem Namen geändert, und dann durch ret=True dem Aufrufer mitgeteilt, dass ich die Änderung gemacht habe!

Man kann sich das Ganze im Beispiel
\ProgramData\Nemetschek\Allplan\20XX\Etc\PythonPartsScripts\Content\TurnStairs.py
anschauen.

Anhänge (1)

Typ: image/png
50-mal heruntergeladen
Größe: 52,72 KiB

In den Python-Parts gibt es dafür die Funktion "modify_element_property".
Wenn man diese im PythonParts-Script implementiert, wird diese immer aufgerufen, wenn der Anwender eine Parameter-Wert
per Eingabe in der Palette ändern möchte.

Es ist nicht ganz klar, ob die Änderung beim Aufruf der Funktion bereits erfolgt ist (Post-Call), oder
ob die Änderungen bevorsteht (Pre-Call), oder die Änderung in der Funktion zu machen ist.

Ich habe immer den entspr. Parameter mit dem Namen geändert, und dann durch ret=True dem Aufrufer mitgeteilt, dass ich die Änderung gemacht habe!

Man kann sich das Ganze im Beispiel
\ProgramData\Nemetschek\Allplan\20XX\Etc\PythonPartsScripts\Content\TurnStairs.py
anschauen.

Anhänge (1)

Typ: image/png
50-mal heruntergeladen
Größe: 52,72 KiB

Danke für die schnelle Antwort!
Das Beispiel werd ich mir ansehen.