From 3d82eb954fafb58fd4c20803a89c073477c357fa Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 18 Aug 2025 19:46:24 +0500 Subject: [PATCH] Fix missing project custom psets reload when changing IFC filepath #7037 --- src/bonsai/bonsai/bim/ifc.py | 4 ++++ src/bonsai/bonsai/bim/module/project/operator.py | 1 - src/bonsai/bonsai/bim/schema.py | 1 + src/bonsai/bonsai/tool/ifcgit.py | 2 +- src/bonsai/bonsai/tool/project.py | 2 +- 5 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/bonsai/bonsai/bim/ifc.py b/src/bonsai/bonsai/bim/ifc.py index afacc59561..3a12de13e1 100644 --- a/src/bonsai/bonsai/bim/ifc.py +++ b/src/bonsai/bonsai/bim/ifc.py @@ -64,7 +64,11 @@ class TransactionStep(TypedDict): class IfcStore: path: str = "" + """Should be set only using ``tool.Ifc.set_path``.""" + file: Optional[ifcopenshell.file] = None + """Should be set only using ``tool.Ifc.set``.""" + schema: Optional[ifcopenshell.ifcopenshell_wrapper.schema_definition] = None cache: Optional[ifcopenshell.ifcopenshell_wrapper.HdfSerializer] = None cache_path: Optional[str] = None diff --git a/src/bonsai/bonsai/bim/module/project/operator.py b/src/bonsai/bonsai/bim/module/project/operator.py index 259f65fc0a..ec068c9040 100644 --- a/src/bonsai/bonsai/bim/module/project/operator.py +++ b/src/bonsai/bonsai/bim/module/project/operator.py @@ -1105,7 +1105,6 @@ class LoadProjectElements(bpy.types.Operator): props = tool.Project.get_project_props() props.is_loading = False - tool.Project.load_pset_templates() tool.Project.load_default_thumbnails() tool.Project.set_default_context() tool.Project.set_default_modeling_dimensions() diff --git a/src/bonsai/bonsai/bim/schema.py b/src/bonsai/bonsai/bim/schema.py index ab10dde389..6bc97f6ae7 100644 --- a/src/bonsai/bonsai/bim/schema.py +++ b/src/bonsai/bonsai/bim/schema.py @@ -59,6 +59,7 @@ class IfcSchema: return for path in tool.Blender.get_data_dir_paths("pset", "*.ifc"): self.psetqto.templates.append(ifcopenshell.open(path)) + tool.Project.load_project_pset_templates() # TODO: do we really need to load it on module import? diff --git a/src/bonsai/bonsai/tool/ifcgit.py b/src/bonsai/bonsai/tool/ifcgit.py index f4e7607ded..7dfb2431d0 100644 --- a/src/bonsai/bonsai/tool/ifcgit.py +++ b/src/bonsai/bonsai/tool/ifcgit.py @@ -284,7 +284,7 @@ class IfcGit: settings.should_setup_viewport_camera = False ifc_importer = import_ifc.IfcImporter(settings) ifc_importer.execute() - tool.Project.load_pset_templates() + tool.Project.load_project_pset_templates() tool.Project.load_default_thumbnails() tool.Project.set_default_context() tool.Project.set_default_modeling_dimensions() diff --git a/src/bonsai/bonsai/tool/project.py b/src/bonsai/bonsai/tool/project.py index 1545c2db87..a83f4d2fdc 100644 --- a/src/bonsai/bonsai/tool/project.py +++ b/src/bonsai/bonsai/tool/project.py @@ -73,7 +73,7 @@ class Project(bonsai.core.tool.Project): bpy.ops.bim.load_type_thumbnails() @classmethod - def load_pset_templates(cls) -> None: + def load_project_pset_templates(cls) -> None: props = tool.Blender.get_addon_preferences() pset_dir = tool.Ifc.resolve_uri(props.pset_dir) if os.path.isdir(pset_dir):