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"])