diff --git a/src/bonsai/bonsai/bim/module/geometry/ui.py b/src/bonsai/bonsai/bim/module/geometry/ui.py index b1fe7bea61..415b21f79b 100644 --- a/src/bonsai/bonsai/bim/module/geometry/ui.py +++ b/src/bonsai/bonsai/bim/module/geometry/ui.py @@ -225,7 +225,7 @@ class BIM_PT_representation_items(Panel): RepresentationItemsData.load() props = tool.Geometry.get_geometry_props() - obj = props.representation_obj or tool.Blender.get_active_object() + obj = tool.Geometry.get_active_or_representation_obj() assert obj props = tool.Geometry.get_object_geometry_props(obj) diff --git a/src/bonsai/bonsai/bim/module/void/data.py b/src/bonsai/bonsai/bim/module/void/data.py index 133d3e15f5..43a6f27d12 100644 --- a/src/bonsai/bonsai/bim/module/void/data.py +++ b/src/bonsai/bonsai/bim/module/void/data.py @@ -118,23 +118,24 @@ class BooleansData: @classmethod def load(cls): + # Only called when some object is active. cls.data = {} cls.data["total_booleans"] = cls.booleans() cls.data["manual_booleans"] = cls.manual_booleans() cls.is_loaded = True @classmethod - def booleans(cls): - props = tool.Geometry.get_geometry_props() - obj = props.representation_obj or bpy.context.active_object + def booleans(cls) -> list[ifcopenshell.entity_instance]: + obj = tool.Geometry.get_active_or_representation_obj() + assert obj if not (representation := tool.Geometry.get_active_representation(obj)): return [] return tool.Model.get_booleans(representation=representation) @classmethod - def manual_booleans(cls): - props = tool.Geometry.get_geometry_props() - obj = props.representation_obj or bpy.context.active_object + def manual_booleans(cls) -> list[ifcopenshell.entity_instance]: + obj = tool.Geometry.get_active_or_representation_obj() + assert obj if not (representation := tool.Geometry.get_active_representation(obj)): return [] return tool.Model.get_manual_booleans(tool.Ifc.get_entity(obj), representation=representation)