From b021dbf55ef94750f8e40796d6cc75924e81c026 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 24 Jul 2024 17:21:42 +0500 Subject: [PATCH] fix issue in 93fe2e9 forgot that bim.assign_class is used without context arguments too, moved poll to pie menu operator --- src/blenderbim/blenderbim/bim/module/model/pie.py | 7 +++++++ .../blenderbim/bim/module/root/operator.py | 12 +++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/pie.py b/src/blenderbim/blenderbim/bim/module/model/pie.py index e76a5eb52e..7c55265d81 100644 --- a/src/blenderbim/blenderbim/bim/module/model/pie.py +++ b/src/blenderbim/blenderbim/bim/module/model/pie.py @@ -28,6 +28,13 @@ class OpenPieClass(bpy.types.Operator): bl_label = "Open Pie Class" bl_description = "Assign the IFC Class to the selected objects" + @classmethod + def poll(cls, context): + if not context.active_object and not context.selected_objects: + cls.poll_message_set("No object selected.") + return False + return True + def execute(self, context): bpy.ops.wm.call_menu_pie(name="VIEW3D_MT_PIE_bim_class") return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/root/operator.py b/src/blenderbim/blenderbim/bim/module/root/operator.py index f58077282a..e41b1b5833 100644 --- a/src/blenderbim/blenderbim/bim/module/root/operator.py +++ b/src/blenderbim/blenderbim/bim/module/root/operator.py @@ -175,16 +175,14 @@ class AssignClass(bpy.types.Operator, tool.Ifc.Operator): should_add_representation: bpy.props.BoolProperty(default=True) ifc_representation_class: bpy.props.StringProperty() - @classmethod - def poll(cls, context): - if not context.active_object and not context.selected_objects: - cls.poll_message_set("No object selected.") - return False - return True - def _execute(self, context): props = context.scene.BIMRootProperties objects = [bpy.data.objects.get(self.obj)] if self.obj else context.selected_objects or [context.active_object] + + if not objects: + self.report({"INFO"}, "No objects selected.") + return + ifc_class = self.ifc_class or props.ifc_class predefined_type = self.userdefined_type if self.predefined_type == "USERDEFINED" else self.predefined_type ifc_context = self.context_id