From 49b9f9955709da5d2ec791674bc9455e7d106c6b Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Thu, 4 Sep 2025 19:03:13 +0500 Subject: [PATCH] ifcopenshell.sqlite - add `mvd_str` --- src/bonsai/bonsai/bim/module/project/ui.py | 10 +++++++--- src/ifcopenshell-python/ifcopenshell/sql.py | 4 ++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/project/ui.py b/src/bonsai/bonsai/bim/module/project/ui.py index 0c305302f2..1177f1ff8b 100644 --- a/src/bonsai/bonsai/bim/module/project/ui.py +++ b/src/bonsai/bonsai/bim/module/project/ui.py @@ -19,6 +19,7 @@ from __future__ import annotations import bpy import os +import ifcopenshell import bonsai.bim import bonsai.tool as tool from bonsai.bim.helper import prop_with_search, draw_attributes @@ -259,10 +260,10 @@ class BIM_PT_project(Panel): def draw_editable_file_info(self, context): pprops = self.props - if tool.Ifc.get(): + if ifc_file := tool.Ifc.get(): row = self.layout.row(align=True) row.label(text="IFC Schema", icon="FILE_CACHE") - row.label(text=tool.Ifc.get().schema) + row.label(text=ifc_file.schema) if pprops.is_editing: row = self.layout.row(align=True) @@ -283,7 +284,10 @@ class BIM_PT_project(Panel): else: row = self.layout.row(align=True) row.label(text="IFC MVD", icon="FILE_HIDDEN") - mvd = "".join(tool.Ifc.get().wrapped_data.header.file_description.description) + if isinstance(ifc_file, ifcopenshell.sqlite): + mvd = ifc_file.mvd_str + else: + mvd = "".join(ifc_file.wrapped_data.header.file_description.description) if "[" in mvd: mvd = mvd.split("[")[1][0:-1] row.label(text=mvd) diff --git a/src/ifcopenshell-python/ifcopenshell/sql.py b/src/ifcopenshell-python/ifcopenshell/sql.py index 44044fe687..4d46377858 100644 --- a/src/ifcopenshell-python/ifcopenshell/sql.py +++ b/src/ifcopenshell-python/ifcopenshell/sql.py @@ -37,6 +37,9 @@ except ImportError as e: class sqlite(file): + mvd_str: str + """As in `header.file_description.description`.""" + def __init__(self, filepath: str): """ Open existing sqlite IFC database. @@ -79,6 +82,7 @@ class sqlite(file): assert False, "SQLite schema not supported." self._schema = row[1] + self.mvd_str = row[2] self.ifc_schema = ifcopenshell.schema_by_name(self.schema) self.cursor.execute("SELECT ifc_id, ifc_class FROM id_map")