38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
"""
|
|
Cost base module
|
|
"""
|
|
|
|
from hub.city_model_structure.building import Building
|
|
|
|
from configuration import Configuration
|
|
|
|
|
|
class CostBase:
|
|
"""
|
|
Abstract base class for the costs
|
|
"""
|
|
def __init__(self, building: Building, configuration: Configuration):
|
|
self._building = building
|
|
self._configuration = configuration
|
|
self._total_floor_area = 0
|
|
for internal_zone in building.internal_zones:
|
|
for thermal_zone in internal_zone.thermal_zones:
|
|
self._total_floor_area += thermal_zone.total_floor_area
|
|
self._archetype = None
|
|
for archetype in self._configuration.cost_catalog.entries('archetypes').archetype:
|
|
if str(building.function) == str(archetype.function):
|
|
self._archetype = archetype
|
|
self._capital_costs_chapter = self._archetype.capital_cost
|
|
break
|
|
if not self._archetype:
|
|
raise KeyError('archetype not found')
|
|
|
|
self._capital_costs_chapter = None
|
|
self._rng = range(configuration.number_of_years)
|
|
|
|
def calculate(self):
|
|
"""
|
|
Raises not implemented exception
|
|
"""
|
|
raise NotImplementedError()
|