From 6d7a6eeda740069efd9d9d47e9bac049acfd5ed7 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Fri, 2 Feb 2024 14:53:10 +0500 Subject: [PATCH] fixed bug removing representation item if you'd click on "remove item" button for some item it wouldn't remove the corresponding item but would go for removing active item instead --- src/blenderbim/blenderbim/bim/module/geometry/operator.py | 5 +++-- src/blenderbim/blenderbim/bim/module/geometry/ui.py | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py index 5aeeb41d8e..b1a32c11d2 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py @@ -1614,6 +1614,8 @@ class RemoveRepresentationItem(bpy.types.Operator, Operator): bl_label = "Remove Representation Item" bl_options = {"REGISTER", "UNDO"} + representation_item_id: bpy.props.IntProperty() + @classmethod def poll(cls, context): if context.active_object is None or len(context.active_object.BIMGeometryProperties.items) <= 1: @@ -1628,8 +1630,7 @@ class RemoveRepresentationItem(bpy.types.Operator, Operator): props = obj.BIMGeometryProperties ifc_file = tool.Ifc.get() - representation_item_id = props.items[props.active_item_index].ifc_definition_id - representation_item = ifc_file.by_id(representation_item_id) + representation_item = ifc_file.by_id(self.representation_item_id) tool.Geometry.remove_representation_item(representation_item) tool.Geometry.reload_representation(obj) diff --git a/src/blenderbim/blenderbim/bim/module/geometry/ui.py b/src/blenderbim/blenderbim/bim/module/geometry/ui.py index 8de28fe37b..8063787912 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/ui.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/ui.py @@ -510,4 +510,5 @@ class BIM_UL_representation_items(UIList): row.label(text=item.name, icon=icon) if item.layer: row.label(text="", icon="STICKY_UVS_LOC") - row.operator("bim.remove_representation_item", icon="X", text="") + op = row.operator("bim.remove_representation_item", icon="X", text="") + op.representation_item_id = item.ifc_definition_id