From dea844dcf617fcda73e640819c21dac0dbb91d53 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 5 May 2021 11:57:47 +1000 Subject: [PATCH] Fix purging when removing tasks --- .../ifcopenshell/api/sequence/remove_task.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_task.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_task.py index 941a335663..2366678dda 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_task.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_task.py @@ -16,4 +16,13 @@ class Usecase: definition=self.settings["task"], relating_context=self.file.by_type("IfcContext")[0], ) + for inverse in self.file.get_inverse(self.settings["task"]): + if inverse.is_a("IfcRelSequence"): + self.file.remove(inverse) + elif inverse.is_a("IfcRelNests"): + if inverse.RelatingObject == self.settings["task"]: + for related_object in inverse.RelatedObjects: + ifcopenshell.api.run("sequence.remove_task", self.file, task=related_object) + elif inverse.RelatedObjects == tuple(self.settings["task"]): + self.file.remove(inverse) self.file.remove(self.settings["task"])