mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-10 09:48:32 +00:00
Add IfcTaskTime to IfckTask
This commit is contained in:
@@ -6,6 +6,7 @@ class Data:
|
||||
work_plans = {}
|
||||
work_schedules = {}
|
||||
tasks = {}
|
||||
task_times = {}
|
||||
|
||||
@classmethod
|
||||
def purge(cls):
|
||||
@@ -24,6 +25,7 @@ class Data:
|
||||
cls.load_work_schedules()
|
||||
cls.load_work_calendars()
|
||||
cls.load_tasks()
|
||||
cls.load_task_times()
|
||||
cls.is_loaded = True
|
||||
|
||||
@classmethod
|
||||
@@ -78,8 +80,27 @@ class Data:
|
||||
data["RelatedObjects"] = []
|
||||
data["IsPredecessorTo"] = []
|
||||
data["IsSuccessorFrom"] = []
|
||||
if task.TaskTime:
|
||||
data["TaskTime"] = task.TaskTime
|
||||
data["ScheduleStart"] = task.TaskTime.ScheduleStart
|
||||
data["ScheduleFinish"] = task.TaskTime.ScheduleFinish
|
||||
data["ScheduleDuration"] = task.TaskTime.ScheduleDuration
|
||||
for rel in task.IsNestedBy:
|
||||
[data["RelatedObjects"].append(o.id()) for o in rel.RelatedObjects if o.is_a("IfcTask")]
|
||||
[data["IsPredecessorTo"].append(rel.RelatedProcess.id()) for rel in task.IsPredecessorTo or []]
|
||||
[data["IsSuccessorFrom"].append(rel.RelatingProcess.id()) for rel in task.IsSuccessorFrom or []]
|
||||
cls.tasks[task.id()] = data
|
||||
|
||||
@classmethod
|
||||
def load_task_times(cls):
|
||||
cls.task_times = {}
|
||||
for task_time in cls._file.by_type("IfcTaskTime"):
|
||||
data = task_time.get_info()
|
||||
data["ScheduleStart"] = ifcopenshell.util.date.ifc2datetime(data["ScheduleStart"])
|
||||
data["ScheduleFinish"] = ifcopenshell.util.date.ifc2datetime(data["ScheduleFinish"])
|
||||
data["EarlyStart"] = ifcopenshell.util.date.ifc2datetime(data["EarlyStart"])
|
||||
data["EarlyFinish"] = ifcopenshell.util.date.ifc2datetime(data["EarlyFinish"])
|
||||
data["LateStart"] = ifcopenshell.util.date.ifc2datetime(data["LateStart"])
|
||||
data["LateFinish"] = ifcopenshell.util.date.ifc2datetime(data["LateFinish"])
|
||||
data["EarlyFinish"] = ifcopenshell.util.date.ifc2datetime(data["EarlyFinish"])
|
||||
cls.task_times[task_time.id()] = data
|
||||
|
||||
Reference in New Issue
Block a user