From 5616367a03ea397885e93523e55788da82238742 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Tue, 10 Sep 2024 12:15:29 +0500 Subject: [PATCH] don't deep copy psets for optimization Related to #5291 pset.edit_pset should cover it since it does support unsharing shared properties --- .../ifcopenshell/api/profile/copy_profile.py | 2 +- src/ifcopenshell-python/ifcopenshell/api/pset/unshare_pset.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/api/profile/copy_profile.py b/src/ifcopenshell-python/ifcopenshell/api/profile/copy_profile.py index 61d3c7d6cc..0da06f2beb 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/profile/copy_profile.py +++ b/src/ifcopenshell-python/ifcopenshell/api/profile/copy_profile.py @@ -42,6 +42,6 @@ def copy_profile(file: ifcopenshell.file, profile: ifcopenshell.entity_instance) inverses = file.get_inverse(profile) psets = [i for i in inverses if i.is_a("IfcProfileProperties")] for pset in psets: - new_pset = ifcopenshell.util.element.copy_deep(file, pset, exclude=["IfcProfileDef"]) + new_pset = ifcopenshell.util.element.copy(file, pset) new_pset.ProfileDefinition = new_profile return new_profile diff --git a/src/ifcopenshell-python/ifcopenshell/api/pset/unshare_pset.py b/src/ifcopenshell-python/ifcopenshell/api/pset/unshare_pset.py index acf955879a..051905b2b7 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/pset/unshare_pset.py +++ b/src/ifcopenshell-python/ifcopenshell/api/pset/unshare_pset.py @@ -87,7 +87,8 @@ def unshare_pset( for product in products: # No need to consider about profile/material properties since # they are assigned to 1 element directly and therefore cannot be shared. - pset_copy = ifcopenshell.util.element.copy_deep(file, pset) + # Don't copy_deep to keep it light - edit_pset supports unsharing shared props. + pset_copy = ifcopenshell.util.element.copy(file, pset) pset_copies.append(pset_copy) ifcopenshell.api.pset.assign_pset(file, [product], pset_copy)