run black

This commit is contained in:
Sigma Dimensions
2023-05-02 02:27:32 +01:00
parent 9f07605de0
commit 51402cdc59
7 changed files with 58 additions and 11 deletions
@@ -165,7 +165,9 @@ class Usecase:
"IfcRelAssignsToControl", "IfcRelAssignsToControl",
**{ **{
"GlobalId": ifcopenshell.guid.new(), "GlobalId": ifcopenshell.guid.new(),
"OwnerHistory": ifcopenshell.api.run("owner.create_owner_history", self.file), "OwnerHistory": ifcopenshell.api.run(
"owner.create_owner_history", self.file
),
"RelatedObjects": [task], "RelatedObjects": [task],
"RelatingControl": self.settings["work_schedule"], "RelatingControl": self.settings["work_schedule"],
} }
@@ -178,5 +180,9 @@ class Usecase:
relating_object=self.settings["parent_task"], relating_object=self.settings["parent_task"],
) )
if self.settings["parent_task"].Identification: if self.settings["parent_task"].Identification:
task.Identification = self.settings["parent_task"].Identification + "." + str(len(rel.RelatedObjects)) task.Identification = (
self.settings["parent_task"].Identification
+ "."
+ str(len(rel.RelatedObjects))
)
return task return task
@@ -22,7 +22,14 @@ from datetime import datetime
class Usecase: class Usecase:
def __init__(self, file, name="Unnamed", predefined_type="NOTDEFINED", start_time=None, work_plan=None): def __init__(
self,
file,
name="Unnamed",
predefined_type="NOTDEFINED",
start_time=None,
work_plan=None,
):
"""Add a new work schedule """Add a new work schedule
A work schedule is a group of tasks, where the tasks are typically A work schedule is a group of tasks, where the tasks are typically
@@ -20,7 +20,9 @@ import ifcopenshell.util.date
class Usecase: class Usecase:
def __init__(self, file, rel_sequence=None, lag_value=None, duration_type="WORKTIME"): def __init__(
self, file, rel_sequence=None, lag_value=None, duration_type="WORKTIME"
):
"""Assign a lag time to a sequence relationship between tasks """Assign a lag time to a sequence relationship between tasks
A task sequence (e.g. finish to start) may optionally have a lag time A task sequence (e.g. finish to start) may optionally have a lag time
@@ -93,7 +93,6 @@ class Usecase:
"related_object": related_object, "related_object": related_object,
} }
def execute(self): def execute(self):
if self.settings["related_object"].HasAssignments: if self.settings["related_object"].HasAssignments:
for assignment in self.settings["related_object"].HasAssignments: for assignment in self.settings["related_object"].HasAssignments:
@@ -21,7 +21,13 @@ import ifcopenshell.api
class Usecase: class Usecase:
def __init__(self, file, relating_process=None, related_process=None, sequence_type="FINISH_START"): def __init__(
self,
file,
relating_process=None,
related_process=None,
sequence_type="FINISH_START",
):
"""Assign a sequential relationship between tasks """Assign a sequential relationship between tasks
Tasks in construction sequencing typically have sequence relationships Tasks in construction sequencing typically have sequence relationships
@@ -118,7 +124,9 @@ class Usecase:
"IfcRelSequence", "IfcRelSequence",
**{ **{
"GlobalId": ifcopenshell.guid.new(), "GlobalId": ifcopenshell.guid.new(),
"OwnerHistory": ifcopenshell.api.run("owner.create_owner_history", self.file), "OwnerHistory": ifcopenshell.api.run(
"owner.create_owner_history", self.file
),
"RelatingProcess": self.settings["relating_process"], "RelatingProcess": self.settings["relating_process"],
"RelatedProcess": self.settings["related_process"], "RelatedProcess": self.settings["related_process"],
"SequenceType": self.settings["sequence_type"], "SequenceType": self.settings["sequence_type"],
@@ -54,7 +54,10 @@ class Usecase:
recurrence_pattern=pattern, attributes={"WeekdayComponent": [1, 2, 3, 4, 5]}) recurrence_pattern=pattern, attributes={"WeekdayComponent": [1, 2, 3, 4, 5]})
""" """
self.file = file self.file = file
self.settings = {"recurrence_pattern": recurrence_pattern, "attributes": attributes or {}} self.settings = {
"recurrence_pattern": recurrence_pattern,
"attributes": attributes or {},
}
def execute(self): def execute(self):
for name, value in self.settings["attributes"].items(): for name, value in self.settings["attributes"].items():
@@ -55,10 +55,32 @@ class Usecase:
definition=self.settings["work_schedule"], definition=self.settings["work_schedule"],
relating_context=self.file.by_type("IfcContext")[0], relating_context=self.file.by_type("IfcContext")[0],
) )
for rel in self.settings["work_schedule"].Controls: if self.settings["work_schedule"].Declares:
for related_object in rel.RelatedObjects: for rel in self.settings["work_schedule"].Declares:
if related_object.is_a("IfcTask"): for work_schedule in rel.RelatedObjects:
ifcopenshell.api.run(
"sequence.remove_work_schedule",
self.file,
work_schedule=work_schedule,
)
for inverse in self.file.get_inverse(self.settings["work_schedule"]):
if inverse.is_a("IfcRelDefinesByObject"):
if (
inverse.RelatingObject == self.settings["work_schedule"]
or len(inverse.RelatedObjects) == 1
):
self.file.remove(inverse)
else:
related_objects = list(inverse.RelatedObjects)
related_objects.remove(self.settings["work_schedule"])
inverse.RelatedObjects = related_objects
elif inverse.is_a("IfcRelAssignsToControl"):
[
ifcopenshell.api.run( ifcopenshell.api.run(
"sequence.remove_task", self.file, task=related_object "sequence.remove_task", self.file, task=related_object
) )
for related_object in inverse.RelatedObjects
if related_object.is_a("IfcTask")
]
self.file.remove(self.settings["work_schedule"]) self.file.remove(self.settings["work_schedule"])