mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-12 13:29:04 +00:00
Carry a flat roof's known insulation depth into the overlay 🟩
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
736b5877e9
commit
463d4df048
1 changed files with 14 additions and 2 deletions
|
|
@ -27,6 +27,8 @@ from datatypes.epc.domain.epc_property_data import BuildingPartIdentifier
|
|||
from domain.modelling.simulation import BuildingPartOverlay, EpcSimulation
|
||||
|
||||
_LOFT_MM = re.compile(r"(\d+)\+?\s*mm loft insulation")
|
||||
# A flat roof carries no loft, so its depth reads "N mm insulation" (no "loft").
|
||||
_FLAT_MM = re.compile(r"(\d+)\+?\s*mm insulation")
|
||||
|
||||
|
||||
def roof_overlay_for(
|
||||
|
|
@ -49,8 +51,18 @@ def _overlay_for(roof_type_value: str) -> Optional[BuildingPartOverlay]:
|
|||
if match is not None:
|
||||
return BuildingPartOverlay(roof_insulation_thickness=int(match.group(1)))
|
||||
if roof_type_value.startswith("Flat,"):
|
||||
# Flat roof: U-value is the age-band default; flag the shape and let the
|
||||
# age-band overlay drive `_FLAT_ROOF_BY_AGE` (ADR-0033).
|
||||
flat_depth = _FLAT_MM.search(roof_type_value)
|
||||
if flat_depth is not None:
|
||||
# A flat roof with a known depth: RdSAP 10 Table 16 col (1) ("joists at
|
||||
# ceiling level and flat roof") scores it by thickness, so carry the
|
||||
# depth (the calculator routes flat + thickness through Table 16, not
|
||||
# the age-band default). ADR-0041.
|
||||
return BuildingPartOverlay(
|
||||
roof_construction_type="Flat",
|
||||
roof_insulation_thickness=int(flat_depth.group(1)),
|
||||
)
|
||||
# Flat roof with no stated depth: U-value is the age-band default; flag the
|
||||
# shape and let the age-band overlay drive `_FLAT_ROOF_BY_AGE` (ADR-0033).
|
||||
return BuildingPartOverlay(roof_construction_type="Flat")
|
||||
if roof_type_value == "Pitched, Unknown loft insulation":
|
||||
# Unknown loft depth: U-value is the pitched age-band default. Assert the
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue