From d419e50ecec755cb9ddf577d31146930d1f2c584 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Tue, 2 Sep 2025 17:11:38 +0500 Subject: [PATCH] active_bsdd_property - make implied type more explicit --- src/bonsai/bonsai/bim/ui.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/bonsai/bonsai/bim/ui.py b/src/bonsai/bonsai/bim/ui.py index 0c37fd831f..ae7da8ad8d 100644 --- a/src/bonsai/bonsai/bim/ui.py +++ b/src/bonsai/bonsai/bim/ui.py @@ -36,7 +36,7 @@ import bonsai.bim import bonsai.tool as tool from ifcopenshell.util.file import IfcHeaderExtractor from bonsai.bim.prop import Attribute -from bonsai.bim.module.bsdd.prop import BIMBSDDProperties +from bonsai.bim.module.bsdd.prop import BIMBSDDProperties, BSDDProperty from bonsai.bim.module.pset.prop import IfcProperty from typing import Optional, TYPE_CHECKING, Literal from natsort import natsorted @@ -1458,10 +1458,13 @@ def draw_custom_context_menu(self: bpy.types.Menu, context: bpy.types.Context) - if attr_name: op = layout.operator("bim.copy_text_to_clipboard", text="Copy Attribute Name", icon="COPYDOWN") op.text = attr_name - elif isinstance(prop_struct, BIMBSDDProperties) and hasattr(context, "active_bsdd_property"): + elif isinstance(prop_struct, BIMBSDDProperties) and ( + active_bsdd_property := getattr(context, "active_bsdd_property", None) + ): # Context Menu for bSDD Properties + assert isinstance(active_bsdd_property, BSDDProperty) op_description = layout.operator("bim.show_bsdd_description", text="bSDD Description", icon="INFO") - op_description.url = context.active_bsdd_property.uri + op_description.url = active_bsdd_property.uri else: # Basically context menu for any Blender property will end up here, # and will check 3 types of docs.