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

Explizites Reload des PythonPart ohne Neustart von Allplan [Gelöst]


Weiss jemand wie kann das python modul meines PythonPartes ohne Neustart von Allplan explizit neu geladen werden ?

Hintergrund:
es hat einen kleinen codefehler im modul des PythonParts (py) infolge einer Anpassung im Code. Das trace fenster gibt auch den Fehler aus. Wenn der Fehler angepasst wurde wird in vielen Fällen noch der alte Code ausgeführt. Das ganze passiert nur bei Fehlern, aber nicht bei allen. Ganz sicher hilft ein Neustart von Allplan zum Ausführen des abgeänderten Codes. Einfach auf ein anders PythonPart (pyp) klicken und wieder das fehlerhafte hilft nicht. Das hilft nur bei fehlerlosen Anpassugen im Code in jedem Fall.

Ist einfach ein wenig nervig alle Nase lang Allplan neu zu starten während der Programmierung.

gruss bernd

BIM, BAM, BOOM
BIM-Modelle Tragwerksplaner --> http://www.bimstatik.ch/
My Allplan PythonParts --> https://github.com/BIMStatik/AllplanPythonParts
LinkedIN --> https://ch.linkedin.com/in/bernd-hahnebach-269b855a

Lösung anzeigen Lösung verbergen

..geht auch einfacher!

Dazu musst Du nur im Framwork eine Datei ändern:

CreateLibraryPreview.py
Zeile 41:
build_element_script = BuildingElementUtil.import_building_element_script(build_ele_list[0], False)
Ändern in
build_element_script = BuildingElementUtil.import_building_element_script(build_ele_list[0], True)

Dann wird in BuildingElementUtil.py
Zeile 37 folgendes ausgeführt:
if reload_script:
script = importlib.reload(script)

Fertig ist die Laube!
Ich denke mal, die Jungs von Allplan haben das wegen der Performance dort nicht immer neu geladen...

Gruß Jörg

11 - 13 (13)

Anmerkung zur Allplan Version 2017.1:

Der Parameter reload_script der Funktion

 BuildingElementUtil.import_building_element_script() 
muss zweimal auf 'True' geändert werden:

Datei: CreateLibraryPreview.py in Zeile 56

Datei: BuildingElementComposite.py in Zeile 256

Es wird nur die Vorschau am Mauszeiger sofort geändert, das Vorschaufenster im Panel wird leider erst geändert, wenn man das aktuelle Bibliotheksverzeichnis gewechselt hat. Kann man das Aktualisieren des Vorschaufensters durch einen Funktionsaufruf anstoßen?

Gruß, Manfred

ich habe das gleiche problem, obwohl ich die true in beiden datein geändert habe, ich benutze version 2018, ich will auch die gelegenheit benutzn um zu wünschen mehr kommentare in py datein, damit man besser und schneller verstehen können, danke
LG
Karam

Zitiert von: Karam_K
ich habe das gleiche problem, obwohl ich die true in beiden datein geändert habe, ich benutze version 2018, ich will auch die gelegenheit benutzn um zu wünschen mehr kommentare in py datein, damit man besser und schneller verstehen können, danke
LG
Karam

Nur ein TIPP am Rande: es ist keine Gute Idee, ein (ggf. neues) Problem an einen bereits als GELÖST markierten Beitrag zu hängen.

Besser:

Neuem Beitrag beginnen mit :
ich habe das gleiche Problem wie in dem Beitrag
https://connect.allplan.com/de/forum/themen/topic/topics/pythonparts-1/explizites-reload-des-pythonpart-ohne-neustart-von-allplan.html

aber die Lösung xyz hilft bei mir nicht. Anders als in obigem Beitrag nutze ich Allplan 2018.
..usw.

Allplan Webentwicklung

Private messages must be private. No support request via Private message.

11 - 13 (13)