From 733e80737ae9af0d84077884c2ff1823b4be917c Mon Sep 17 00:00:00 2001 From: Gorgious Date: Sat, 23 Jul 2022 15:03:26 +0200 Subject: [PATCH] Fix error messages when using the search operator on blank file (F3) --- src/blenderbim/blenderbim/bim/module/bcf/operator.py | 2 ++ src/blenderbim/blenderbim/bim/module/bcf/prop.py | 2 +- src/blenderbim/blenderbim/bim/module/geometry/operator.py | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/bcf/operator.py b/src/blenderbim/blenderbim/bim/module/bcf/operator.py index 3ff328fe78..0cfacf9fa1 100644 --- a/src/blenderbim/blenderbim/bim/module/bcf/operator.py +++ b/src/blenderbim/blenderbim/bim/module/bcf/operator.py @@ -768,6 +768,8 @@ class ActivateBcfViewpoint(bpy.types.Operator): bcfxml = bcfstore.BcfStore.get_bcfxml() props = context.scene.BCFProperties blender_topic = props.active_topic + if blender_topic is None: + return False topic = bcfxml.topics[blender_topic.name] return topic.viewpoints diff --git a/src/blenderbim/blenderbim/bim/module/bcf/prop.py b/src/blenderbim/blenderbim/bim/module/bcf/prop.py index e24f5adba0..066982c67d 100644 --- a/src/blenderbim/blenderbim/bim/module/bcf/prop.py +++ b/src/blenderbim/blenderbim/bim/module/bcf/prop.py @@ -95,7 +95,7 @@ def getBcfViewpoints(self, context, force_update=False): props = context.scene.BCFProperties bcfxml = bcfstore.BcfStore.get_bcfxml() topic = props.active_topic - viewpoints = bcfxml.get_viewpoints(topic.name) + viewpoints = bcfxml.get_viewpoints(topic.name) if topic else {} bcfviewpoints_enum.extend([(v, f"Viewpoint {i+1}", "") for i, v in enumerate(viewpoints.keys())]) return bcfviewpoints_enum diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py index 81b78dd4a2..99908cc927 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py @@ -132,7 +132,7 @@ class UpdateRepresentation(bpy.types.Operator): @classmethod def poll(cls, context): - return context.active_object.mode == "OBJECT" + return context.active_object and context.active_object.mode == "OBJECT" def execute(self, context): return IfcStore.execute_ifc_operator(self, context) @@ -240,7 +240,7 @@ class UpdateParametricRepresentation(bpy.types.Operator): @classmethod def poll(cls, context): - return context.active_object.mode == "OBJECT" + return context.active_object and context.active_object.mode == "OBJECT" def execute(self, context): self.file = IfcStore.get_file()