From 34f4aa430aafc43ffa4028cdec23716fe6c0d9d5 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Mon, 20 Oct 2025 10:33:09 +0200 Subject: [PATCH 1/4] Keep file_ as nullptr to not bypass addEntity() #7264 --- src/ifcparse/IfcFile.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ifcparse/IfcFile.cpp b/src/ifcparse/IfcFile.cpp index 25cd414c4c..2a00f313b2 100644 --- a/src/ifcparse/IfcFile.cpp +++ b/src/ifcparse/IfcFile.cpp @@ -748,7 +748,7 @@ std::optionalas_entity() || decl->as_type_declaration()) { auto* inst = file->schema()->instantiate(decl, rocks_db_attribute_storage{}); - inst->file_ = file; + inst->file_ = nullptr; return file->addEntity(inst); } else { throw std::runtime_error("Requires and entity or type declaration"); @@ -764,6 +764,6 @@ IfcUtil::IfcBaseClass* IfcParse::impl::in_memory_file_storage::create(const IfcP } else { throw std::runtime_error("Requires and entity or type declaration"); } - inst->file_ = file; + inst->file_ = nullptr; return file->addEntity(inst); } From 86b89f2153ae5730561a8790775b4c6a2935c73a Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Mon, 20 Oct 2025 10:37:35 +0200 Subject: [PATCH 2/4] Comment behaviour #7264 --- src/ifcparse/IfcFile.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ifcparse/IfcFile.cpp b/src/ifcparse/IfcFile.cpp index 2a00f313b2..d70222ebf0 100644 --- a/src/ifcparse/IfcFile.cpp +++ b/src/ifcparse/IfcFile.cpp @@ -748,6 +748,7 @@ std::optionalas_entity() || decl->as_type_declaration()) { auto* inst = file->schema()->instantiate(decl, rocks_db_attribute_storage{}); + // @todo maybe this needs to be set to file? In order to have a context (ie. rocksdb::db*) to write to? inst->file_ = nullptr; return file->addEntity(inst); } else { @@ -764,6 +765,7 @@ IfcUtil::IfcBaseClass* IfcParse::impl::in_memory_file_storage::create(const IfcP } else { throw std::runtime_error("Requires and entity or type declaration"); } + // file_ should be nullptr in order not to bypass addEntity() behaviour of registration in maps inst->file_ = nullptr; return file->addEntity(inst); } From 546a042d40e6dcd02af5ff9fb9c416d7f8897de6 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 21 Oct 2025 10:49:17 +1100 Subject: [PATCH 3/4] Explicitly disable any voids, openings, and booleans in IFC4 Reference View MVD It turns out vendors are still exporting them and creating a mess. --- src/bonsai/bonsai/bim/import_ifc.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/bonsai/bonsai/bim/import_ifc.py b/src/bonsai/bonsai/bim/import_ifc.py index 9252ecb94b..1765b1ca24 100644 --- a/src/bonsai/bonsai/bim/import_ifc.py +++ b/src/bonsai/bonsai/bim/import_ifc.py @@ -952,6 +952,9 @@ class IfcImporter: if not props.ifc_file: props.ifc_file = self.ifc_import_settings.input_file self.file = tool.Ifc.get() + # IFC4 Reference View shall have no booleans https://github.com/BuildingSMART/IFC4-CV/issues/14 + if self.file.schema == "IFC4" and "ReferenceView" in str(self.file.header.file_description.description): + self.ifc_import_settings.void_limit = 0 def calculate_unit_scale(self): self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(self.file) From e2cf60f0c1c1a3ff5bc74b9f8bd9dc454a1d0664 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Tue, 21 Oct 2025 12:18:48 +0200 Subject: [PATCH 4/4] Update to gmp 6.3.0 #7200 --- nix/build-all.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/build-all.py b/nix/build-all.py index 7bf77e15d9..0351300717 100644 --- a/nix/build-all.py +++ b/nix/build-all.py @@ -146,7 +146,7 @@ SWIG_VERSION = "4.1.0" OPENCOLLADA_VERSION = "v1.6.68" HDF5_VERSION = "1.13.1" -GMP_VERSION = "6.2.1" +GMP_VERSION = "6.3.0" MPFR_VERSION = "3.1.6" # latest is 4.1.0 CGAL_VERSION = "v5.6.3" USD_VERSION = "23.05"