From ceae7d4fdb7f33ac90ef16ca0283617e9cda16be Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Thu, 5 Oct 2023 17:31:12 +0500 Subject: [PATCH] DumbWallJoiner to work with IfcBooleanResult correctly #3831 It wasn't detecting extrusion as part of IfcBooleanResult and was using default wall data as fallback. Occured after 0044ef5 Solves #3831 Related to #3709 --- src/blenderbim/blenderbim/bim/module/model/wall.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/wall.py b/src/blenderbim/blenderbim/bim/module/model/wall.py index 54b81214a0..f4cd1e346f 100644 --- a/src/blenderbim/blenderbim/bim/module/model/wall.py +++ b/src/blenderbim/blenderbim/bim/module/model/wall.py @@ -1262,8 +1262,13 @@ class DumbWallJoiner: results["is_sloped"] = True results["height"] = (item.Depth * self.unit_scale) / (1 / cos(results["x_angle"])) break - elif item.is_a("IfcBooleanClippingResult"): + elif item.is_a("IfcBooleanClippingResult"): # should be before IfcBooleanResult check item = item.FirstOperand + elif item.is_a("IfcBooleanResult"): + if item.FirstOperand.is_a("IfcExtrudedAreaSolid") or item.FirstOperand.is_a("IfcBooleanResult"): + item = item.FirstOperand + else: + item = item.SecondOperand else: break return results