From ceeb7ca355fe78f66c6e40f1bfd259315140a331 Mon Sep 17 00:00:00 2001 From: Andrej Date: Tue, 27 May 2025 12:55:09 +0500 Subject: [PATCH] black . --- src/bonsai/bonsai/bim/module/bsdd/ui.py | 8 +++++++- src/bonsai/bonsai/bim/module/cost/data.py | 13 +++++-------- src/bonsai/bonsai/bim/module/cost/operator.py | 7 ++++--- src/bonsai/bonsai/bim/module/cost/prop.py | 3 ++- src/bonsai/bonsai/bim/module/cost/ui.py | 14 ++++++++------ src/bonsai/bonsai/bim/module/material/data.py | 2 +- src/bonsai/bonsai/core/cost.py | 5 +---- src/bonsai/bonsai/tool/cost.py | 4 ++-- src/bonsai/bonsai/tool/spatial.py | 7 ++++--- 9 files changed, 34 insertions(+), 29 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/bsdd/ui.py b/src/bonsai/bonsai/bim/module/bsdd/ui.py index 6828948cfd..9b688b4f8e 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/ui.py +++ b/src/bonsai/bonsai/bim/module/bsdd/ui.py @@ -110,4 +110,10 @@ class BIM_UL_bsdd_properties(UIList): if item.pset: row.label(text=item.pset) row.operator("bim.open_uri", text="", icon="URL").uri = item.uri - row.prop(item, "is_selected", icon="CHECKBOX_HLT" if item.is_selected else "CHECKBOX_DEHLT", text="", emboss=False) + row.prop( + item, + "is_selected", + icon="CHECKBOX_HLT" if item.is_selected else "CHECKBOX_DEHLT", + text="", + emboss=False, + ) diff --git a/src/bonsai/bonsai/bim/module/cost/data.py b/src/bonsai/bonsai/bim/module/cost/data.py index 0826821c37..59443d5783 100644 --- a/src/bonsai/bonsai/bim/module/cost/data.py +++ b/src/bonsai/bonsai/bim/module/cost/data.py @@ -155,9 +155,9 @@ class CostSchedulesData: else: data["TotalCost"] = data["TotalAppliedValue"] * cost_quantity if is_sum: - pass #If it is None it doesn't allow me to assign a cost rate composed by sum - #data["TotalAppliedValue"] = None - + pass # If it is None it doesn't allow me to assign a cost rate composed by sum + # data["TotalAppliedValue"] = None + @classmethod def _load_assigned_cost_rate(cls, cost_item: ifcopenshell.entity_instance, data: CostItem) -> None: data["AssignedCostRate"] = tool.Cost.get_assigned_rate_cost_item(cost_item) @@ -330,13 +330,10 @@ class CostItemRatesData: for s in tool.Ifc.get().by_type("IfcCostSchedule") if s.PredefinedType == "SCHEDULEOFRATES" ] - + @classmethod def cost_schedules(cls) -> list[tuple[str, str, str]]: - return [ - (str(s.id()), s.Name or "Unnamed", "") - for s in tool.Ifc.get().by_type("IfcCostSchedule") - ] + return [(str(s.id()), s.Name or "Unnamed", "") for s in tool.Ifc.get().by_type("IfcCostSchedule")] class CostItemQuantitiesData: diff --git a/src/bonsai/bonsai/bim/module/cost/operator.py b/src/bonsai/bonsai/bim/module/cost/operator.py index ea0a4517d7..eb69674a09 100644 --- a/src/bonsai/bonsai/bim/module/cost/operator.py +++ b/src/bonsai/bonsai/bim/module/cost/operator.py @@ -608,6 +608,7 @@ class LoadCostItemQuantities(bpy.types.Operator): core.load_cost_item_quantities(tool.Cost) return {"FINISHED"} + class ShowAssignedCostRate(bpy.types.Operator): bl_idname = "bim.show_assigned_cost_rate" bl_label = "Info about the assigned cost item rate" @@ -622,9 +623,9 @@ class ShowAssignedCostRate(bpy.types.Operator): return wm.invoke_props_dialog(self, width=450) def execute(self, context): - #core.load_cost_item_quantities(tool.Cost) IS IT NECESSARY? + # core.load_cost_item_quantities(tool.Cost) IS IT NECESSARY? return {"FINISHED"} - + def draw(self, context): layout = self.layout wrapper = textwrap.TextWrapper(width=80) @@ -689,7 +690,7 @@ class AssignCostValue(bpy.types.Operator, tool.Ifc.Operator): tool.Ifc, tool.Cost, cost_item=tool.Ifc.get().by_id(self.cost_item), - cost_rate=tool.Ifc.get().by_id(self.cost_rate) + cost_rate=tool.Ifc.get().by_id(self.cost_rate), ) diff --git a/src/bonsai/bonsai/bim/module/cost/prop.py b/src/bonsai/bonsai/bim/module/cost/prop.py index 39011c791c..8c47185822 100644 --- a/src/bonsai/bonsai/bim/module/cost/prop.py +++ b/src/bonsai/bonsai/bim/module/cost/prop.py @@ -39,13 +39,14 @@ from typing import TYPE_CHECKING, Literal def get_schedule_of_rates(self, context): if not CostItemRatesData.is_loaded: CostItemRatesData.load() - #return CostItemRatesData.data["schedule_of_rates"] + # return CostItemRatesData.data["schedule_of_rates"] return CostItemRatesData.data["cost_schedules"] def update_schedule_of_rates(self, context): tool.Cost.load_schedule_of_rates_tree(schedule_of_rates=tool.Ifc.get().by_id(int(self.schedule_of_rates))) + def get_quantity_types(self, context): if not CostSchedulesData.is_loaded: CostSchedulesData.load() diff --git a/src/bonsai/bonsai/bim/module/cost/ui.py b/src/bonsai/bonsai/bim/module/cost/ui.py index 68bc93c1c7..ba327ad2bf 100644 --- a/src/bonsai/bonsai/bim/module/cost/ui.py +++ b/src/bonsai/bonsai/bim/module/cost/ui.py @@ -608,7 +608,7 @@ class BIM_PT_cost_item_rates(Panel): return False if not CostSchedulesData.is_loaded: return False - #if CostSchedulesData.data["is_editing_rates"]: + # if CostSchedulesData.data["is_editing_rates"]: # return False if total_cost_items > 0 and props.active_cost_item_index < total_cost_items: return True @@ -686,7 +686,7 @@ class BIM_UL_cost_items_trait: if self.props.change_cost_item_parent: self.draw_parent_operator(row, item.ifc_definition_id) - + self.draw_assigned_rate_column(split2, cost_item) # TODO: reimplement "bim.copy_cost_item_values" somewhere with better UX @@ -727,16 +727,18 @@ class BIM_UL_cost_items_trait: layout.label(text=label) else: layout.label(text="-") - + def draw_assigned_rate_column(self, layout, cost_item): - row=layout.row() - row.alignment= "LEFT" + row = layout.row() + row.alignment = "LEFT" if cost_item["AssignedCostRate"] is not None: op = row.operator("bim.show_assigned_cost_rate", text="", emboss=False, icon="ZOOM_IN") op.assigned_rate_id = cost_item["AssignedCostRate"].id() op.assigned_rate_name = cost_item["AssignedCostRate"].Name or "" op.assigned_rate_description = cost_item["AssignedCostRate"].Description or "" - op.assigned_rate_total_value = CostSchedulesData.data["cost_items"][cost_item["AssignedCostRate"].id()]["TotalAppliedValue"] + op.assigned_rate_total_value = CostSchedulesData.data["cost_items"][cost_item["AssignedCostRate"].id()][ + "TotalAppliedValue" + ] else: row.label(text="-") diff --git a/src/bonsai/bonsai/bim/module/material/data.py b/src/bonsai/bonsai/bim/module/material/data.py index 1efea66ad9..616531373d 100644 --- a/src/bonsai/bonsai/bim/module/material/data.py +++ b/src/bonsai/bonsai/bim/module/material/data.py @@ -42,7 +42,7 @@ class MaterialsData: cls.data["material_types"] = sorted(cls.material_types(), key=lambda x: x[1].lower()) cls.data["total_materials"] = cls.total_materials() cls.data["profiles"] = sorted(cls.profiles(), key=lambda x: x[1].lower()) - cls.data["styles"] = sorted(cls.styles(), key=lambda x: x[1].lower() ) + cls.data["styles"] = sorted(cls.styles(), key=lambda x: x[1].lower()) cls.data["contexts"] = sorted(cls.contexts(), key=lambda x: x[1].lower()) cls.data["material_styles_data"] = cls.material_styles_data() diff --git a/src/bonsai/bonsai/core/cost.py b/src/bonsai/bonsai/core/cost.py index 6e4fdf7be4..afd4c7d420 100644 --- a/src/bonsai/bonsai/core/cost.py +++ b/src/bonsai/bonsai/core/cost.py @@ -193,10 +193,7 @@ def load_cost_item_resource_quantities(cost: tool.Cost) -> None: def assign_cost_value( - ifc: tool.Ifc, - cost: tool.Cost, - cost_item: ifcopenshell.entity_instance, - cost_rate: ifcopenshell.entity_instance + ifc: tool.Ifc, cost: tool.Cost, cost_item: ifcopenshell.entity_instance, cost_rate: ifcopenshell.entity_instance ) -> None: ifc.run("cost.assign_cost_value", cost_item=cost_item, cost_rate=cost_rate) existing_cost_rate = cost.get_assigned_rate_cost_item(cost_item) diff --git a/src/bonsai/bonsai/tool/cost.py b/src/bonsai/bonsai/tool/cost.py index 5de96d3d4e..f36ccba653 100644 --- a/src/bonsai/bonsai/tool/cost.py +++ b/src/bonsai/bonsai/tool/cost.py @@ -441,8 +441,8 @@ class Cost(bonsai.core.tool.Cost): props = cls.get_cost_props() props.cost_value_attributes.clear() - #is_rates = cls.is_active_schedule_of_rates() - is_rates = True #so it is possible to assign a cost item rate that it not only from a Schedule of Rate + # is_rates = cls.is_active_schedule_of_rates() + is_rates = True # so it is possible to assign a cost item rate that it not only from a Schedule of Rate callback = lambda name, prop, data: import_attributes( name, prop, data, cost_value, is_rates, props.cost_value_attributes ) diff --git a/src/bonsai/bonsai/tool/spatial.py b/src/bonsai/bonsai/tool/spatial.py index 4b067217ab..8c77a2ec3e 100644 --- a/src/bonsai/bonsai/tool/spatial.py +++ b/src/bonsai/bonsai/tool/spatial.py @@ -957,7 +957,7 @@ class Spatial(bonsai.core.tool.Spatial): converted_tolerance = cls.get_converted_tolerance(tolerance_si=0.03) poly = poly.buffer( converted_tolerance, -# single_sided=True, + # single_sided=True, cap_style=shapely.BufferCapStyle.flat, join_style=shapely.BufferJoinStyle.mitre, ) @@ -977,8 +977,9 @@ class Spatial(bonsai.core.tool.Spatial): mat_invert = mat.inverted() si_conversion = 1.0 if polygon_is_si else ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) new_verts = [ - #bm.verts.new(mat_invert @ (Vector([v[0], v[1], 0]) * si_conversion)) for v in poly.exterior.coords[0:-1] - bm.verts.new(mat_invert @ (Vector([v[0], v[1], 0]) * si_conversion)) for v in shapely.get_exterior_ring(poly).coords[0:-1] + # bm.verts.new(mat_invert @ (Vector([v[0], v[1], 0]) * si_conversion)) for v in poly.exterior.coords[0:-1] + bm.verts.new(mat_invert @ (Vector([v[0], v[1], 0]) * si_conversion)) + for v in shapely.get_exterior_ring(poly).coords[0:-1] ] [bm.edges.new((new_verts[i], new_verts[i + 1])) for i in range(len(new_verts) - 1)] bm.edges.new((new_verts[len(new_verts) - 1], new_verts[0]))