From d93ffb1fe677de8092025c01e35834b65d95451c Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 27 Sep 2024 21:59:42 +1000 Subject: [PATCH] See #5491. Clean up orphaned meshes when editing. --- src/bonsai/bonsai/bim/module/geometry/prop.py | 3 +++ src/bonsai/bonsai/tool/model.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/bonsai/bonsai/bim/module/geometry/prop.py b/src/bonsai/bonsai/bim/module/geometry/prop.py index 53a7f84d87..f32338aa78 100644 --- a/src/bonsai/bonsai/bim/module/geometry/prop.py +++ b/src/bonsai/bonsai/bim/module/geometry/prop.py @@ -63,7 +63,10 @@ def update_mode(self, context): def update_representation_obj(self, context): for item_obj in self.item_objs: if item_obj.obj: + data = item_obj.obj.data bpy.data.objects.remove(item_obj.obj) + if data and not data.users: + bpy.data.meshes.remove(data) self.item_objs.clear() diff --git a/src/bonsai/bonsai/tool/model.py b/src/bonsai/bonsai/tool/model.py index 184005e525..8cc8b53633 100644 --- a/src/bonsai/bonsai/tool/model.py +++ b/src/bonsai/bonsai/tool/model.py @@ -281,7 +281,10 @@ class Model(bonsai.core.tool.Model): if obj is None: obj = bpy.data.objects.new("Profile", mesh) else: + old_data = obj.data obj.data = mesh + if old_data and not old_data.users: + bpy.data.meshes.remove(old_data) for arc in cls.arcs: group = obj.vertex_groups.new(name="IFCARCINDEX")