Quality check - run black on api/resource

This commit is contained in:
Sigma Dimensions
2022-09-08 03:15:41 +01:00
parent 57caf6a31f
commit 96d19952e9
6 changed files with 54 additions and 16 deletions
@@ -50,5 +50,10 @@ class Usecase:
) )
else: else:
context = self.file.by_type("IfcContext")[0] context = self.file.by_type("IfcContext")[0]
ifcopenshell.api.run("project.assign_declaration", self.file, definition=resource, relating_context=context) ifcopenshell.api.run(
"project.assign_declaration",
self.file,
definition=resource,
relating_context=context,
)
return resource return resource
@@ -35,7 +35,8 @@ class Usecase:
for assignment in self.settings["related_object"].HasAssignments: for assignment in self.settings["related_object"].HasAssignments:
if ( if (
assignment.is_a("IfclRelAssignsToResource") assignment.is_a("IfclRelAssignsToResource")
and assignment.RelatingResource == self.settings["relating_resource"] and assignment.RelatingResource
== self.settings["relating_resource"]
): ):
return return
@@ -47,13 +48,17 @@ class Usecase:
related_objects = list(resource_of.RelatedObjects) related_objects = list(resource_of.RelatedObjects)
related_objects.append(self.settings["related_object"]) related_objects.append(self.settings["related_object"])
resource_of.RelatedObjects = related_objects resource_of.RelatedObjects = related_objects
ifcopenshell.api.run("owner.update_owner_history", self.file, **{"element": resource_of}) ifcopenshell.api.run(
"owner.update_owner_history", self.file, **{"element": resource_of}
)
else: else:
resource_of = self.file.create_entity( resource_of = self.file.create_entity(
"IfcRelAssignsToResource", "IfcRelAssignsToResource",
**{ **{
"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": [self.settings["related_object"]], "RelatedObjects": [self.settings["related_object"]],
"RelatingResource": self.settings["relating_resource"], "RelatingResource": self.settings["relating_resource"],
} }
@@ -30,23 +30,31 @@ class Usecase:
self.settings[key] = value self.settings[key] = value
def execute(self): def execute(self):
self.productivity = ifcopenshell.util.element.get_psets(self.settings["resource"]).get( self.productivity = ifcopenshell.util.element.get_psets(
"EPset_Productivity", None self.settings["resource"]
) ).get("EPset_Productivity", None)
if not self.productivity: if not self.productivity:
return return
unit_consumed = self.get_unit_consumed() unit_consumed = self.get_unit_consumed()
self.unit_produced_name = self.productivity.get("BaseQuantityProducedName", None) self.unit_produced_name = self.productivity.get(
"BaseQuantityProducedName", None
)
unit_produced = self.productivity.get("BaseQuantityProducedValue", None) unit_produced = self.productivity.get("BaseQuantityProducedValue", None)
total_produced = self.get_total_produced() total_produced = self.get_total_produced()
if not unit_consumed or not unit_produced or not total_produced: if not unit_consumed or not unit_produced or not total_produced:
return return
if not self.settings["resource"].Usage: if not self.settings["resource"].Usage:
ifcopenshell.api.run("resource.add_resource_time", self.file, resource=self.settings["resource"]) ifcopenshell.api.run(
"resource.add_resource_time",
self.file,
resource=self.settings["resource"],
)
if "T" in self.productivity.get("BaseQuantityConsumed", None): if "T" in self.productivity.get("BaseQuantityConsumed", None):
seconds = (unit_consumed.days * 24 * 60 * 60) + unit_consumed.seconds seconds = (unit_consumed.days * 24 * 60 * 60) + unit_consumed.seconds
amount_worked = total_produced / unit_produced * seconds amount_worked = total_produced / unit_produced * seconds
self.settings["resource"].Usage.ScheduleWork = f"PT{amount_worked / 60 / 60}H" self.settings[
"resource"
].Usage.ScheduleWork = f"PT{amount_worked / 60 / 60}H"
else: else:
days = unit_consumed.days + (unit_consumed.seconds / (24 * 60 * 60)) days = unit_consumed.days + (unit_consumed.seconds / (24 * 60 * 60))
amount_worked = total_produced / unit_produced * days amount_worked = total_produced / unit_produced * days
@@ -59,7 +59,11 @@ class Data(CostValueTrait):
data["ResourceOf"] = [] data["ResourceOf"] = []
for rel in resource.ResourceOf: for rel in resource.ResourceOf:
[data["ResourceOf"].append(o.id()) for o in rel.RelatedObjects] [data["ResourceOf"].append(o.id()) for o in rel.RelatedObjects]
data["HasContext"] = resource.HasContext[0].RelatingContext.id() if resource.HasContext else None data["HasContext"] = (
resource.HasContext[0].RelatingContext.id()
if resource.HasContext
else None
)
if resource.Usage: if resource.Usage:
data["Usage"] = data["Usage"].id() data["Usage"] = data["Usage"].id()
data["TotalCostQuantity"] = cls.get_total_quantity(resource) data["TotalCostQuantity"] = cls.get_total_quantity(resource)
@@ -36,16 +36,27 @@ class Usecase:
and "ScheduleFinish" in self.settings["attributes"].keys() and "ScheduleFinish" in self.settings["attributes"].keys()
): ):
del self.settings["attributes"]["ScheduleFinish"] del self.settings["attributes"]["ScheduleFinish"]
if self.settings["attributes"].get("ActualWork", None) and "ActualFinish" in self.settings["attributes"].keys(): if (
self.settings["attributes"].get("ActualWork", None)
and "ActualFinish" in self.settings["attributes"].keys()
):
del self.settings["attributes"]["ActualFinish"] del self.settings["attributes"]["ActualFinish"]
for name, value in self.settings["attributes"].items(): for name, value in self.settings["attributes"].items():
if value: if value:
if "Start" in name or "Finish" in name or name == "StatusTime": if "Start" in name or "Finish" in name or name == "StatusTime":
value = ifcopenshell.util.date.datetime2ifc(value, "IfcDateTime") value = ifcopenshell.util.date.datetime2ifc(value, "IfcDateTime")
elif name == "ScheduleWork" or name == "ActualWork" or name == "RemainingTime": elif (
name == "ScheduleWork"
or name == "ActualWork"
or name == "RemainingTime"
):
value = ifcopenshell.util.date.datetime2ifc(value, "IfcDuration") value = ifcopenshell.util.date.datetime2ifc(value, "IfcDuration")
setattr(self.settings["resource_time"], name, value) setattr(self.settings["resource_time"], name, value)
def get_resource(self): def get_resource(self):
return [e for e in self.file.get_inverse(self.settings["resource_time"]) if e.is_a("IfcResource")][0] return [
e
for e in self.file.get_inverse(self.settings["resource_time"])
if e.is_a("IfcResource")
][0]
@@ -31,12 +31,17 @@ class Usecase:
def execute(self): def execute(self):
for rel in self.settings["related_object"].HasAssignments or []: for rel in self.settings["related_object"].HasAssignments or []:
if not rel.is_a("IfcRelAssignsToResource") or rel.RelatingResource != self.settings["relating_resource"]: if (
not rel.is_a("IfcRelAssignsToResource")
or rel.RelatingResource != self.settings["relating_resource"]
):
continue continue
if len(rel.RelatedObjects) == 1: if len(rel.RelatedObjects) == 1:
return self.file.remove(rel) return self.file.remove(rel)
related_objects = list(rel.RelatedObjects) related_objects = list(rel.RelatedObjects)
related_objects.remove(self.settings["related_object"]) related_objects.remove(self.settings["related_object"])
rel.RelatedObjects = related_objects rel.RelatedObjects = related_objects
ifcopenshell.api.run("owner.update_owner_history", self.file, **{"element": rel}) ifcopenshell.api.run(
"owner.update_owner_history", self.file, **{"element": rel}
)
return rel return rel