mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 17:31:45 +00:00
Fix issue with calculated params in stair ui
it was displaying incorrect data when stair was just loaded because it was relying on BIMStairProperties in ui.py
This commit is contained in:
@@ -314,6 +314,7 @@ class StairData:
|
|||||||
if not cls.data["pset_data"]:
|
if not cls.data["pset_data"]:
|
||||||
return
|
return
|
||||||
cls.data["general_params"] = cls.general_params()
|
cls.data["general_params"] = cls.general_params()
|
||||||
|
cls.data["calculated_params"] = cls.calculated_params()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def pset_data(cls):
|
def pset_data(cls):
|
||||||
@@ -330,6 +331,28 @@ class StairData:
|
|||||||
general_params[prop_readable_name] = prop_value
|
general_params[prop_readable_name] = prop_value
|
||||||
return general_params
|
return general_params
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def calculated_params(cls):
|
||||||
|
props = bpy.context.active_object.BIMStairProperties
|
||||||
|
|
||||||
|
if props.is_editing:
|
||||||
|
si_conversion = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get())
|
||||||
|
number_of_treads = props.number_of_treads
|
||||||
|
height = props.height / si_conversion
|
||||||
|
tread_run = props.tread_run / si_conversion
|
||||||
|
else:
|
||||||
|
data = cls.data["pset_data"]["data_dict"]
|
||||||
|
number_of_treads = data["number_of_treads"]
|
||||||
|
height = data["height"]
|
||||||
|
tread_run = data["tread_run"]
|
||||||
|
|
||||||
|
calculated_params = {}
|
||||||
|
number_of_rises = number_of_treads + 1
|
||||||
|
calculated_params["Number of risers"] = number_of_rises
|
||||||
|
calculated_params["Tread rise"] = round(height / number_of_rises, 5)
|
||||||
|
calculated_params["Length"] = round(tread_run * number_of_rises, 5)
|
||||||
|
return calculated_params
|
||||||
|
|
||||||
|
|
||||||
class SverchokData:
|
class SverchokData:
|
||||||
data = {}
|
data = {}
|
||||||
|
|||||||
@@ -278,16 +278,10 @@ class BIM_PT_stair(bpy.types.Panel):
|
|||||||
row.label(text=str(prop_value))
|
row.label(text=str(prop_value))
|
||||||
|
|
||||||
# calculated properties
|
# calculated properties
|
||||||
number_of_rises = props.number_of_treads + 1
|
for prop_name, prop_value in StairData.data["calculated_params"].items():
|
||||||
row = self.layout.row(align=True)
|
row = self.layout.row(align=True)
|
||||||
row.label(text="Number of risers")
|
row.label(text=prop_name)
|
||||||
row.label(text=str(number_of_rises))
|
row.label(text=str(prop_value))
|
||||||
row = self.layout.row(align=True)
|
|
||||||
row.label(text="Tread rise")
|
|
||||||
row.label(text=str(round(props.height / number_of_rises, 5)))
|
|
||||||
row = self.layout.row(align=True)
|
|
||||||
row.label(text="Length")
|
|
||||||
row.label(text=str(round(props.tread_run * number_of_rises, 5)))
|
|
||||||
else:
|
else:
|
||||||
row = self.layout.row()
|
row = self.layout.row()
|
||||||
row.label(text="No Stair Found")
|
row.label(text="No Stair Found")
|
||||||
|
|||||||
Reference in New Issue
Block a user