From 145f601a2ef40928ae249a630003fd4fbebea57f Mon Sep 17 00:00:00 2001 From: "Sigma Dimensions (Yass)" <79010126+myoualid@users.noreply.github.com> Date: Mon, 18 Sep 2023 20:20:23 +0100 Subject: [PATCH] purge cost schedules --- .../ifcopenshell/api/cost/remove_cost_schedule.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/ifcopenshell-python/ifcopenshell/api/cost/remove_cost_schedule.py b/src/ifcopenshell-python/ifcopenshell/api/cost/remove_cost_schedule.py index 33414bc486..081f30a43d 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cost/remove_cost_schedule.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cost/remove_cost_schedule.py @@ -16,6 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +import ifcopenshell.api + class Usecase: def __init__(self, file, cost_schedule=None): @@ -42,4 +44,13 @@ class Usecase: def execute(self): # TODO: do a deep purge + for inverse in self.file.get_inverse(self.settings["cost_schedule"]): + if inverse.is_a("IfcRelAssignsToControl"): + [ + ifcopenshell.api.run( + "sequence.remove_cost_item", self.file, task=related_object + ) + for related_object in inverse.RelatedObjects + if related_object.is_a("IfcCostItem") + ] self.file.remove(self.settings["cost_schedule"])