From ea3d489c24ad9e66e51e0005cd7d3e69e65b15a1 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 14 Sep 2023 12:10:25 +1000 Subject: [PATCH] Minor fixes to IfcFM --- src/ifcfm/ifcfm/__init__.py | 5 +++++ src/ifcfm/ifcfm/basic.py | 2 +- src/ifcfm/ifcfm/cobie.py | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/ifcfm/ifcfm/__init__.py b/src/ifcfm/ifcfm/__init__.py index e7a1960bc4..abe8f28e3f 100644 --- a/src/ifcfm/ifcfm/__init__.py +++ b/src/ifcfm/ifcfm/__init__.py @@ -50,6 +50,9 @@ class Parser: module = importlib.import_module(f"ifcfm.{preset}") self.get_category_elements = getattr(module, "get_category_elements") self.get_element_data = getattr(module, "get_element_data") + elif isinstance(preset, dict): + self.get_category_elements = preset["get_category_elements"] + self.get_element_data = preset["get_element_data"] else: self.get_category_elements = getattr(preset, "get_category_elements") self.get_element_data = getattr(preset, "get_element_data") @@ -91,6 +94,8 @@ class Writer: if isinstance(self.parser.preset, str): module = importlib.import_module(f"ifcfm.{self.parser.preset}") self.config = getattr(module, "config") + elif isinstance(self.parser.preset, dict): + self.config = self.parser.preset["config"] else: self.config = getattr(self.parser.preset, "config") diff --git a/src/ifcfm/ifcfm/basic.py b/src/ifcfm/ifcfm/basic.py index 167ef4c5e2..222295be81 100644 --- a/src/ifcfm/ifcfm/basic.py +++ b/src/ifcfm/ifcfm/basic.py @@ -134,7 +134,7 @@ def get_space_data(ifc_file, element): def get_zone_data(ifc_file, element): zone, space = element return { - "key": (element.Name or "Unnamed") + (space.Name or "Unnamed"), + "key": (zone.Name or "Unnamed") + (space.Name or "Unnamed"), "Name": zone.Name, "SpaceName": space.Name, "AuthorOrganizationName": get_owner_name(zone), diff --git a/src/ifcfm/ifcfm/cobie.py b/src/ifcfm/ifcfm/cobie.py index 3b4b5d47df..9eb6eb0d7c 100644 --- a/src/ifcfm/ifcfm/cobie.py +++ b/src/ifcfm/ifcfm/cobie.py @@ -89,7 +89,7 @@ def get_types(ifc_file): def get_components(ifc_file): elements = set() - for element_type in ifcopenshell.util.fm.get_cobie_types(ifc_file): + for element_type in get_types(ifc_file): elements.update(ifcopenshell.util.element.get_types(element_type)) return elements