From ff5c40275009eb8f060e51ba5cba33690d725939 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 24 Sep 2024 14:43:25 +1000 Subject: [PATCH] Optimisation for not iterating through things with no representations Iterator initialise can take a few seconds on large models even though you're just doing a few elements which have no representations. --- src/bonsai/bonsai/bim/import_ifc.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/bonsai/bonsai/bim/import_ifc.py b/src/bonsai/bonsai/bim/import_ifc.py index beb3b2a83d..dcb9ff94b2 100644 --- a/src/bonsai/bonsai/bim/import_ifc.py +++ b/src/bonsai/bonsai/bim/import_ifc.py @@ -723,6 +723,11 @@ class IfcImporter: results = set() if not products: return results + + # For efficiency (iterator.initialize takes time), return early if there are no representations + if not any(product.Representation for product in products): + return results + if tool.Loader.settings.should_use_cpu_multiprocessing: iterator = ifcopenshell.geom.iterator( settings,