diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_task.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_task.py index edd271731d..6783b5ade5 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_task.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_task.py @@ -44,5 +44,10 @@ class Usecase: elif inverse.RelatedObjects == tuple(self.settings["task"]): self.file.remove(inverse) elif inverse.is_a("IfcRelAssignsToControl"): - self.file.remove(inverse) + if len(inverse.RelatedObjects) == 1: + self.file.remove(inverse) + else: + related_objects = list(inverse.RelatedObjects) + related_objects.remove(self.settings["task"]) + inverse.RelatedObjects = related_objects self.file.remove(self.settings["task"])