From 98ba75ef527c535606e2d4427e307f6826f36d89 Mon Sep 17 00:00:00 2001 From: Massimo Fabbro Date: Sat, 3 Jun 2023 23:23:41 +0200 Subject: [PATCH] New toggle space visibility button --- .../blenderbim/bim/module/model/__init__.py | 1 + .../blenderbim/bim/module/model/space.py | 32 +++++++++++++++++++ .../blenderbim/bim/module/model/ui.py | 2 ++ 3 files changed, 35 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/module/model/__init__.py b/src/blenderbim/blenderbim/bim/module/model/__init__.py index e3237bdecc..83b8ab5273 100644 --- a/src/blenderbim/blenderbim/bim/module/model/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/model/__init__.py @@ -97,6 +97,7 @@ classes = ( slab.SetArcIndex, space.GenerateSpace, space.GenerateSpacesFromWalls, + space.ToggleSpaceVisibility, prop.BIMModelProperties, prop.BIMArrayProperties, prop.BIMStairProperties, diff --git a/src/blenderbim/blenderbim/bim/module/model/space.py b/src/blenderbim/blenderbim/bim/module/model/space.py index d37d8a09db..1a316feaef 100644 --- a/src/blenderbim/blenderbim/bim/module/model/space.py +++ b/src/blenderbim/blenderbim/bim/module/model/space.py @@ -341,3 +341,35 @@ class GenerateSpacesFromWalls(bpy.types.Operator, tool.Ifc.Operator): aux_vector = aux_vector - diff vert.co = inverted @ aux_vector obj.location = newLoc + +class ToggleSpaceVisibility(bpy.types.Operator, tool.Ifc.Operator): + bl_idname = "bim.toggle_space_visibility" + bl_label = "Toggle Space Visibility" + bl_options = {"REGISTER"} + bl_description = "Change the space visibility" + + def execute(cls, context): + model = tool.Ifc.get() + + spaces = model.by_type('IfcSpace') + + if not spaces: + print(spaces) + return {"FINISHED"} + + first_obj = tool.Ifc.get_object(spaces[0]) + + if bpy.data.objects[first_obj.name].display_type == 'TEXTURED': + for space in spaces: + obj = tool.Ifc.get_object(space) + bpy.data.objects[obj.name].show_wire = True + bpy.data.objects[obj.name].display_type = 'WIRE' + return {"FINISHED"} + + elif bpy.data.objects[first_obj.name].display_type == 'WIRE': + for space in spaces: + obj = tool.Ifc.get_object(space) + bpy.data.objects[obj.name].show_wire = False + bpy.data.objects[obj.name].display_type = 'TEXTURED' + return {"FINISHED"} + diff --git a/src/blenderbim/blenderbim/bim/module/model/ui.py b/src/blenderbim/blenderbim/bim/module/model/ui.py index 9fb60cda61..e2bc736fb9 100644 --- a/src/blenderbim/blenderbim/bim/module/model/ui.py +++ b/src/blenderbim/blenderbim/bim/module/model/ui.py @@ -135,6 +135,8 @@ class BIM_PT_authoring(Panel): row.operator("bim.generate_space") row = self.layout.row(align=True) row.operator("bim.generate_spaces_from_walls") + row = self.layout.row(align=True) + row.operator("bim.toggle_space_visibility") class BIM_PT_GridsSpatialManager(Panel):