From e9c7b21bfc9c94a8d8b9a469afbf32d7df44d42f Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 7 Jun 2021 10:31:27 +1000 Subject: [PATCH] Fix bug where all meshes were cast to a solid by accident. Thanks s-leger! --- src/blenderbim/blenderbim/bim/module/model/slab.py | 4 ++++ src/blenderbim/blenderbim/bim/module/model/wall.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/module/model/slab.py b/src/blenderbim/blenderbim/bim/module/model/slab.py index ba7ceb2997..4cd6dbdc45 100644 --- a/src/blenderbim/blenderbim/bim/module/model/slab.py +++ b/src/blenderbim/blenderbim/bim/module/model/slab.py @@ -54,6 +54,10 @@ def mode_callback(obj, data): def ensure_solid(usecase_path, ifc_file, settings): + product = ifc_file.by_id(settings["blender_object"].BIMObjectProperties.ifc_definition_id) + parametric = ifcopenshell.util.element.get_psets(product).get("EPset_Parametric") + if not parametric or parametric["Engine"] != "BlenderBIM.DumbSlab": + return # TODO: check if voids are present settings["ifc_representation_class"] = "IfcExtrudedAreaSolid/IfcArbitraryClosedProfileDef" diff --git a/src/blenderbim/blenderbim/bim/module/model/wall.py b/src/blenderbim/blenderbim/bim/module/model/wall.py index 0a1963185a..31bccafb25 100644 --- a/src/blenderbim/blenderbim/bim/module/model/wall.py +++ b/src/blenderbim/blenderbim/bim/module/model/wall.py @@ -712,6 +712,10 @@ class DumbWallGenerator: def ensure_solid(usecase_path, ifc_file, settings): + product = ifc_file.by_id(settings["blender_object"].BIMObjectProperties.ifc_definition_id) + parametric = ifcopenshell.util.element.get_psets(product).get("EPset_Parametric") + if not parametric or parametric["Engine"] != "BlenderBIM.DumbWall": + return settings["ifc_representation_class"] = "IfcExtrudedAreaSolid/IfcArbitraryClosedProfileDef"