From 3dde1b80b92215bba0fae86937a83b28a2f6fad1 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 26 Aug 2024 17:33:17 +0500 Subject: [PATCH] Fix errors initializing hdf5 cache #4832 --- src/bonsai/bonsai/bim/ifc.py | 9 +++++++-- src/bonsai/scripts/standalone_blender_import.py | 3 ++- src/ifcopenshell-python/ifcopenshell/draw.py | 3 ++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/bonsai/bonsai/bim/ifc.py b/src/bonsai/bonsai/bim/ifc.py index f2f950e6ea..da67773ace 100644 --- a/src/bonsai/bonsai/bim/ifc.py +++ b/src/bonsai/bonsai/bim/ifc.py @@ -118,13 +118,18 @@ class IfcStore: ifc_hash = hashlib.md5(ifc_key.encode("utf-8")).hexdigest() IfcStore.cache_path = os.path.join(bpy.context.scene.BIMProperties.data_dir, "cache", f"{ifc_hash}.h5") cache_settings = ifcopenshell.geom.settings() + serializer_settings = ifcopenshell.geom.serializer_settings() try: - IfcStore.cache = ifcopenshell.geom.serializers.hdf5(IfcStore.cache_path, cache_settings) + IfcStore.cache = ifcopenshell.geom.serializers.hdf5( + IfcStore.cache_path, cache_settings, serializer_settings + ) except: if os.path.exists(IfcStore.cache_path): os.remove(IfcStore.cache_path) try: - IfcStore.cache = ifcopenshell.geom.serializers.hdf5(IfcStore.cache_path, cache_settings) + IfcStore.cache = ifcopenshell.geom.serializers.hdf5( + IfcStore.cache_path, cache_settings, serializer_settings + ) except: return else: diff --git a/src/bonsai/scripts/standalone_blender_import.py b/src/bonsai/scripts/standalone_blender_import.py index 7b87fd7d22..3c04f24ddd 100644 --- a/src/bonsai/scripts/standalone_blender_import.py +++ b/src/bonsai/scripts/standalone_blender_import.py @@ -113,8 +113,9 @@ class BlenderImporter: def get_cache(self): cache_settings = ifcopenshell.geom.settings() + serializer_settings = ifcopenshell.geom.serializer_settings() try: - return ifcopenshell.geom.serializers.hdf5(self.cache_path, cache_settings) + return ifcopenshell.geom.serializers.hdf5(self.cache_path, cache_settings, serializer_settings) except: return diff --git a/src/ifcopenshell-python/ifcopenshell/draw.py b/src/ifcopenshell-python/ifcopenshell/draw.py index 1d25cfd192..774b5f9523 100644 --- a/src/ifcopenshell-python/ifcopenshell/draw.py +++ b/src/ifcopenshell-python/ifcopenshell/draw.py @@ -109,7 +109,8 @@ def main( ) if settings.cache: - cache = ifcopenshell.geom.serializers.hdf5("cache.h5", geom_settings) + serializer_settings = ifcopenshell.geom.serializer_settings() + cache = ifcopenshell.geom.serializers.hdf5("cache.h5", geom_settings, serializer_settings) for it in iterators: it.set_cache(cache)