2021-04-18 00:49:43 +00:00
|
|
|
import ifcopenshell.api
|
|
|
|
|
|
|
|
|
|
|
2021-04-07 00:31:16 +01:00
|
|
|
class Usecase:
|
|
|
|
|
def __init__(self, file, **settings):
|
|
|
|
|
self.file = file
|
|
|
|
|
self.settings = {"work_schedule": None}
|
|
|
|
|
for key, value in settings.items():
|
|
|
|
|
self.settings[key] = value
|
|
|
|
|
|
|
|
|
|
def execute(self):
|
|
|
|
|
# TODO: do a deep purge
|
2021-04-07 13:15:16 +10:00
|
|
|
ifcopenshell.api.run(
|
|
|
|
|
"project.unassign_declaration",
|
|
|
|
|
self.file,
|
|
|
|
|
definition=self.settings["work_schedule"],
|
|
|
|
|
relating_context=self.file.by_type("IfcContext")[0],
|
|
|
|
|
)
|
2021-05-07 11:16:05 +10:00
|
|
|
for rel in self.settings["work_schedule"].Controls:
|
|
|
|
|
for related_object in rel.RelatedObjects:
|
|
|
|
|
if related_object.is_a("IfcTask"):
|
2021-09-09 21:27:23 +10:00
|
|
|
ifcopenshell.api.run("sequence.remove_task", self.file, task=related_object)
|
2021-04-07 00:31:16 +01:00
|
|
|
self.file.remove(self.settings["work_schedule"])
|