From 2feae06ebd19f68645d466c2e68d58ecd1416b74 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 3 Jul 2024 12:18:14 +0500 Subject: [PATCH] bim.add_representation - error if current object has is an empty --- .../blenderbim/bim/module/geometry/operator.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py index 8879efd522..e424ead39a 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py @@ -159,7 +159,15 @@ class AddRepresentation(bpy.types.Operator, Operator): original_data = obj.data - if self.representation_conversion_method == "OUTLINE": + conversion_method = self.representation_conversion_method + if not original_data: + self.report( + {"ERROR"}, + (f"No mesh data found for the active object. Mesh data required for '{conversion_method}' method."), + ) + return {"FINISH"} + + if conversion_method == "OUTLINE": if ifc_context.ContextType == "Plan": data = tool.Geometry.generate_outline_mesh(obj, axis="+Z") elif ifc_context.ContextIdentifier == "Profile": @@ -167,7 +175,7 @@ class AddRepresentation(bpy.types.Operator, Operator): else: data = tool.Geometry.generate_outline_mesh(obj, axis="+Z") tool.Geometry.change_object_data(obj, data, is_global=True) - elif self.representation_conversion_method == "BOX": + elif conversion_method == "BOX": if ifc_context.ContextType == "Plan": data = tool.Geometry.generate_2d_box_mesh(obj, axis="Z") elif ifc_context.ContextIdentifier == "Profile": @@ -176,9 +184,7 @@ class AddRepresentation(bpy.types.Operator, Operator): data = tool.Geometry.generate_3d_box_mesh(obj) tool.Geometry.change_object_data(obj, data, is_global=True) elif ( - self.representation_conversion_method == "OBJECT" - and props.representation_from_object - and props.representation_from_object.data + conversion_method == "OBJECT" and props.representation_from_object and props.representation_from_object.data ): data = tool.Geometry.duplicate_object_data(props.representation_from_object) tool.Geometry.change_object_data(obj, data, is_global=True)