From d88c4fd37708e1d755cfa3c281ac32c0f205c2b1 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jul 2021 18:43:20 +1000 Subject: [PATCH] Fix #1597. Prevent mixing objects on project creation. --- .../blenderbim/bim/module/project/operator.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/project/operator.py b/src/blenderbim/blenderbim/bim/module/project/operator.py index 9cf97be604..24ced30679 100644 --- a/src/blenderbim/blenderbim/bim/module/project/operator.py +++ b/src/blenderbim/blenderbim/bim/module/project/operator.py @@ -36,10 +36,10 @@ class CreateProject(bpy.types.Operator): bpy.ops.bim.add_person() bpy.ops.bim.add_organisation() - project = bpy.data.objects.new("My Project", None) - site = bpy.data.objects.new("My Site", None) - building = bpy.data.objects.new("My Building", None) - building_storey = bpy.data.objects.new("Ground Floor", None) + project = bpy.data.objects.new(self.get_name("IfcProject", "My Project"), None) + site = bpy.data.objects.new(self.get_name("IfcSite", "My Site"), None) + building = bpy.data.objects.new(self.get_name("IfcBuilding", "My Building"), None) + building_storey = bpy.data.objects.new(self.get_name("IfcBuildingStorey", "My Storey"), None) bpy.ops.bim.assign_class(obj=project.name, ifc_class="IfcProject") bpy.ops.bim.assign_unit() @@ -62,6 +62,14 @@ class CreateProject(bpy.types.Operator): return {"FINISHED"} + def get_name(self, ifc_class, name): + if not bpy.data.objects.get(f"{ifc_class}/{name}"): + return name + i = 2 + while bpy.data.objects.get(f"{ifc_class}/{name} {i}"): + i += 1 + return f"{name} {i}" + def rollback(self, data): IfcStore.file = None