Hallo. Ich habe ein recht seltsames Problem. Ich hab mich mal an einem Interactor probiert. Als Vorlage hab ich da den Polyline3DInteractor genommen. Da ich meinen PythonPart jedoch nicht als 3D Element sondern als Part absetzten will, hab ich den Part so erzeugt:
pythonpart = PythonPart('MyInteractor', parameter_list=BuildingElementListService.get_params_list( self.build_ele_list), hash_value=BuildingElementListService.get_hash( self.build_ele_list), python_file=self.build_ele_list[0].pyp_file_name, views=[View2D3D(self.model_ele_list)]) AllplanBaseElements.CreateElements(self.coord_input.GetInputViewDocument(), AllplanGeo.Matrix3D(), pythonpart.create(), [], None)
Auch beim Initialisieren meiner Interactor Klasse hab ich folgende Parameter ergänzt:
self.build_ele_list = build_ele_list self.build_ele_composite = build_ele_composite self.control_props_list = control_props_list self.modify_uuid_list = modify_uuid_list
So weit so gut. Wenn ich den PythonPart aus der Bibliothek erzeuge funktioniert alles genau so wie ich will ohne Fehler. Sobald ich jedoch den abgesetzten PythonPart wieder modifizieren will (also mit Doppelklick) dann erscheint folgende Fehlermeldung im Trace.
Traceback (most recent call last):
File "C:\ProgramData\Nemetschek\Allplan\2022\Etc\PythonPartsFramework\GeneralScripts\BuildingElementInput.py", line 795, in create_element
preview_ele_list = self.build_ele_script.create_element(self.build_ele_list[0],
AttributeError: 'NoneType' object has no attribute 'create_element'
Ich verstehe aber nicht warum das nicht funktioniert. Die Polylinie die ich abgreife wird auch in einem Parameter aus der .pal-File gespeichert - die erzeugte Geometrie dürfte also nicht verloren gehen...