mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
added exposed floor insulation
This commit is contained in:
parent
1228c680a6
commit
448c6a3772
3 changed files with 18 additions and 10 deletions
|
|
@ -15,7 +15,7 @@ def filter_materials(materials):
|
|||
|
||||
mapping = {
|
||||
"walls": ["internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation"],
|
||||
"floor": ["suspended_floor_insulation", "solid_floor_insulation"],
|
||||
"floor": ["suspended_floor_insulation", "solid_floor_insulation", "exposed_floor_insulation"],
|
||||
"ventilation": ["mechanical_ventilation"],
|
||||
"roof": ["loft_insulation"]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,10 +45,13 @@ class FloorRecommendations(Definitions):
|
|||
part for part in self.materials if part["type"] == "solid_floor_insulation"
|
||||
]
|
||||
|
||||
self.exposed_floor_insulation_parts = [
|
||||
part for part in self.materials if part["type"] == "exposed_floor_insulation"
|
||||
]
|
||||
|
||||
def recommend(self):
|
||||
u_value = self.property.floor["thermal_transmittance"]
|
||||
is_suspended = self.property.floor["is_suspended"]
|
||||
is_solid = self.property.floor["is_solid"]
|
||||
|
||||
floor_level = (
|
||||
FLOOR_LEVEL_MAP[self.property.data["floor-level"]] if
|
||||
self.property.data["floor-level"] not in self.DATA_ANOMALY_MATCHES else None
|
||||
|
|
@ -89,14 +92,17 @@ class FloorRecommendations(Definitions):
|
|||
)
|
||||
self.estimated_u_value = u_value
|
||||
|
||||
if is_suspended:
|
||||
if self.property.floor["is_suspended"]:
|
||||
# Given the U-value, we recommend underfloor insulation
|
||||
self.recommend_floor_insulation(u_value=u_value, parts=self.suspended_floor_insulation_parts)
|
||||
|
||||
if is_solid:
|
||||
if self.property.floor["is_solid"]:
|
||||
# Given the U-value, we recommend solid floor insulation options which are usually solid foam
|
||||
self.recommend_floor_insulation(u_value=u_value, parts=self.solid_floor_insulation_parts)
|
||||
|
||||
if self.property.floor["is_to_unheated_space"] or self.property.floor["is_to_external_air"]:
|
||||
self.recommend_floor_insulation(u_value=u_value, parts=self.exposed_floor_insulation_parts)
|
||||
|
||||
raise NotImplementedError("Implement me!")
|
||||
|
||||
@staticmethod
|
||||
|
|
|
|||
|
|
@ -347,11 +347,13 @@ def get_exposed_floor_uvalue(insulation_thickness_str, age_band):
|
|||
:return:
|
||||
"""
|
||||
|
||||
if age_band in ["A", "B", "C", "D", "E", "F", "G", "H", "I"]:
|
||||
# As directed by the documentation, if the insulation thickness is not known, we assume it's
|
||||
# 50mm for these age bands
|
||||
if insulation_thickness_str in ["below_average", "average", "above_average"]:
|
||||
insulation_thickness = 50
|
||||
unknown_insulation_age_bands = ["A", "B", "C", "D", "E", "F", "G", "H", "I"]
|
||||
# As directed by the documentation, if the insulation thickness is not known, we assume it's
|
||||
# 50mm for these age bands
|
||||
if insulation_thickness_str in ["below_average", "average", "above_average"] and (
|
||||
age_band in unknown_insulation_age_bands
|
||||
):
|
||||
insulation_thickness = 50
|
||||
elif insulation_thickness_str in ["none", None]:
|
||||
insulation_thickness = 0
|
||||
elif insulation_thickness_str in ["below_average"]:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue