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] Verwendung der Allplanfunktion zum Selektieren von Elementen; AllplanIFW.InputFunctionStarter.StartElementSelect(...)

Schlagworte:
  • Elemente
  • Selektieren
  • StartElementSelect
  • Pythonpart

Guten Tag,

Ich muss für ein PythonPart in der Lage sein mehrere Elemente zu selektieren, dazu verwende ich im Moment die Methode AllplanIFW.InputFunctionStarter.StartElementSelect(…).
Normalerweise ist es möglich bei gedrückter Ctrl-Taste mehrere Dinge zu selektieren. Was diese Methode aber standardmässig nicht zu tun scheint. Muss diese Funktionalität selbst Programmiert werden?

Freundliche Grüsse

Hilfreichste Antwort anzeigen Hilfreichste Antwort verbergen

Mit STRG+Klick kann man nur Elemente selektieren, wenn man die Input-Function noch nicht gestartet hat!

Wenn man die Input-Function schon gestartet hat, geht Gleichartiges nur mit der Verwendung der Summentaste!

11 - 12 (12)

Hallo Yannic

In welcher Funktion bzw. Klasse/Methode sollte dein jetzt Code stehen?

Gruss
Hansruedi

Hallo Hansruedi

Die Klasse in der StartElementSelect ist nicht relevant, ich verwende eine Klasse InteractorHelper in der ich Dinge mache wie Handles bewegen und das Selektieren implementiert habe.
Aus einem Grund, den ich nicht verstehe, wird beim ersten Mal aufrufen der Funktion StartElementSelect(…) diese nicht so ausgeführt, wie ich es erwarten würde.
Da ich die Methode aber so lange aufrufen will bis auf einen Button gedrückt wird, starte ich die Methode so lange neu, bis eben dieser Button gedrückt wird, da die Funktion nur aufgerufen werden muss, wenn sich der Mauszeiger auf der Zeichenfläche befindet, rufe ich die Klasse immer über process_mouse_msg im Interactor auf. Hier ist anzumerken, dass process_mouse_msg nur aufgerufen wird, wenn StartElementSelect abgeschlossen wurde. Um StartElementSelect zu beenden, muss AllplanIFW.InputFunctionStarter.RemoveFunction(), die Funktion darf aber nur aufgerufen werden, wenn StartElementSelect aktiv ist. Das wiederholte aufrufen, bis ein Event stattfindet bringt aber noch andere Probleme mit sich, unter anderem muss man sich um darum kümmern, dass nur die zuletzt Ausgewählten Elemente markiert sind.
Ich weiss nicht wie sinnvoll meine Lösung ist, sie scheint aber zuverlässig zu funktionieren.
Wo und wie die Funktion aufgerufen werden soll, weiss ich nicht, ich kann lediglich erklären wie ich das Problem gelöst habe.

Freundliche Grüsse
Yannic

11 - 12 (12)