From b7718efd5c39c6590c2fcd0eda9456c38d524261 Mon Sep 17 00:00:00 2001 From: tetektoza Date: Tue, 6 May 2025 01:41:28 +0200 Subject: [PATCH] BIM: Exclude viewtree from cached items and add a sanity check --- src/Mod/BIM/bimcommands/BimViews.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/Mod/BIM/bimcommands/BimViews.py b/src/Mod/BIM/bimcommands/BimViews.py index 07d28b2259..45a8877c2e 100644 --- a/src/Mod/BIM/bimcommands/BimViews.py +++ b/src/Mod/BIM/bimcommands/BimViews.py @@ -315,9 +315,10 @@ class BIM_Views: # We reuse the variable later on in "Isolate", to not traverse the tree once # again - self.allItemsInTree = getAllItemsInTree(vm.tree) + getAllItemsInTree(vm.viewtree) + self.allItemsInTree = getAllItemsInTree(vm.tree) + allItemsInTrees = self.allItemsInTree + getAllItemsInTree(vm.viewtree) - for item in self.allItemsInTree: + for item in allItemsInTrees: if item.text(0) in objNameSelected: item.setSelected(True) if objActive and item.toolTip(0) == objActive.Name: @@ -469,7 +470,8 @@ class BIM_Views: for item in self.allItemsInTree: toolTip = item.toolTip(0) obj = FreeCAD.ActiveDocument.getObject(toolTip) - obj.ViewObject.Visibility = True + if obj: + obj.ViewObject.Visibility = True vm = findWidget() if vm: @@ -477,10 +479,11 @@ class BIM_Views: for item in self.allItemsInTree: toolTip = item.toolTip(0) obj = FreeCAD.ActiveDocument.getObject(toolTip) - if item not in selectedItems: - obj.ViewObject.Visibility = False - else: - obj.ViewObject.Visibility = True + if obj: + if item not in selectedItems: + obj.ViewObject.Visibility = False + else: + obj.ViewObject.Visibility = True FreeCAD.ActiveDocument.recompute()