New assign / unassign declaration usecase, minor code & formatting cleanup

This commit is contained in:
Dion Moult
2021-04-07 13:15:16 +10:00
parent 13d4a99358
commit ae0789e4ec
25 changed files with 289 additions and 228 deletions
@@ -1,17 +1,10 @@
import ifcopenshell.api
import ifcopenshell.util.date
from datetime import datetime, timedelta
class Usecase:
def __init__(self, file, **settings):
self.file = file
self.settings = {
"name": "Unnamed",
"predefined_type": "NOTDEFINED",
"working_times":[],
"exception_times":[]
}
self.settings = {"name": "Unnamed", "predefined_type": "NOTDEFINED", "working_times": [], "exception_times": []}
for key, value in settings.items():
self.settings[key] = value
@@ -23,26 +16,8 @@ class Usecase:
predefined_type=self.settings["predefined_type"],
name=self.settings["name"],
)
working_time = self.file.create_entity("IfcWorkTime", **{"Name":"DefaultWorkingTime"})
self.settings["working_times"].append(working_time)
work_calendar.WorkingTimes = self.settings["working_times"]
exception_time = self.file.create_entity("IfcWorkTime", **{"Name":"DefaultExceptionTime"})
self.settings["exception_times"].append(exception_time)
work_calendar.ExceptionTimes = self.settings["exception_times"]
context = self.file.by_type("IfcContext")[0]
if context.Declares:
rel_declares = context.Declares[0]
ifcopenshell.api.run("owner.update_owner_history", self.file, element=rel_declares)
else:
rel_declares = self.file.create_entity("IfcRelDeclares", **{
"GlobalId": ifcopenshell.guid.new(),
"OwnerHistory": ifcopenshell.api.run("owner.create_owner_history", self.file),
"RelatingContext": context
})
related_definitions = list(rel_declares.RelatedDefinitions or [])
related_definitions.append(work_calendar)
rel_declares.RelatedDefinitions = related_definitions
return work_calendar
ifcopenshell.api.run(
"project.assign_declaration", self.file, definition=work_calendar, relating_context=context
)
return work_calendar