From a2ccff67ca4e4cb8a817a119edf2ed8de2375401 Mon Sep 17 00:00:00 2001 From: Andrea Ghensi Date: Mon, 6 Oct 2025 06:50:03 +0200 Subject: [PATCH] fix(bcf): Create directory entries in the zip file's central directory (#7175) This is done to comply with the Implementation Agreements https://github.com/buildingSMART/BCF-XML/tree/release_3_0/Documentation#create-directory-folder-entries-in-the-zip-files-central-directory --- src/bcf/bcf/v2/topic.py | 2 ++ src/bcf/bcf/v3/topic.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/bcf/bcf/v2/topic.py b/src/bcf/bcf/v2/topic.py index 7ea1c89772..7ee4c50b60 100644 --- a/src/bcf/bcf/v2/topic.py +++ b/src/bcf/bcf/v2/topic.py @@ -192,6 +192,8 @@ class TopicHandler: bcf_zip: The BCF zip file to save to. """ topic_dir = self.guid + # simulating directory creation (ZipFile in python < 3.11 doesn't have mkdir) + destination_zip.writestr(f"{topic_dir}/", "") self._save_xml(destination_zip, self._markup, "markup.bcf") self._save_viewpoints(destination_zip, topic_dir) self._save_bim_snippet(destination_zip) diff --git a/src/bcf/bcf/v3/topic.py b/src/bcf/bcf/v3/topic.py index 38fea3de7e..04753c006e 100644 --- a/src/bcf/bcf/v3/topic.py +++ b/src/bcf/bcf/v3/topic.py @@ -179,6 +179,8 @@ class TopicHandler: bcf_zip: The BCF zip file to save to. """ topic_dir = self.guid + # simulating directory creation (ZipFile in python < 3.11 doesn't have mkdir) + destination_zip.writestr(f"{topic_dir}/", "") self._save_xml(destination_zip, self._markup, "markup.bcf") self._save_viewpoints(destination_zip, topic_dir) self._save_bim_snippet(destination_zip)