diff --git a/src/bonsai/bonsai/bim/module/group/operator.py b/src/bonsai/bonsai/bim/module/group/operator.py index a146cb24ea..3c8b120349 100644 --- a/src/bonsai/bonsai/bim/module/group/operator.py +++ b/src/bonsai/bonsai/bim/module/group/operator.py @@ -118,6 +118,7 @@ class RemoveGroup(bpy.types.Operator, tool.Ifc.Operator): self.file = tool.Ifc.get() ifcopenshell.api.group.remove_group(self.file, group=self.file.by_id(self.group)) tool.Group.import_groups("IfcGroup") + tool.Group.update_uilist_index("IfcGroup") return {"FINISHED"} diff --git a/src/bonsai/bonsai/bim/module/system/operator.py b/src/bonsai/bonsai/bim/module/system/operator.py index 484efb2b6c..3d1b88cb3a 100644 --- a/src/bonsai/bonsai/bim/module/system/operator.py +++ b/src/bonsai/bonsai/bim/module/system/operator.py @@ -87,7 +87,7 @@ class RemoveSystem(bpy.types.Operator, tool.Ifc.Operator): system: bpy.props.IntProperty() def _execute(self, context): - core.remove_system(tool.Ifc, tool.System, system=tool.Ifc.get().by_id(self.system)) + core.remove_system(tool.Ifc, tool.Group, tool.System, system=tool.Ifc.get().by_id(self.system)) class EnableEditingSystem(bpy.types.Operator): diff --git a/src/bonsai/bonsai/core/system.py b/src/bonsai/bonsai/core/system.py index ee35118551..d7d0bbebe0 100644 --- a/src/bonsai/bonsai/core/system.py +++ b/src/bonsai/bonsai/core/system.py @@ -55,9 +55,15 @@ def edit_system(ifc: type[tool.Ifc], system_tool: type[tool.System], system: ifc system_tool.import_systems() -def remove_system(ifc: type[tool.Ifc], system_tool: type[tool.System], system: ifcopenshell.entity_instance) -> None: +def remove_system( + ifc: type[tool.Ifc], + group: type[tool.Group], + system_tool: type[tool.System], + system: ifcopenshell.entity_instance, +) -> None: ifc.run("system.remove_system", system=system) system_tool.import_systems() + group.update_uilist_index("IfcSystem") def enable_editing_system(system_tool: type[tool.System], system: ifcopenshell.entity_instance) -> None: diff --git a/src/bonsai/bonsai/tool/group.py b/src/bonsai/bonsai/tool/group.py index 46b3a5fb57..d800904bf8 100644 --- a/src/bonsai/bonsai/tool/group.py +++ b/src/bonsai/bonsai/tool/group.py @@ -137,3 +137,8 @@ class Group(bonsai.core.tool.System): expanded_groups.remove(ifc_definition_id) props.expanded_groups_json = json.dumps(list(expanded_groups)) cls.import_groups(group_type) + + @classmethod + def update_uilist_index(cls, group_type: GroupType) -> None: + props, blender_groups = cls.get_groups_data(group_type) + props.active_group_index = tool.Blender.get_valid_uilist_index(props.active_group_index, blender_groups)