From f7af38c86332fc57ffd2fa38aa55e22c03239f81 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 27 Jan 2023 12:09:17 +1100 Subject: [PATCH] Fix #2712. --- .../ifcopenshell/api/root/remove_product.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/api/root/remove_product.py b/src/ifcopenshell-python/ifcopenshell/api/root/remove_product.py index 8ae92422eb..cb98c7979f 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/root/remove_product.py +++ b/src/ifcopenshell-python/ifcopenshell/api/root/remove_product.py @@ -76,9 +76,11 @@ class Usecase: ifcopenshell.api.run("grid.remove_grid_axis", self.file, axis=axis) # TODO: remove object placement and other relationships - ignored = set() - while inverses := set(self.file.get_inverse(self.settings["product"])) - ignored: - inverse = next(iter(inverses)) + for inverse_id in [i.id() for i in self.file.get_inverse(self.settings["product"])]: + try: + inverse = self.file.by_id(inverse_id) + except: + continue if inverse.is_a("IfcRelDefinesByProperties"): ifcopenshell.api.run( "pset.remove_pset", @@ -117,6 +119,4 @@ class Usecase: self.file.remove(inverse) elif inverse.is_a("IfcRelConnectsPathElements"): self.file.remove(inverse) - else: - ignored.add(inverse) self.file.remove(self.settings["product"])