From 691dfb45f0e3646e69ef6568307a94cf14099070 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 28 Aug 2024 18:42:05 +0500 Subject: [PATCH] bim.activate_model to unhide all objects #5232 Restore old behaviour (new behaviour was introduced by accident in 786b796) where it would unhide all objects instead of keeping only objects in the current drawing. --- src/bonsai/bonsai/bim/module/drawing/operator.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index e606b1e1cb..dd3f94f567 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -1471,9 +1471,17 @@ class ActivateModel(bpy.types.Operator): CutDecorator.uninstall() - # save current visibility statuses + # Preserve current visibility statuses for: + # - non-ifc objects + # - type product + # - annotations (so we won't unhide other drawings) + ifc_file = tool.Ifc.get() visibility_status: dict[bpy.types.Object, bool] = {} + drawing_groups = [g for g in ifc_file.by_type("IfcGroup", include_subtypes=False)] for obj in bpy.data.objects: + element = tool.Ifc.get_entity(obj) + if element and not element.is_a("IfcAnnotation") and not element.is_a("IfcTypeProduct"): + continue visibility_status[obj] = obj.hide_get() if not bpy.app.background: