From d985fe92401e889e38db96fb702dfb2e0c42acb0 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 21 Aug 2024 21:09:29 +1000 Subject: [PATCH] Fix #5205. Regression in creating walls / slabs / profiles / products with potentially no default container. --- src/bonsai/bonsai/bim/module/model/product.py | 2 ++ src/bonsai/bonsai/bim/module/model/profile.py | 3 +++ src/bonsai/bonsai/bim/module/model/slab.py | 3 +++ src/bonsai/bonsai/bim/module/model/wall.py | 5 +++++ 4 files changed, 13 insertions(+) diff --git a/src/bonsai/bonsai/bim/module/model/product.py b/src/bonsai/bonsai/bim/module/model/product.py index 83203248f5..49f0bde998 100644 --- a/src/bonsai/bonsai/bim/module/model/product.py +++ b/src/bonsai/bonsai/bim/module/model/product.py @@ -144,8 +144,10 @@ class AddConstrTypeInstance(bpy.types.Operator): if self.from_invoke and str(self.relating_type_id) in AuthoringData.data["relating_type_id"]: props.relating_type_id = str(self.relating_type_id) + self.container = None self.container_obj = None if container := tool.Root.get_default_container(): + self.container = container self.container_obj = tool.Ifc.get_object(container) relating_type = tool.Ifc.get().by_id(int(relating_type_id)) diff --git a/src/bonsai/bonsai/bim/module/model/profile.py b/src/bonsai/bonsai/bim/module/model/profile.py index a061c8c881..480db36490 100644 --- a/src/bonsai/bonsai/bim/module/model/profile.py +++ b/src/bonsai/bonsai/bim/module/model/profile.py @@ -56,10 +56,13 @@ class DumbProfileGenerator: self.body_context = ifcopenshell.util.representation.get_context(tool.Ifc.get(), "Model", "Body", "MODEL_VIEW") self.axis_context = ifcopenshell.util.representation.get_context(tool.Ifc.get(), "Model", "Axis", "GRAPH_VIEW") props = bpy.context.scene.BIMModelProperties + self.container = None + self.container_obj = None if container := tool.Root.get_default_container(): self.container = container self.container_obj = tool.Ifc.get_object(container) + self.depth = props.extrusion_depth self.rotation = 0 self.location = Vector((0, 0, 0)) diff --git a/src/bonsai/bonsai/bim/module/model/slab.py b/src/bonsai/bonsai/bim/module/model/slab.py index d160c589c1..63f596f1d3 100644 --- a/src/bonsai/bonsai/bim/module/model/slab.py +++ b/src/bonsai/bonsai/bim/module/model/slab.py @@ -135,10 +135,13 @@ class DumbSlabGenerator: ) props = bpy.context.scene.BIMModelProperties + self.container = None + self.container_obj = None if container := tool.Root.get_default_container(): self.container = container self.container_obj = tool.Ifc.get_object(container) + self.depth = sum(thicknesses) * unit_scale self.width = 3 self.length = 3 diff --git a/src/bonsai/bonsai/bim/module/model/wall.py b/src/bonsai/bonsai/bim/module/model/wall.py index 53b8327d47..87c6283ad6 100644 --- a/src/bonsai/bonsai/bim/module/model/wall.py +++ b/src/bonsai/bonsai/bim/module/model/wall.py @@ -331,8 +331,10 @@ class DrawPolylineWall(bpy.types.Operator): if not relating_type_id: return {"FINISHED"} + self.container = None self.container_obj = None if container := tool.Root.get_default_container(): + self.container = container self.container_obj = tool.Ifc.get_object(container) relating_type = tool.Ifc.get().by_id(int(relating_type_id)) @@ -615,10 +617,13 @@ class DumbWallGenerator: self.axis_context = ifcopenshell.util.representation.get_context(tool.Ifc.get(), "Plan", "Axis", "GRAPH_VIEW") props = bpy.context.scene.BIMModelProperties + self.container = None + self.container_obj = None if container := tool.Root.get_default_container(): self.container = container self.container_obj = tool.Ifc.get_object(container) + self.width = self.layers["thickness"] self.height = props.extrusion_depth self.length = props.length