From b6856109007de8c74fb5d7f21bdaa5559f8b4140 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jul 2021 18:06:57 +1000 Subject: [PATCH] Fix #1599. Bug where removing the last object in a container would have an error. --- .../api/spatial/remove_container.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/api/spatial/remove_container.py b/src/ifcopenshell-python/ifcopenshell/api/spatial/remove_container.py index 57a5399980..88a561cc58 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/spatial/remove_container.py +++ b/src/ifcopenshell-python/ifcopenshell/api/spatial/remove_container.py @@ -11,12 +11,13 @@ class Usecase: def execute(self): contained_in_structure = self.settings["product"].ContainedInStructure + if not contained_in_structure: + return - if contained_in_structure: - related_elements = list(contained_in_structure[0].RelatedElements) - related_elements.remove(self.settings["product"]) - if related_elements: - contained_in_structure[0].RelatedElements = related_elements - ifcopenshell.api.run("owner.update_owner_history", self.file, **{"element": contained_in_structure[0]}) - else: - self.file.remove(contained_in_structure) + related_elements = list(contained_in_structure[0].RelatedElements) + related_elements.remove(self.settings["product"]) + if related_elements: + contained_in_structure[0].RelatedElements = related_elements + ifcopenshell.api.run("owner.update_owner_history", self.file, **{"element": contained_in_structure[0]}) + else: + self.file.remove(contained_in_structure[0])