minor fixes and TODO

This commit is contained in:
Daniel Roth 2026-01-27 16:08:20 +00:00
parent 803484defd
commit 32f9850a27
6 changed files with 291 additions and 286 deletions

View file

@ -228,6 +228,8 @@ class ElementType(str, Enum):
# HHSRS ALL 29 HAZARDS # HHSRS ALL 29 HAZARDS
# ========================================================== # ==========================================================
# TODO: In order to group HHSRS, should there be a single HHSRS element type, and each of the below is an AspectType?
HHSRS_DAMP_AND_MOULD = "hhsrs_damp_and_mould" HHSRS_DAMP_AND_MOULD = "hhsrs_damp_and_mould"
HHSRS_EXCESS_COLD = "hhsrs_excess_cold" HHSRS_EXCESS_COLD = "hhsrs_excess_cold"
HHSRS_EXCESS_HEAT = "hhsrs_excess_heat" HHSRS_EXCESS_HEAT = "hhsrs_excess_heat"

View file

@ -1,13 +1,13 @@
from dataclasses import dataclass from dataclasses import dataclass
from typing import Optional from typing import Optional
from xml.dom.minidom import Element
from backend.condition.domain.aspect_type import AspectType from backend.condition.domain.aspect_type import AspectType
from backend.condition.domain.element_type import ElementType
@dataclass(frozen=True) @dataclass(frozen=True)
class ElementMapping: class ElementMapping:
element: Element elementType: ElementType
aspect_type: AspectType aspect_type: AspectType
element_instance: Optional[int] = None element_instance: Optional[int] = None
aspect_instance: Optional[int] = None aspect_instance: Optional[int] = None

View file

@ -8,11 +8,11 @@ LBWF_ELEMENT_MAP: dict[str, ElementMapping] = {
# PROPERTY / GENERAL # PROPERTY / GENERAL
# ========================================================== # ==========================================================
"AHR_CAT": ElementMapping( "AHR_CAT": ElementMapping(
element=ElementType.ACCESSIBLE_HOUSING_REGISTER, elementType=ElementType.ACCESSIBLE_HOUSING_REGISTER,
aspect_type=AspectType.CATEGORY, aspect_type=AspectType.CATEGORY,
), ),
"ASSETSAREA": ElementMapping( "ASSETSAREA": ElementMapping(
element=ElementType.PROPERTY, elementType=ElementType.PROPERTY,
aspect_type=AspectType.AREA, aspect_type=AspectType.AREA,
), ),
# "DECNTHMINC": ElementMapping( # "DECNTHMINC": ElementMapping(
@ -20,302 +20,302 @@ LBWF_ELEMENT_MAP: dict[str, ElementMapping] = {
# aspect_type=AspectType.INCLUSION, # aspect_type=AspectType.INCLUSION,
# ), # Ignore this one # ), # Ignore this one
"QUALITYSTD": ElementMapping( "QUALITYSTD": ElementMapping(
element=ElementType.QUALITY_STANDARD, elementType=ElementType.QUALITY_STANDARD,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
"EXTSTOREY": ElementMapping( "EXTSTOREY": ElementMapping(
element=ElementType.PROPERTY, elementType=ElementType.PROPERTY,
aspect_type=AspectType.CONFIGURATION, aspect_type=AspectType.CONFIGURATION,
), ),
"FLVL": ElementMapping( "FLVL": ElementMapping(
element=ElementType.FLOOR_LEVEL_FRONT_DOOR, elementType=ElementType.FLOOR_LEVEL_FRONT_DOOR,
aspect_type=AspectType.LOCATION, aspect_type=AspectType.LOCATION,
), ),
"INTFLRLVL": ElementMapping( "INTFLRLVL": ElementMapping(
element=ElementType.FLOOR_LEVEL, elementType=ElementType.FLOOR_LEVEL,
aspect_type=AspectType.LOCATION, aspect_type=AspectType.LOCATION,
), ),
"INTNSEINSL": ElementMapping( "INTNSEINSL": ElementMapping(
element=ElementType.EXTERNAL_NOISE_INSULATION, # Maybe this shouldn't be "EXTERNAL_" elementType=ElementType.EXTERNAL_NOISE_INSULATION, # Maybe this shouldn't be "EXTERNAL_"
aspect_type=AspectType.ADEQUACY, aspect_type=AspectType.ADEQUACY,
), ),
"INTSTEPSFD": ElementMapping( "INTSTEPSFD": ElementMapping(
element=ElementType.STEPS_TO_FRONT_DOOR, elementType=ElementType.STEPS_TO_FRONT_DOOR,
aspect_type=AspectType.QUANTITY, aspect_type=AspectType.QUANTITY,
), ),
# ========================================================== # ==========================================================
# ASBESTOS (NON-HHSRS RECORD) # ASBESTOS (NON-HHSRS RECORD)
# ========================================================== # ==========================================================
"ASBESTOS": ElementMapping( "ASBESTOS": ElementMapping(
element=ElementType.ASBESTOS, elementType=ElementType.ASBESTOS,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
# ========================================================== # ==========================================================
# INTERNAL BATHROOMS & KITCHENS # INTERNAL BATHROOMS & KITCHENS
# ========================================================== # ==========================================================
"INTBTHRLOC": ElementMapping( "INTBTHRLOC": ElementMapping(
element=ElementType.BATHROOM, elementType=ElementType.BATHROOM,
aspect_type=AspectType.LOCATION, aspect_type=AspectType.LOCATION,
), ),
"INTBTHADEQ": ElementMapping( "INTBTHADEQ": ElementMapping(
element=ElementType.BATHROOM, elementType=ElementType.BATHROOM,
aspect_type=AspectType.ADEQUACY, aspect_type=AspectType.ADEQUACY,
), ),
"INTKITADEQ": ElementMapping( "INTKITADEQ": ElementMapping(
element=ElementType.KITCHEN, elementType=ElementType.KITCHEN,
aspect_type=AspectType.ADEQUACY, aspect_type=AspectType.ADEQUACY,
), ),
"INTCKRLOC": ElementMapping( "INTCKRLOC": ElementMapping(
element=ElementType.KITCHEN, elementType=ElementType.KITCHEN,
aspect_type=AspectType.LOCATION, aspect_type=AspectType.LOCATION,
), ),
"INTADDWCW": ElementMapping( "INTADDWCW": ElementMapping(
element=ElementType.ADDITIONAL_WC_OR_WHB, elementType=ElementType.ADDITIONAL_WC_OR_WHB,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
"INTBTHREML": ElementMapping( "INTBTHREML": ElementMapping(
element=ElementType.BATHROOM_REMAINING_LIFE_SOURCE, elementType=ElementType.BATHROOM_REMAINING_LIFE_SOURCE,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
"INTKITREML": ElementMapping( "INTKITREML": ElementMapping(
element=ElementType.KITCHEN_REMAINING_LIFE_SOURCE, elementType=ElementType.KITCHEN_REMAINING_LIFE_SOURCE,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
"INTTNTINST": ElementMapping( "INTTNTINST": ElementMapping(
element=ElementType.TENANT_INSTALLED_KITCHEN, elementType=ElementType.TENANT_INSTALLED_KITCHEN,
aspect_type=AspectType.TYPE, # Not certain about this aspect type - need more data aspect_type=AspectType.TYPE, # Not certain about this aspect type - need more data
), ),
# ========================================================== # ==========================================================
# INTERNAL FIRE # INTERNAL FIRE
# ========================================================== # ==========================================================
"FRARISKRTG": ElementMapping( "FRARISKRTG": ElementMapping(
element=ElementType.FIRE_RISK_ASSESSMENT, elementType=ElementType.FIRE_RISK_ASSESSMENT,
aspect_type=AspectType.RATING, aspect_type=AspectType.RATING,
), ),
"FRATYPE": ElementMapping( "FRATYPE": ElementMapping(
element=ElementType.FIRE_RISK_ASSESSMENT, elementType=ElementType.FIRE_RISK_ASSESSMENT,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
"FRAEVACSTR": ElementMapping( "FRAEVACSTR": ElementMapping(
element=ElementType.FIRE_RISK_ASSESSMENT, elementType=ElementType.FIRE_RISK_ASSESSMENT,
aspect_type=AspectType.STRATEGY, aspect_type=AspectType.STRATEGY,
), ),
"INTSMKDET": ElementMapping( "INTSMKDET": ElementMapping(
element=ElementType.SMOKE_DETECTION, elementType=ElementType.SMOKE_DETECTION,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
"INTCHEXTNT": ElementMapping( "INTCHEXTNT": ElementMapping(
element=ElementType.HEATING_SYSTEM, elementType=ElementType.HEATING_SYSTEM,
aspect_type=AspectType.EXTENT, aspect_type=AspectType.EXTENT,
), ),
# ========================================================== # ==========================================================
# HEATING & SERVICES # HEATING & SERVICES
# ========================================================== # ==========================================================
"INTCHEXTNT": ElementMapping( "INTCHEXTNT": ElementMapping(
element=ElementType.CENTRAL_HEATING, elementType=ElementType.CENTRAL_HEATING,
aspect_type=AspectType.EXTENT, aspect_type=AspectType.EXTENT,
), ),
"INTCHDIST": ElementMapping( "INTCHDIST": ElementMapping(
element=ElementType.HEATING_DISTRIBUTION, elementType=ElementType.HEATING_DISTRIBUTION,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
"INTCHBLR": ElementMapping( "INTCHBLR": ElementMapping(
element=ElementType.HEATING_BOILER, elementType=ElementType.HEATING_BOILER,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
"INTBOILERF": ElementMapping( "INTBOILERF": ElementMapping(
element=ElementType.BOILER_FUEL, elementType=ElementType.BOILER_FUEL,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
"INTHTDISYS": ElementMapping( "INTHTDISYS": ElementMapping(
element=ElementType.HEATING_SYSTEM, elementType=ElementType.HEATING_SYSTEM,
aspect_type=AspectType.DISTRIBUTION, aspect_type=AspectType.DISTRIBUTION,
), ),
"INTWTRHTNG": ElementMapping( "INTWTRHTNG": ElementMapping(
element=ElementType.WATER_HEATING, elementType=ElementType.WATER_HEATING,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
"INTCOMHTG": ElementMapping( "INTCOMHTG": ElementMapping(
element=ElementType.COMMUNITY_HEATING, elementType=ElementType.COMMUNITY_HEATING,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
"INTELECTRC": ElementMapping( "INTELECTRC": ElementMapping(
element=ElementType.ELECTRICS, elementType=ElementType.ELECTRICS,
aspect_type=AspectType.WORK_REQUIRED, # Not certain about this aspect type - need more data aspect_type=AspectType.WORK_REQUIRED, # Not certain about this aspect type - need more data
), ),
"INTGASAVAI": ElementMapping( "INTGASAVAI": ElementMapping(
element=ElementType.GAS_AVAILABLE, elementType=ElementType.GAS_AVAILABLE,
aspect_type=AspectType.PRESENCE, # Maybe should be AspectType.TYPE ? aspect_type=AspectType.PRESENCE, # Maybe should be AspectType.TYPE ?
), ),
"INTHEATREC": ElementMapping( "INTHEATREC": ElementMapping(
element=ElementType.HEAT_RECOVERY_UNITS, elementType=ElementType.HEAT_RECOVERY_UNITS,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
"INTHTIMP": ElementMapping( "INTHTIMP": ElementMapping(
element=ElementType.GAS_AVAILABLE, elementType=ElementType.GAS_AVAILABLE,
aspect_type=AspectType.WORK_REQUIRED, aspect_type=AspectType.WORK_REQUIRED,
), ),
"INTPROGHTG": ElementMapping( "INTPROGHTG": ElementMapping(
element=ElementType.PROGRAMMABLE_HEATING, elementType=ElementType.PROGRAMMABLE_HEATING,
aspect_type=AspectType.TYPE, # Should maybe be PRESENCE, but set to TYPE for consistency with Peabody data aspect_type=AspectType.TYPE, # Should maybe be PRESENCE, but set to TYPE for consistency with Peabody data
), ),
# ========================================================== # ==========================================================
# EXTERNAL WALLS (INSTANCED) # EXTERNAL WALLS (INSTANCED)
# ========================================================== # ==========================================================
"EXTWALLSTR": ElementMapping( "EXTWALLSTR": ElementMapping(
element=ElementType.EXTERNAL_WALL, elementType=ElementType.EXTERNAL_WALL,
aspect_type=AspectType.STRUCTURE, aspect_type=AspectType.STRUCTURE,
element_instance=1, element_instance=1,
), ),
"EXTWALLFN1": ElementMapping( "EXTWALLFN1": ElementMapping(
element=ElementType.EXTERNAL_WALL, elementType=ElementType.EXTERNAL_WALL,
aspect_type=AspectType.FINISH, aspect_type=AspectType.FINISH,
element_instance=1, element_instance=1,
), ),
"EXTWALLFN2": ElementMapping( "EXTWALLFN2": ElementMapping(
element=ElementType.EXTERNAL_WALL, elementType=ElementType.EXTERNAL_WALL,
aspect_type=AspectType.FINISH, aspect_type=AspectType.FINISH,
element_instance=1, element_instance=1,
aspect_instance=2, aspect_instance=2,
), ),
"EXTWALLINS": ElementMapping( "EXTWALLINS": ElementMapping(
element=ElementType.EXTERNAL_WALL, elementType=ElementType.EXTERNAL_WALL,
aspect_type=AspectType.INSULATION, aspect_type=AspectType.INSULATION,
), ),
"EXTWALLSPL": ElementMapping( "EXTWALLSPL": ElementMapping(
element=ElementType.EXTERNAL_WALL, elementType=ElementType.EXTERNAL_WALL,
aspect_type=AspectType.CONDITION, aspect_type=AspectType.CONDITION,
), ),
"EXTDWNPTYP": ElementMapping( "EXTDWNPTYP": ElementMapping(
element=ElementType.DOWNPIPES, elementType=ElementType.DOWNPIPES,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
"EXTGUTRTYP": ElementMapping( "EXTGUTRTYP": ElementMapping(
element=ElementType.GUTTERS, elementType=ElementType.GUTTERS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
# ========================================================== # ==========================================================
# EXTERNAL ROOFS (INSTANCED) # EXTERNAL ROOFS (INSTANCED)
# ========================================================== # ==========================================================
"EXTRFSTR1": ElementMapping( "EXTRFSTR1": ElementMapping(
element=ElementType.ROOF, elementType=ElementType.ROOF,
aspect_type=AspectType.STRUCTURE, aspect_type=AspectType.STRUCTURE,
element_instance=1, element_instance=1,
), ),
"EXTRFSTR2": ElementMapping( "EXTRFSTR2": ElementMapping(
element=ElementType.ROOF, elementType=ElementType.ROOF,
aspect_type=AspectType.STRUCTURE, aspect_type=AspectType.STRUCTURE,
element_instance=2, element_instance=2,
), ),
"EXTRFSTR3": ElementMapping( "EXTRFSTR3": ElementMapping(
element=ElementType.ROOF, elementType=ElementType.ROOF,
aspect_type=AspectType.STRUCTURE, aspect_type=AspectType.STRUCTURE,
element_instance=3, element_instance=3,
), ),
"EXTROOF1": ElementMapping( "EXTROOF1": ElementMapping(
element=ElementType.ROOF, elementType=ElementType.ROOF,
aspect_type=AspectType.COVERING, aspect_type=AspectType.COVERING,
element_instance=1, element_instance=1,
), ),
"EXTROOF2": ElementMapping( "EXTROOF2": ElementMapping(
element=ElementType.ROOF, elementType=ElementType.ROOF,
aspect_type=AspectType.COVERING, aspect_type=AspectType.COVERING,
element_instance=2, element_instance=2,
), ),
"EXTROOF3": ElementMapping( "EXTROOF3": ElementMapping(
element=ElementType.ROOF, elementType=ElementType.ROOF,
aspect_type=AspectType.COVERING, aspect_type=AspectType.COVERING,
element_instance=3, element_instance=3,
), ),
"EXTCHIMNEY": ElementMapping( "EXTCHIMNEY": ElementMapping(
element=ElementType.CHIMNEY, elementType=ElementType.CHIMNEY,
aspect_type=AspectType.WORK_REQUIRED, aspect_type=AspectType.WORK_REQUIRED,
), ),
"EXTFASOFBR": ElementMapping( "EXTFASOFBR": ElementMapping(
element=ElementType.FASCIA_SOFFIT_BARGEBOARDS, elementType=ElementType.FASCIA_SOFFIT_BARGEBOARDS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
"EXTGARROOF": ElementMapping( "EXTGARROOF": ElementMapping(
element=ElementType.GARAGE_ROOF, elementType=ElementType.GARAGE_ROOF,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
"EXTGARSTRF": ElementMapping( "EXTGARSTRF": ElementMapping(
element=ElementType.GARAGE_AND_STORE_ROOF, elementType=ElementType.GARAGE_AND_STORE_ROOF,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
"EXTSTRROOF": ElementMapping( "EXTSTRROOF": ElementMapping(
element=ElementType.STORE_ROOF, elementType=ElementType.STORE_ROOF,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
"INTLOFTINS": ElementMapping( "INTLOFTINS": ElementMapping(
element=ElementType.LOFT_INSULATION, elementType=ElementType.LOFT_INSULATION,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
# ========================================================== # ==========================================================
# EXTERNAL DOORS & WINDOWS # EXTERNAL DOORS & WINDOWS
# ========================================================== # ==========================================================
"INTFRDOOR": ElementMapping( "INTFRDOOR": ElementMapping(
element=ElementType.EXTERNAL_DOOR, elementType=ElementType.EXTERNAL_DOOR,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
"INTFRDRFRR": ElementMapping( "INTFRDRFRR": ElementMapping(
element=ElementType.EXTERNAL_DOOR, elementType=ElementType.EXTERNAL_DOOR,
aspect_type=AspectType.FIRE_RATING, aspect_type=AspectType.FIRE_RATING,
), ),
"EXTBKSDDR1": ElementMapping( "EXTBKSDDR1": ElementMapping(
element=ElementType.EXTERNAL_DOOR, elementType=ElementType.EXTERNAL_DOOR,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
element_instance=1, element_instance=1,
), ),
"EXTBKSDDR2": ElementMapping( "EXTBKSDDR2": ElementMapping(
element=ElementType.EXTERNAL_DOOR, elementType=ElementType.EXTERNAL_DOOR,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
element_instance=2, element_instance=2,
), ),
"INTWDWTYPE": ElementMapping( "INTWDWTYPE": ElementMapping(
element=ElementType.EXTERNAL_WINDOWS, elementType=ElementType.EXTERNAL_WINDOWS,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
"EXTWNDWS1": ElementMapping( "EXTWNDWS1": ElementMapping(
element=ElementType.EXTERNAL_WINDOWS, elementType=ElementType.EXTERNAL_WINDOWS,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
element_instance=1, element_instance=1,
), ),
"EXTWNDWS2": ElementMapping( "EXTWNDWS2": ElementMapping(
element=ElementType.EXTERNAL_WINDOWS, elementType=ElementType.EXTERNAL_WINDOWS,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
element_instance=2, element_instance=2,
), ),
"EXTGARDOOR": ElementMapping( "EXTGARDOOR": ElementMapping(
element=ElementType.GARAGE_DOOR, elementType=ElementType.GARAGE_DOOR,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
"EXTGARSTDR": ElementMapping( "EXTGARSTDR": ElementMapping(
element=ElementType.GARAGE_AND_STORE_DOOR, elementType=ElementType.GARAGE_AND_STORE_DOOR,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
"EXTSTRDOOR": ElementMapping( "EXTSTRDOOR": ElementMapping(
element=ElementType.STORE_DOOR, elementType=ElementType.STORE_DOOR,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
"EXTGARWDWS": ElementMapping( "EXTGARWDWS": ElementMapping(
element=ElementType.GARAGE_WINDOWS, elementType=ElementType.GARAGE_WINDOWS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
"EXTSTRWDWS": ElementMapping( "EXTSTRWDWS": ElementMapping(
element=ElementType.STORE_WINDOWS, elementType=ElementType.STORE_WINDOWS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
"EXTGARSTWD": ElementMapping( "EXTGARSTWD": ElementMapping(
element=ElementType.GARAGE_AND_STORE_WINDOWS, elementType=ElementType.GARAGE_AND_STORE_WINDOWS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
"EXTLINTELS": ElementMapping( "EXTLINTELS": ElementMapping(
element=ElementType.LINTEL, elementType=ElementType.LINTEL,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
"EXTPTFRDR1": ElementMapping( "EXTPTFRDR1": ElementMapping(
element=ElementType.PATIO_FRENCH_DOOR, elementType=ElementType.PATIO_FRENCH_DOOR,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
element_instance=1, element_instance=1,
), ),
@ -323,217 +323,217 @@ LBWF_ELEMENT_MAP: dict[str, ElementMapping] = {
# EXTERNAL AREAS # EXTERNAL AREAS
# ========================================================== # ==========================================================
"EXTBALCONY": ElementMapping( "EXTBALCONY": ElementMapping(
element=ElementType.PRIVATE_BALCONY, elementType=ElementType.PRIVATE_BALCONY,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
"EXTBPOINTG": ElementMapping( "EXTBPOINTG": ElementMapping(
element=ElementType.EXTERNAL_BRICKWORK_POINTING, elementType=ElementType.EXTERNAL_BRICKWORK_POINTING,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
"EXTDRPKERB": ElementMapping( "EXTDRPKERB": ElementMapping(
element=ElementType.DROP_KERB, elementType=ElementType.DROP_KERB,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
"EXTEXTDECS": ElementMapping( "EXTEXTDECS": ElementMapping(
element=ElementType.EXTERNAL_DECORATION, elementType=ElementType.EXTERNAL_DECORATION,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
"EXTHARDSTD": ElementMapping( "EXTHARDSTD": ElementMapping(
element=ElementType.PATHS_AND_HARDSTANDINGS, elementType=ElementType.PATHS_AND_HARDSTANDINGS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
"EXTINTDWNP": ElementMapping( "EXTINTDWNP": ElementMapping(
element=ElementType.INTERNAL_DOWNPIPES_EXTERNAL_AREA, elementType=ElementType.INTERNAL_DOWNPIPES_EXTERNAL_AREA,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
"EXTOUTBOH": ElementMapping( "EXTOUTBOH": ElementMapping(
element=ElementType.OUTBUILDING_OVERHAUL, elementType=ElementType.OUTBUILDING_OVERHAUL,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
"EXTPARKING": ElementMapping( "EXTPARKING": ElementMapping(
element=ElementType.PARKING_AREAS, elementType=ElementType.PARKING_AREAS,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
"EXTPCHCNPY": ElementMapping( "EXTPCHCNPY": ElementMapping(
element=ElementType.PORCH_CANOPY, elementType=ElementType.PORCH_CANOPY,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
"EXTSTRINSP": ElementMapping( "EXTSTRINSP": ElementMapping(
element=ElementType.EXTERNAL_STRUCTURAL_DEFECTS, elementType=ElementType.EXTERNAL_STRUCTURAL_DEFECTS,
aspect_type=AspectType.TYPE, # Need more sample data to know whether this is the correct aspect type aspect_type=AspectType.TYPE, # Need more sample data to know whether this is the correct aspect type
), ),
"INTACCRAMP": ElementMapping( "INTACCRAMP": ElementMapping(
element=ElementType.ACCESS_RAMP, elementType=ElementType.ACCESS_RAMP,
aspect_type=AspectType.TYPE, # # Need more sample data to know whether this is the correct aspect type aspect_type=AspectType.TYPE, # # Need more sample data to know whether this is the correct aspect type
), ),
# ====================== # ======================
# FITNESS FOR HUMAN HABITATION # FITNESS FOR HUMAN HABITATION
# ====================== # ======================
"FFHHDAMP": ElementMapping( "FFHHDAMP": ElementMapping(
element=ElementType.FFHH_DAMP, elementType=ElementType.FFHH_DAMP,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"FFHHHCWAT": ElementMapping( "FFHHHCWAT": ElementMapping(
element=ElementType.FFHH_HOT_AND_COLD_WATER, elementType=ElementType.FFHH_HOT_AND_COLD_WATER,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"FFHHDRNWC": ElementMapping( "FFHHDRNWC": ElementMapping(
element=ElementType.FFHH_DRAINAGE_LAVATORIES, elementType=ElementType.FFHH_DRAINAGE_LAVATORIES,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"FFHHNEGLC": ElementMapping( "FFHHNEGLC": ElementMapping(
element=ElementType.FFHH_NEGLECTED, elementType=ElementType.FFHH_NEGLECTED,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"FFHHNONAT": ElementMapping( "FFHHNONAT": ElementMapping(
element=ElementType.FFHH_NATURAL_LIGHT, elementType=ElementType.FFHH_NATURAL_LIGHT,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"FFHHNOVEN": ElementMapping( "FFHHNOVEN": ElementMapping(
element=ElementType.FFHH_VENTILATION, elementType=ElementType.FFHH_VENTILATION,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"FFHHPRPCK": ElementMapping( "FFHHPRPCK": ElementMapping(
element=ElementType.FFHH_FOOD_PREP_AND_WASHUP, elementType=ElementType.FFHH_FOOD_PREP_AND_WASHUP,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"FFHHUNLAY": ElementMapping( "FFHHUNLAY": ElementMapping(
element=ElementType.FFHH_UNSAFE_LAYOUT, elementType=ElementType.FFHH_UNSAFE_LAYOUT,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"FFHHUNSTA": ElementMapping( "FFHHUNSTA": ElementMapping(
element=ElementType.FFHH_UNSTABLE_BUILDING, elementType=ElementType.FFHH_UNSTABLE_BUILDING,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
# ========================================================== # ==========================================================
# HHSRS # HHSRS
# ========================================================== # ==========================================================
"HHSRSDAMP": ElementMapping( "HHSRSDAMP": ElementMapping(
element=ElementType.HHSRS_DAMP_AND_MOULD, elementType=ElementType.HHSRS_DAMP_AND_MOULD,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSCOLD": ElementMapping( "HHSRSCOLD": ElementMapping(
element=ElementType.HHSRS_EXCESS_COLD, elementType=ElementType.HHSRS_EXCESS_COLD,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSHEAT": ElementMapping( "HHSRSHEAT": ElementMapping(
element=ElementType.HHSRS_EXCESS_HEAT, elementType=ElementType.HHSRS_EXCESS_HEAT,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSASB": ElementMapping( "HHSRSASB": ElementMapping(
element=ElementType.HHSRS_ASBESTOS_AND_MMF, elementType=ElementType.HHSRS_ASBESTOS_AND_MMF,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSBIOC": ElementMapping( "HHSRSBIOC": ElementMapping(
element=ElementType.HHSRS_BIOCIDES, elementType=ElementType.HHSRS_BIOCIDES,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSCO": ElementMapping( "HHSRSCO": ElementMapping(
element=ElementType.HHSRS_CARBON_MONOXIDE, elementType=ElementType.HHSRS_CARBON_MONOXIDE,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSNO2": ElementMapping( "HHSRSNO2": ElementMapping(
element=ElementType.HHSRS_CARBON_MONOXIDE, elementType=ElementType.HHSRS_CARBON_MONOXIDE,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), # Duplicate of HHSRSCO; I think they relate to the same HHSRS hazard ), # Duplicate of HHSRSCO; I think they relate to the same HHSRS hazard
"HHSRSSO2": ElementMapping( "HHSRSSO2": ElementMapping(
element=ElementType.HHSRS_CARBON_MONOXIDE, elementType=ElementType.HHSRS_CARBON_MONOXIDE,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), # Duplicate of HHSRSCO; I think they relate to the same HHSRS hazard ), # Duplicate of HHSRSCO; I think they relate to the same HHSRS hazard
"HHSRSLEAD": ElementMapping( "HHSRSLEAD": ElementMapping(
element=ElementType.HHSRS_LEAD, elementType=ElementType.HHSRS_LEAD,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSRADIA": ElementMapping( "HHSRSRADIA": ElementMapping(
element=ElementType.HHSRS_RADIATION, elementType=ElementType.HHSRS_RADIATION,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSFUEL": ElementMapping( "HHSRSFUEL": ElementMapping(
element=ElementType.HHSRS_UNCOMBUSTED_FUEL_GAS, elementType=ElementType.HHSRS_UNCOMBUSTED_FUEL_GAS,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSORGAN": ElementMapping( "HHSRSORGAN": ElementMapping(
element=ElementType.HHSRS_VOLATILE_ORGANIC_COMPOUNDS, elementType=ElementType.HHSRS_VOLATILE_ORGANIC_COMPOUNDS,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSCROWD": ElementMapping( "HHSRSCROWD": ElementMapping(
element=ElementType.HHSRS_CROWDING_AND_SPACE, elementType=ElementType.HHSRS_CROWDING_AND_SPACE,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSENTRY": ElementMapping( "HHSRSENTRY": ElementMapping(
element=ElementType.HHSRS_ENTRY_BY_INTRUDERS, elementType=ElementType.HHSRS_ENTRY_BY_INTRUDERS,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSLIGHT": ElementMapping( "HHSRSLIGHT": ElementMapping(
element=ElementType.HHSRS_LIGHTING, elementType=ElementType.HHSRS_LIGHTING,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSNOISE": ElementMapping( "HHSRSNOISE": ElementMapping(
element=ElementType.HHSRS_NOISE, elementType=ElementType.HHSRS_NOISE,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSDOMES": ElementMapping( "HHSRSDOMES": ElementMapping(
element=ElementType.HHSRS_DOMESTIC_HYGIENE_PESTS_REFUSE, elementType=ElementType.HHSRS_DOMESTIC_HYGIENE_PESTS_REFUSE,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSFOOD": ElementMapping( "HHSRSFOOD": ElementMapping(
element=ElementType.HHSRS_FOOD_SAFETY, elementType=ElementType.HHSRS_FOOD_SAFETY,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSPERS": ElementMapping( "HHSRSPERS": ElementMapping(
element=ElementType.HHSRS_PERSONAL_HYGIENE_SANITATION, elementType=ElementType.HHSRS_PERSONAL_HYGIENE_SANITATION,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSWATER": ElementMapping( "HHSRSWATER": ElementMapping(
element=ElementType.HHSRS_WATER_SUPPLY, elementType=ElementType.HHSRS_WATER_SUPPLY,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSFBATH": ElementMapping( "HHSRSFBATH": ElementMapping(
element=ElementType.HHSRS_FALLS_ASSOCIATED_WITH_BATHS, elementType=ElementType.HHSRS_FALLS_ASSOCIATED_WITH_BATHS,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSFLEVE": ElementMapping( "HHSRSFLEVE": ElementMapping(
element=ElementType.HHSRS_FALLS_ON_LEVEL_SURFACES, elementType=ElementType.HHSRS_FALLS_ON_LEVEL_SURFACES,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSFSTAI": ElementMapping( "HHSRSFSTAI": ElementMapping(
element=ElementType.HHSRS_FALLS_ON_STAIRS, elementType=ElementType.HHSRS_FALLS_ON_STAIRS,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSFBETW": ElementMapping( "HHSRSFBETW": ElementMapping(
element=ElementType.HHSRS_FALLS_BETWEEN_LEVELS, elementType=ElementType.HHSRS_FALLS_BETWEEN_LEVELS,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSELEC": ElementMapping( "HHSRSELEC": ElementMapping(
element=ElementType.HHSRS_ELECTRICAL_HAZARDS, elementType=ElementType.HHSRS_ELECTRICAL_HAZARDS,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSFIRE": ElementMapping( "HHSRSFIRE": ElementMapping(
element=ElementType.HHSRS_FIRE, elementType=ElementType.HHSRS_FIRE,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSFLAME": ElementMapping( "HHSRSFLAME": ElementMapping(
element=ElementType.HHSRS_FLAMES_HOT_SURFACES, elementType=ElementType.HHSRS_FLAMES_HOT_SURFACES,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSENTRP": ElementMapping( "HHSRSENTRP": ElementMapping(
element=ElementType.HHSRS_COLLISION_AND_ENTRAPMENT, elementType=ElementType.HHSRS_COLLISION_AND_ENTRAPMENT,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSEXPLO": ElementMapping( "HHSRSEXPLO": ElementMapping(
element=ElementType.HHSRS_EXPLOSIONS, elementType=ElementType.HHSRS_EXPLOSIONS,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSSTRUC": ElementMapping( "HHSRSSTRUC": ElementMapping(
element=ElementType.HHSRS_STRUCTURAL_COLLAPSE, elementType=ElementType.HHSRS_STRUCTURAL_COLLAPSE,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSCLOW": ElementMapping( "HHSRSCLOW": ElementMapping(
element=ElementType.HHSRS_COLLISION_AND_ENTRAPMENT, elementType=ElementType.HHSRS_COLLISION_AND_ENTRAPMENT,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
"HHSRSPOSI": ElementMapping( "HHSRSPOSI": ElementMapping(
element=ElementType.HHSRS_AMENITIES, elementType=ElementType.HHSRS_AMENITIES,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
} }

View file

@ -36,7 +36,7 @@ class LbwfMapper(Mapper):
) )
element_key = ( element_key = (
element_mapping.element, element_mapping.elementType,
element_mapping.element_instance or 1, element_mapping.element_instance or 1,
) )

View file

@ -7,660 +7,663 @@ PEABODY_ELEMENT_MAP = {
# ========================================================== # ==========================================================
# PROPERTY / GENERAL # PROPERTY / GENERAL
# ========================================================== # ==========================================================
(100, 1): ElementMapping(element=ElementType.PROPERTY, aspect_type=AspectType.TYPE), (100, 1): ElementMapping(
elementType=ElementType.PROPERTY, aspect_type=AspectType.TYPE
),
# (100, 3): ElementMapping(element=Element.PROPERTY, aspect_type=AspectType.AGE), # (100, 3): ElementMapping(element=Element.PROPERTY, aspect_type=AspectType.AGE),
# (100, 14): ElementMapping(element="property", aspect_type="construction_type"), # (100, 14): ElementMapping(element="property", aspect_type="construction_type"),
(50, 2): ElementMapping( (50, 2): ElementMapping(
element=ElementType.CARBON_MONOXIDE_DETECTION, aspect_type=AspectType.TYPE elementType=ElementType.CARBON_MONOXIDE_DETECTION, aspect_type=AspectType.TYPE
), ),
(50, 3): ElementMapping(element=ElementType.CCU, aspect_type=AspectType.TYPE), (50, 3): ElementMapping(elementType=ElementType.CCU, aspect_type=AspectType.TYPE),
(50, 7): ElementMapping( (50, 7): ElementMapping(
element=ElementType.DISABLED_HOIST_TRACKING, aspect_type=AspectType.PRESENCE elementType=ElementType.DISABLED_HOIST_TRACKING, aspect_type=AspectType.PRESENCE
), ),
(50, 11): ElementMapping( (50, 11): ElementMapping(
element=ElementType.HEAT_DETECTION, aspect_type=AspectType.TYPE elementType=ElementType.HEAT_DETECTION, aspect_type=AspectType.TYPE
), ),
(50, 21): ElementMapping( (50, 21): ElementMapping(
element=ElementType.SMOKE_DETECTION, aspect_type=AspectType.TYPE elementType=ElementType.SMOKE_DETECTION, aspect_type=AspectType.TYPE
), ),
(50, 22): ElementMapping( (50, 22): ElementMapping(
element=ElementType.STAIRLIFT, aspect_type=AspectType.PRESENCE elementType=ElementType.STAIRLIFT, aspect_type=AspectType.PRESENCE
), ),
(50, 26): ElementMapping( (50, 26): ElementMapping(
element=ElementType.DISABLED_FACILITIES, aspect_type=AspectType.TYPE elementType=ElementType.DISABLED_FACILITIES, aspect_type=AspectType.TYPE
), ),
(100, 3): ElementMapping( (100, 3): ElementMapping(
element=ElementType.PROPERTY, aspect_type=AspectType.AGE_BAND elementType=ElementType.PROPERTY, aspect_type=AspectType.AGE_BAND
), ),
(100, 14): ElementMapping( (100, 14): ElementMapping(
element=ElementType.PROPERTY, aspect_type=AspectType.CONSTRUCTION_TYPE elementType=ElementType.PROPERTY, aspect_type=AspectType.CONSTRUCTION_TYPE
), ),
(100, 16): ElementMapping( (100, 16): ElementMapping(
element=ElementType.PROPERTY, aspect_type=AspectType.CLASSIFICATION elementType=ElementType.PROPERTY, aspect_type=AspectType.CLASSIFICATION
), ),
(210, 2): ElementMapping( (210, 2): ElementMapping(
element=ElementType.PASSENGER_LIFT, aspect_type=AspectType.TYPE elementType=ElementType.PASSENGER_LIFT, aspect_type=AspectType.TYPE
), ),
# ========================================================== # ==========================================================
# EXTERNAL WALLS # EXTERNAL WALLS
# ========================================================== # ==========================================================
(50, 16): ElementMapping( (50, 16): ElementMapping(
element=ElementType.PARTY_WALL_FIRE_BREAK, aspect_type=AspectType.PRESENCE elementType=ElementType.PARTY_WALL_FIRE_BREAK, aspect_type=AspectType.PRESENCE
), ),
(53, 1): ElementMapping( (53, 1): ElementMapping(
element=ElementType.BOUNDARY_WALLS, aspect_type=AspectType.PRESENCE elementType=ElementType.BOUNDARY_WALLS, aspect_type=AspectType.PRESENCE
), ),
(53, 4): ElementMapping( (53, 4): ElementMapping(
element=ElementType.EXTERNAL_DECORATION, aspect_type=AspectType.PRESENCE elementType=ElementType.EXTERNAL_DECORATION, aspect_type=AspectType.PRESENCE
), ),
(53, 5): ElementMapping( (53, 5): ElementMapping(
element=ElementType.EXTERNAL_NOISE_INSULATION, aspect_type=AspectType.ADEQUACY elementType=ElementType.EXTERNAL_NOISE_INSULATION,
aspect_type=AspectType.ADEQUACY,
), ),
(53, 14): ElementMapping( (53, 14): ElementMapping(
element=ElementType.GARAGE_WALLS, aspect_type=AspectType.MATERIAL elementType=ElementType.GARAGE_WALLS, aspect_type=AspectType.MATERIAL
), ),
(53, 23): ElementMapping( (53, 23): ElementMapping(
element=ElementType.EXTERNAL_WALL, aspect_type=AspectType.FINISH elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.FINISH
), ),
(53, 30): ElementMapping( (53, 30): ElementMapping(
element=ElementType.EXTERNAL_WALL, elementType=ElementType.EXTERNAL_WALL,
aspect_type=AspectType.FINISH, aspect_type=AspectType.FINISH,
aspect_instance=2, aspect_instance=2,
), ),
(53, 36): ElementMapping( (53, 36): ElementMapping(
element=ElementType.EXTERNAL_WALL, aspect_type=AspectType.INSULATION elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.INSULATION
), ),
(53, 40): ElementMapping( (53, 40): ElementMapping(
element=ElementType.SPANDREL_PANELS, aspect_type=AspectType.MATERIAL elementType=ElementType.SPANDREL_PANELS, aspect_type=AspectType.MATERIAL
), ),
(53, 41): ElementMapping( (53, 41): ElementMapping(
element=ElementType.CLADDING, aspect_type=AspectType.MATERIAL elementType=ElementType.CLADDING, aspect_type=AspectType.MATERIAL
), ),
(100, 15): ElementMapping( (100, 15): ElementMapping(
element=ElementType.EXTERNAL_DECORATION, aspect_type=AspectType.CONDITION elementType=ElementType.EXTERNAL_DECORATION, aspect_type=AspectType.CONDITION
), ),
(120, 1): ElementMapping( (120, 1): ElementMapping(
element=ElementType.EXTERNAL_WALL, aspect_type=AspectType.STRUCTURE elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.STRUCTURE
), ),
(120, 2): ElementMapping( (120, 2): ElementMapping(
element=ElementType.EXTERNAL_WALL, aspect_type=AspectType.FINISH elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.FINISH
), ),
(120, 3): ElementMapping( (120, 3): ElementMapping(
element=ElementType.EXTERNAL_WALL, aspect_type=AspectType.INSULATION elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.INSULATION
), ),
# ========================================================== # ==========================================================
# EXTERNAL ROOFS # EXTERNAL ROOFS
# ========================================================== # ==========================================================
(50, 15): ElementMapping( (50, 15): ElementMapping(
element=ElementType.LOFT_INSULATION, elementType=ElementType.LOFT_INSULATION,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(53, 2): ElementMapping( (53, 2): ElementMapping(
element=ElementType.CHIMNEY, elementType=ElementType.CHIMNEY,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(53, 6): ElementMapping( (53, 6): ElementMapping(
element=ElementType.FASCIA_SOFFIT_BARGEBOARDS, elementType=ElementType.FASCIA_SOFFIT_BARGEBOARDS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(53, 7): ElementMapping( (53, 7): ElementMapping(
element=ElementType.FLAT_ROOF_COVERING, elementType=ElementType.FLAT_ROOF_COVERING,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(53, 13): ElementMapping( (53, 13): ElementMapping(
element=ElementType.GARAGE_ROOF, elementType=ElementType.GARAGE_ROOF,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(53, 15): ElementMapping( (53, 15): ElementMapping(
element=ElementType.GUTTERS, elementType=ElementType.GUTTERS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(53, 21): ElementMapping( (53, 21): ElementMapping(
element=ElementType.PITCHED_ROOF_COVERING, elementType=ElementType.PITCHED_ROOF_COVERING,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(53, 22): ElementMapping( (53, 22): ElementMapping(
element=ElementType.PORCH_CANOPY, elementType=ElementType.PORCH_CANOPY,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(53, 47): ElementMapping( (53, 47): ElementMapping(
element=ElementType.ROOF, elementType=ElementType.ROOF,
aspect_type=AspectType.STRUCTURE, aspect_type=AspectType.STRUCTURE,
), ),
(110, 1): ElementMapping( (110, 1): ElementMapping(
element=ElementType.ROOF, elementType=ElementType.ROOF,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
element_instance=1, element_instance=1,
), ),
(110, 2): ElementMapping( (110, 2): ElementMapping(
element=ElementType.ROOF, elementType=ElementType.ROOF,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
element_instance=1, element_instance=1,
), ),
(110, 3): ElementMapping( (110, 3): ElementMapping(
element=ElementType.CHIMNEY, elementType=ElementType.CHIMNEY,
aspect_type=AspectType.WORK_REQUIRED, aspect_type=AspectType.WORK_REQUIRED,
), ),
(110, 4): ElementMapping( (110, 4): ElementMapping(
element=ElementType.FASCIA, elementType=ElementType.FASCIA,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(110, 5): ElementMapping( (110, 5): ElementMapping(
element=ElementType.SOFFIT, elementType=ElementType.SOFFIT,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(110, 6): ElementMapping( (110, 6): ElementMapping(
element=ElementType.RAINWATER_GOODS, elementType=ElementType.RAINWATER_GOODS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(110, 7): ElementMapping( (110, 7): ElementMapping(
element=ElementType.LOFT_INSULATION, elementType=ElementType.LOFT_INSULATION,
aspect_type=AspectType.WORK_REQUIRED, # possibly not the right aspect type aspect_type=AspectType.WORK_REQUIRED, # possibly not the right aspect type
), ),
(110, 8): ElementMapping( (110, 8): ElementMapping(
element=ElementType.PORCH_CANOPY, elementType=ElementType.PORCH_CANOPY,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
# ========================================================== # ==========================================================
# EXTERNAL DOORS & WINDOWS # EXTERNAL DOORS & WINDOWS
# ========================================================== # ==========================================================
(50, 8): ElementMapping( (50, 8): ElementMapping(
element=ElementType.DOOR_ENTRY_HANDSET, elementType=ElementType.DOOR_ENTRY_HANDSET,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(53, 8): ElementMapping( (53, 8): ElementMapping(
element=ElementType.FRONT_DOOR, elementType=ElementType.FRONT_DOOR,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(53, 12): ElementMapping( (53, 12): ElementMapping(
element=ElementType.GARAGE_DOOR, elementType=ElementType.GARAGE_DOOR,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(53, 16): ElementMapping( (53, 16): ElementMapping(
element=ElementType.LINTEL, elementType=ElementType.LINTEL,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(53, 19): ElementMapping( (53, 19): ElementMapping(
element=ElementType.PATIO_FRENCH_DOOR, elementType=ElementType.PATIO_FRENCH_DOOR,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(53, 25): ElementMapping( (53, 25): ElementMapping(
element=ElementType.REAR_DOOR, elementType=ElementType.REAR_DOOR,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(53, 29): ElementMapping( (53, 29): ElementMapping(
element=ElementType.SECONDARY_GLAZING, elementType=ElementType.SECONDARY_GLAZING,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(53, 35): ElementMapping( (53, 35): ElementMapping(
element=ElementType.STORE_DOOR, elementType=ElementType.STORE_DOOR,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(53, 38): ElementMapping( (53, 38): ElementMapping(
element=ElementType.EXTERNAL_WINDOWS, elementType=ElementType.EXTERNAL_WINDOWS,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
element_instance=1, element_instance=1,
), ),
(53, 39): ElementMapping( (53, 39): ElementMapping(
element=ElementType.EXTERNAL_WINDOWS, elementType=ElementType.EXTERNAL_WINDOWS,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
element_instance=2, element_instance=2,
), ),
(53, 43): ElementMapping( (53, 43): ElementMapping(
element=ElementType.FRONT_DOOR, elementType=ElementType.FRONT_DOOR,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(130, 1): ElementMapping( (130, 1): ElementMapping(
element=ElementType.EXTERNAL_WINDOWS, elementType=ElementType.EXTERNAL_WINDOWS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(130, 2): ElementMapping( (130, 2): ElementMapping(
element=ElementType.COMMUNAL_WINDOWS, elementType=ElementType.COMMUNAL_WINDOWS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(140, 1): ElementMapping( (140, 1): ElementMapping(
element=ElementType.MAIN_DOOR, elementType=ElementType.MAIN_DOOR,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(140, 2): ElementMapping( (140, 2): ElementMapping(
element=ElementType.STORE_DOOR, elementType=ElementType.STORE_DOOR,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), # Duplicate of (53, 35) ), # Duplicate of (53, 35)
(140, 3): ElementMapping( (140, 3): ElementMapping(
element=ElementType.GARAGE_DOOR, elementType=ElementType.GARAGE_DOOR,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), # Duplicate of (53, 12) ), # Duplicate of (53, 12)
(140, 4): ElementMapping( (140, 4): ElementMapping(
element=ElementType.BLOCK_ENTRANCE_DOOR, elementType=ElementType.BLOCK_ENTRANCE_DOOR,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
# ========================================================== # ==========================================================
# EXTERNAL AREAS # EXTERNAL AREAS
# ========================================================== # ==========================================================
(53, 3): ElementMapping( (53, 3): ElementMapping(
element=ElementType.DOWNPIPES, elementType=ElementType.DOWNPIPES,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(53, 9): ElementMapping( (53, 9): ElementMapping(
element=ElementType.FRONT_FENCING, elementType=ElementType.FRONT_FENCING,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(53, 10): ElementMapping( (53, 10): ElementMapping(
element=ElementType.FRONT_GATE, elementType=ElementType.FRONT_GATE,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(53, 17): ElementMapping( (53, 17): ElementMapping(
element=ElementType.PARKING_AREAS, elementType=ElementType.PARKING_AREAS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(53, 18): ElementMapping( (53, 18): ElementMapping(
element=ElementType.PATHS_AND_HARDSTANDINGS, elementType=ElementType.PATHS_AND_HARDSTANDINGS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(53, 24): ElementMapping( (53, 24): ElementMapping(
element=ElementType.PRIVATE_BALCONY, elementType=ElementType.PRIVATE_BALCONY,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(53, 26): ElementMapping( (53, 26): ElementMapping(
element=ElementType.REAR_FENCING, elementType=ElementType.REAR_FENCING,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(53, 27): ElementMapping( (53, 27): ElementMapping(
element=ElementType.REAR_GATE, elementType=ElementType.REAR_GATE,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(53, 28): ElementMapping( (53, 28): ElementMapping(
element=ElementType.RETAINING_WALLS, elementType=ElementType.RETAINING_WALLS,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(53, 31): ElementMapping( (53, 31): ElementMapping(
element=ElementType.SIDE_FENCING, elementType=ElementType.SIDE_FENCING,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(53, 32): ElementMapping( (53, 32): ElementMapping(
element=ElementType.SOIL_AND_VENT, elementType=ElementType.SOIL_AND_VENT,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(53, 34): ElementMapping( (53, 34): ElementMapping(
element=ElementType.SOLAR_THERMALS, elementType=ElementType.SOLAR_THERMALS,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(53, 44): ElementMapping( (53, 44): ElementMapping(
element=ElementType.GARAGE_STRUCTURE, elementType=ElementType.GARAGE_STRUCTURE,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(53, 45): ElementMapping( (53, 45): ElementMapping(
element=ElementType.BALCONY_BALUSTRADE, elementType=ElementType.BALCONY_BALUSTRADE,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(150, 1): ElementMapping( (150, 1): ElementMapping(
element=ElementType.BLOCK_ENTRANCE_DOOR, elementType=ElementType.BLOCK_ENTRANCE_DOOR,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(150, 2): ElementMapping( (150, 2): ElementMapping(
element=ElementType.PATHS_AND_HARDSTANDINGS, elementType=ElementType.PATHS_AND_HARDSTANDINGS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), # Duplicate of (53, 18) - correct? ), # Duplicate of (53, 18) - correct?
(150, 3): ElementMapping( (150, 3): ElementMapping(
element=ElementType.ROADS, elementType=ElementType.ROADS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(150, 4): ElementMapping( (150, 4): ElementMapping(
element=ElementType.BOUNDARY_WALLS, elementType=ElementType.BOUNDARY_WALLS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(150, 5): ElementMapping( (150, 5): ElementMapping(
element=ElementType.OUTBUILDINGS, elementType=ElementType.OUTBUILDINGS,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(150, 6): ElementMapping( (150, 6): ElementMapping(
element=ElementType.GARAGE_STRUCTURE, elementType=ElementType.GARAGE_STRUCTURE,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
# ========================================================== # ==========================================================
# INTERNAL BATHROOMS & KITCHENS # INTERNAL BATHROOMS & KITCHENS
# ========================================================== # ==========================================================
(50, 1): ElementMapping( (50, 1): ElementMapping(
element=ElementType.SECONDARY_TOILET, elementType=ElementType.SECONDARY_TOILET,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(50, 9): ElementMapping( (50, 9): ElementMapping(
element=ElementType.BATHROOM_EXTRACTOR_FAN, elementType=ElementType.BATHROOM_EXTRACTOR_FAN,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(50, 9): ElementMapping( (50, 9): ElementMapping(
element=ElementType.KITCHEN, elementType=ElementType.KITCHEN,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(50, 10): ElementMapping( (50, 10): ElementMapping(
element=ElementType.KITCHEN_EXTRACTOR_FAN, elementType=ElementType.KITCHEN_EXTRACTOR_FAN,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(50, 13): ElementMapping( (50, 13): ElementMapping(
element=ElementType.KITCHEN_SPACE_LAYOUT, elementType=ElementType.KITCHEN_SPACE_LAYOUT,
aspect_type=AspectType.ADEQUACY, aspect_type=AspectType.ADEQUACY,
), ),
(50, 14): ElementMapping( (50, 14): ElementMapping(
element=ElementType.KITCHEN, elementType=ElementType.KITCHEN,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(50, 17): ElementMapping( (50, 17): ElementMapping(
element=ElementType.BATHROOM, elementType=ElementType.BATHROOM,
aspect_type=AspectType.LOCATION, aspect_type=AspectType.LOCATION,
), ),
(50, 18): ElementMapping( (50, 18): ElementMapping(
element=ElementType.BATHROOM, elementType=ElementType.BATHROOM,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), # Actually "Primary bathroom type" - ok like this? ), # Actually "Primary bathroom type" - ok like this?
(50, 20): ElementMapping( (50, 20): ElementMapping(
element=ElementType.BATHROOM, elementType=ElementType.BATHROOM,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
element_instance=2, element_instance=2,
), # Actually "Secondary bathroom type" - ok like this? ), # Actually "Secondary bathroom type" - ok like this?
(160, 1): ElementMapping( (160, 1): ElementMapping(
element=ElementType.KITCHEN, elementType=ElementType.KITCHEN,
aspect_type=AspectType.CONDITION, aspect_type=AspectType.CONDITION,
), ),
(160, 2): ElementMapping( (160, 2): ElementMapping(
element=ElementType.KITCHEN_SPACE_LAYOUT, elementType=ElementType.KITCHEN_SPACE_LAYOUT,
aspect_type=AspectType.ADEQUACY, aspect_type=AspectType.ADEQUACY,
), ),
(190, 1): ElementMapping( (190, 1): ElementMapping(
element=ElementType.BATHROOM, elementType=ElementType.BATHROOM,
aspect_type=AspectType.CONDITION, aspect_type=AspectType.CONDITION,
), ),
(190, 2): ElementMapping( (190, 2): ElementMapping(
element=ElementType.SECONDARY_TOILET, elementType=ElementType.SECONDARY_TOILET,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
# ========================================================== # ==========================================================
# COMMUNAL # COMMUNAL
# ========================================================== # ==========================================================
(51, 1): ElementMapping( (51, 1): ElementMapping(
element=ElementType.COMMUNAL_AERIAL, elementType=ElementType.COMMUNAL_AERIAL,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 2): ElementMapping( (51, 2): ElementMapping(
element=ElementType.COMMUNAL_AOV, elementType=ElementType.COMMUNAL_AOV,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 3): ElementMapping( (51, 3): ElementMapping(
element=ElementType.COMMUNAL_BALCONY_WALKWAY, elementType=ElementType.COMMUNAL_BALCONY_WALKWAY,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 4): ElementMapping( (51, 4): ElementMapping(
element=ElementType.COMMUNAL_BATHROOM, elementType=ElementType.COMMUNAL_BATHROOM,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(51, 5): ElementMapping( (51, 5): ElementMapping(
element=ElementType.COMMUNAL_BIN_STORE_DOORS, elementType=ElementType.COMMUNAL_BIN_STORE_DOORS,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 6): ElementMapping( (51, 6): ElementMapping(
element=ElementType.COMMUNAL_BIN_STORE_ROOF, elementType=ElementType.COMMUNAL_BIN_STORE_ROOF,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 7): ElementMapping( (51, 7): ElementMapping(
element=ElementType.COMMUNAL_BIN_STORE_WALLS, elementType=ElementType.COMMUNAL_BIN_STORE_WALLS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(51, 8): ElementMapping( (51, 8): ElementMapping(
element=ElementType.COMMUNAL_BMS, elementType=ElementType.COMMUNAL_BMS,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 9): ElementMapping( (51, 9): ElementMapping(
element=ElementType.COMMUNAL_BOILER, elementType=ElementType.COMMUNAL_BOILER,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(51, 10): ElementMapping( (51, 10): ElementMapping(
element=ElementType.COMMUNAL_BOOSTER_PUMP, elementType=ElementType.COMMUNAL_BOOSTER_PUMP,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 11): ElementMapping( (51, 11): ElementMapping(
element=ElementType.COMMUNAL_CCTV, elementType=ElementType.COMMUNAL_CCTV,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 12): ElementMapping( (51, 12): ElementMapping(
element=ElementType.COMMUNAL_CIRCULATION_SPACE, elementType=ElementType.COMMUNAL_CIRCULATION_SPACE,
aspect_type=AspectType.ADEQUACY, aspect_type=AspectType.ADEQUACY,
), ),
(51, 13): ElementMapping( (51, 13): ElementMapping(
element=ElementType.COMMUNAL_COLD_WATER_STORAGE, elementType=ElementType.COMMUNAL_COLD_WATER_STORAGE,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 14): ElementMapping( (51, 14): ElementMapping(
element=ElementType.COMMUNAL_DOOR_ENTRY, elementType=ElementType.COMMUNAL_DOOR_ENTRY,
aspect_type=AspectType.SYSTEM, aspect_type=AspectType.SYSTEM,
), ),
(51, 15): ElementMapping( (51, 15): ElementMapping(
element=ElementType.COMMUNAL_DRY_RISER, elementType=ElementType.COMMUNAL_DRY_RISER,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 16): ElementMapping( (51, 16): ElementMapping(
element=ElementType.COMMUNAL_EMERGENCY_LIGHTING, elementType=ElementType.COMMUNAL_EMERGENCY_LIGHTING,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 17): ElementMapping( (51, 17): ElementMapping(
element=ElementType.COMMUNAL_EXTERNAL_DOORS, elementType=ElementType.COMMUNAL_EXTERNAL_DOORS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(51, 19): ElementMapping( (51, 19): ElementMapping(
element=ElementType.COMMUNAL_FIRE_ALARM, elementType=ElementType.COMMUNAL_FIRE_ALARM,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(51, 20): ElementMapping( (51, 20): ElementMapping(
element=ElementType.COMMUNAL_INTERNAL_DECORATIONS, elementType=ElementType.COMMUNAL_INTERNAL_DECORATIONS,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 21): ElementMapping( (51, 21): ElementMapping(
element=ElementType.COMMUNAL_INTERNAL_DOORS, elementType=ElementType.COMMUNAL_INTERNAL_DOORS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(51, 22): ElementMapping( (51, 22): ElementMapping(
element=ElementType.COMMUNAL_INTERNAL_FLOOR, elementType=ElementType.COMMUNAL_INTERNAL_FLOOR,
aspect_type=AspectType.FINISH, aspect_type=AspectType.FINISH,
), ),
(51, 23): ElementMapping( (51, 23): ElementMapping(
element=ElementType.COMMUNAL_KITCHEN, elementType=ElementType.COMMUNAL_KITCHEN,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(51, 24): ElementMapping( (51, 24): ElementMapping(
element=ElementType.COMMUNAL_LATERAL_MAINS, elementType=ElementType.COMMUNAL_LATERAL_MAINS,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 25): ElementMapping( (51, 25): ElementMapping(
element=ElementType.COMMUNAL_LIGHTING, elementType=ElementType.COMMUNAL_LIGHTING,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 26): ElementMapping( (51, 26): ElementMapping(
element=ElementType.COMMUNAL_LIGHTING_CONDUCTOR, elementType=ElementType.COMMUNAL_LIGHTING_CONDUCTOR,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 27): ElementMapping( (51, 27): ElementMapping(
element=ElementType.COMMUNAL_PASSENGER_LIFT, elementType=ElementType.COMMUNAL_PASSENGER_LIFT,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(51, 28): ElementMapping( (51, 28): ElementMapping(
element=ElementType.COMMUNAL_ENTRANCE, elementType=ElementType.COMMUNAL_ENTRANCE,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
element_instance=1, element_instance=1,
), ),
(51, 30): ElementMapping( (51, 30): ElementMapping(
element=ElementType.COMMUNAL_ENTRANCE, elementType=ElementType.COMMUNAL_ENTRANCE,
aspect_type=AspectType.FINISH, aspect_type=AspectType.FINISH,
element_instance=2, element_instance=2,
), ),
(51, 31): ElementMapping( (51, 31): ElementMapping(
element=ElementType.COMMUNAL_SPRINKLER, elementType=ElementType.COMMUNAL_SPRINKLER,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 29): ElementMapping( (51, 29): ElementMapping(
element=ElementType.COMMUNAL_REFUSE_CHUTE, elementType=ElementType.COMMUNAL_REFUSE_CHUTE,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 32): ElementMapping( (51, 32): ElementMapping(
element=ElementType.COMMUNAL_STAIRS, elementType=ElementType.COMMUNAL_STAIRS,
aspect_type=AspectType.FINISH, aspect_type=AspectType.FINISH,
), ),
(51, 33): ElementMapping( (51, 33): ElementMapping(
element=ElementType.COMMUNAL_STORE_DOORS, elementType=ElementType.COMMUNAL_STORE_DOORS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(51, 34): ElementMapping( (51, 34): ElementMapping(
element=ElementType.COMMUNAL_STORE_ROOF, elementType=ElementType.COMMUNAL_STORE_ROOF,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(51, 35): ElementMapping( (51, 35): ElementMapping(
element=ElementType.COMMUNAL_STORE_WALLS, elementType=ElementType.COMMUNAL_STORE_WALLS,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(51, 36): ElementMapping( (51, 36): ElementMapping(
element=ElementType.COMMUNAL_WALKWAYS, elementType=ElementType.COMMUNAL_WALKWAYS,
aspect_type=AspectType.FINISH, aspect_type=AspectType.FINISH,
), ),
(51, 37): ElementMapping( (51, 37): ElementMapping(
element=ElementType.COMMUNAL_WARDEN_CALL_SYSTEM, elementType=ElementType.COMMUNAL_WARDEN_CALL_SYSTEM,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 38): ElementMapping( (51, 38): ElementMapping(
element=ElementType.COMMUNAL_TOILETS, elementType=ElementType.COMMUNAL_TOILETS,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(51, 39): ElementMapping( (51, 39): ElementMapping(
element=ElementType.COMMUNAL_WET_RISER, elementType=ElementType.COMMUNAL_WET_RISER,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(51, 40): ElementMapping( (51, 40): ElementMapping(
element=ElementType.COMMUNAL_PLUG_SOCKETS, elementType=ElementType.COMMUNAL_PLUG_SOCKETS,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(200, 1): ElementMapping( (200, 1): ElementMapping(
element=ElementType.COMMUNAL_BOILER, elementType=ElementType.COMMUNAL_BOILER,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), # Duplicate of (51, 9) - correct? ), # Duplicate of (51, 9) - correct?
(200, 2): ElementMapping( (200, 2): ElementMapping(
element=ElementType.COMMUNAL_HEATING, elementType=ElementType.COMMUNAL_HEATING,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(200, 3): ElementMapping( (200, 3): ElementMapping(
element=ElementType.COMMUNAL_ELECTRICS, elementType=ElementType.COMMUNAL_ELECTRICS,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(200, 4): ElementMapping( (200, 4): ElementMapping(
element=ElementType.COMMUNAL_FIRE_ALARM, elementType=ElementType.COMMUNAL_FIRE_ALARM,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(200, 5): ElementMapping( (200, 5): ElementMapping(
element=ElementType.COMMUNAL_LIFT, elementType=ElementType.COMMUNAL_LIFT,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(200, 6): ElementMapping( (200, 6): ElementMapping(
element=ElementType.COMMUNAL_FLOOR_COVERING, elementType=ElementType.COMMUNAL_FLOOR_COVERING,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(200, 7): ElementMapping( (200, 7): ElementMapping(
element=ElementType.COMMUNAL_KITCHEN, elementType=ElementType.COMMUNAL_KITCHEN,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(200, 8): ElementMapping( (200, 8): ElementMapping(
element=ElementType.COMMUNAL_BATHROOM, elementType=ElementType.COMMUNAL_BATHROOM,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), # Duplicate of (51, 4) - correct? ), # Duplicate of (51, 4) - correct?
(200, 9): ElementMapping( (200, 9): ElementMapping(
element=ElementType.COMMUNAL_TOILETS, elementType=ElementType.COMMUNAL_TOILETS,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), # Duplicate of (51, 38) - correct? ), # Duplicate of (51, 38) - correct?
(200, 10): ElementMapping( (200, 10): ElementMapping(
element=ElementType.COMMUNAL_GATES, elementType=ElementType.COMMUNAL_GATES,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
# ========================================================== # ==========================================================
# INTERNAL HEATING # INTERNAL HEATING
# ========================================================== # ==========================================================
(50, 4): ElementMapping( (50, 4): ElementMapping(
element=ElementType.HEATING_BOILER, elementType=ElementType.HEATING_BOILER,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), # This is actually "Central heating boiler" - ok like this? ), # This is actually "Central heating boiler" - ok like this?
(50, 5): ElementMapping( (50, 5): ElementMapping(
element=ElementType.CENTRAL_HEATING, elementType=ElementType.CENTRAL_HEATING,
aspect_type=AspectType.EXTENT, aspect_type=AspectType.EXTENT,
), ),
(50, 6): ElementMapping( (50, 6): ElementMapping(
element=ElementType.COLD_WATER_STORAGE, elementType=ElementType.COLD_WATER_STORAGE,
aspect_type=AspectType.PRESENCE, aspect_type=AspectType.PRESENCE,
), ),
(50, 12): ElementMapping( (50, 12): ElementMapping(
element=ElementType.HEATING_DISTRIBUTION, elementType=ElementType.HEATING_DISTRIBUTION,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(50, 19): ElementMapping( (50, 19): ElementMapping(
element=ElementType.PROGRAMMABLE_HEATING, elementType=ElementType.PROGRAMMABLE_HEATING,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(50, 25): ElementMapping( (50, 25): ElementMapping(
element=ElementType.HEATING_BOILER, elementType=ElementType.HEATING_BOILER,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(170, 1): ElementMapping( (170, 1): ElementMapping(
element=ElementType.HEATING_BOILER, elementType=ElementType.HEATING_BOILER,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), # Duplicate of (50,25) - correct? ), # Duplicate of (50,25) - correct?
(170, 2): ElementMapping( (170, 2): ElementMapping(
element=ElementType.HEATING_DISTRIBUTION, elementType=ElementType.HEATING_DISTRIBUTION,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), # Duplicate of (50,12) - correct? ), # Duplicate of (50,12) - correct?
(170, 3): ElementMapping( (170, 3): ElementMapping(
element=ElementType.SECONDARY_HEATING, elementType=ElementType.SECONDARY_HEATING,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(170, 4): ElementMapping( (170, 4): ElementMapping(
element=ElementType.COLD_WATER_STORAGE, elementType=ElementType.COLD_WATER_STORAGE,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(170, 5): ElementMapping( (170, 5): ElementMapping(
element=ElementType.HOT_WATER_SYSTEM, elementType=ElementType.HOT_WATER_SYSTEM,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
# ========================================================== # ==========================================================
# ELECTRICS # ELECTRICS
# ========================================================== # ==========================================================
(50, 24): ElementMapping( (50, 24): ElementMapping(
element=ElementType.INTERNAL_WIRING, elementType=ElementType.INTERNAL_WIRING,
aspect_type=AspectType.MATERIAL, aspect_type=AspectType.MATERIAL,
), ),
(180, 1): ElementMapping( (180, 1): ElementMapping(
element=ElementType.ELECTRICAL_WIRING, elementType=ElementType.ELECTRICAL_WIRING,
aspect_type=AspectType.WORK_REQUIRED, aspect_type=AspectType.WORK_REQUIRED,
), # Not certain about the AspectType - only example in the sample data is "Full Rewire" ), # Not certain about the AspectType - only example in the sample data is "Full Rewire"
(180, 2): ElementMapping( (180, 2): ElementMapping(
element=ElementType.CONSUMER_UNIT, elementType=ElementType.CONSUMER_UNIT,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), ),
(180, 3): ElementMapping( (180, 3): ElementMapping(
element=ElementType.SMOKE_DETECTION, elementType=ElementType.SMOKE_DETECTION,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), # Duplicate of (50, 21) - correct? ), # Duplicate of (50, 21) - correct?
(180, 4): ElementMapping( (180, 4): ElementMapping(
element=ElementType.CARBON_MONOXIDE_DETECTION, elementType=ElementType.CARBON_MONOXIDE_DETECTION,
aspect_type=AspectType.TYPE, aspect_type=AspectType.TYPE,
), # Duplicate of (50, 2) - correct? ), # Duplicate of (50, 2) - correct?
# ========================================================== # ==========================================================
# HHSRS # HHSRS
# ========================================================== # ==========================================================
(54, 1): ElementMapping( (54, 1): ElementMapping(
element=ElementType.HHSRS_DAMP_AND_MOULD, elementType=ElementType.HHSRS_DAMP_AND_MOULD,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
(54, 4): ElementMapping( (54, 4): ElementMapping(
element=ElementType.HHSRS_ASBESTOS_AND_MMF, elementType=ElementType.HHSRS_ASBESTOS_AND_MMF,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
(54, 15): ElementMapping( (54, 15): ElementMapping(
element=ElementType.HHSRS_DOMESTIC_HYGIENE_PESTS_REFUSE, elementType=ElementType.HHSRS_DOMESTIC_HYGIENE_PESTS_REFUSE,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
(54, 29): ElementMapping( (54, 29): ElementMapping(
element=ElementType.HHSRS_STRUCTURAL_COLLAPSE, elementType=ElementType.HHSRS_STRUCTURAL_COLLAPSE,
aspect_type=AspectType.RISK, aspect_type=AspectType.RISK,
), ),
} }

View file

@ -37,7 +37,7 @@ class PeabodyMapper(Mapper):
) )
element_key = ( element_key = (
element_mapping.element, element_mapping.elementType,
element_mapping.element_instance or 1, element_mapping.element_instance or 1,
) )