@@ -33,23 +33,7 @@ def mode_callback(obj, data):
3333 parametric = ifcopenshell .util .element .get_psets (product ).get ("EPset_Parametric" )
3434 if not parametric or parametric ["Engine" ] != "BlenderBIM.DumbWall" :
3535 return
36- if product .HasOpenings :
37- if [m for m in obj .modifiers if m .type == "BOOLEAN" ]:
38- continue
39- representation = ifcopenshell .util .representation .get_representation (
40- product , "Model" , "Body" , "MODEL_VIEW"
41- )
42- if not representation :
43- continue
44- bpy .ops .object .mode_set (mode = 'OBJECT' )
45- bpy .ops .bim .switch_representation (
46- obj = obj .name ,
47- should_switch_all_meshes = True ,
48- should_reload = True ,
49- ifc_definition_id = representation .id (),
50- disable_opening_subtractions = True ,
51- )
52- bpy .ops .object .mode_set (mode = 'EDIT' )
36+ bpy .ops .bim .dynamically_void_product (obj = obj .name )
5337 IfcStore .edited_objs .add (obj )
5438 bm = bmesh .from_edit_mesh (obj .data )
5539 bmesh .ops .dissolve_limit (bm , angle_limit = pi / 180 * 1 , verts = bm .verts , edges = bm .edges )
@@ -103,6 +87,8 @@ class JoinWall(bpy.types.Operator):
10387
10488 def execute (self , context ):
10589 selected_objs = context .selected_objects
90+ for obj in selected_objs :
91+ bpy .ops .bim .dynamically_void_product (obj = obj .name )
10692 if len (selected_objs ) == 0 :
10793 return {"FINISHED" }
10894 if not self .join_type :
0 commit comments