From 1dd85f6c48767fd4155f332c1f65eb5aacffa8c1 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 25 Mar 2022 15:44:48 +1100 Subject: [PATCH] Fix bug where removing a rooted or calendar constrained task would purge all calendar assignments --- .../ifcopenshell/api/sequence/remove_task.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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"])