diff --git a/capital_cost.py b/capital_cost.py index 4e84684..94f659b 100644 --- a/capital_cost.py +++ b/capital_cost.py @@ -4,22 +4,31 @@ SPDX - License - Identifier: LGPL - 3.0 - or -later Copyright © 2022 Project Coder Atiya atiya.atiya@mail.concordia.ca """ -from city_model_structure.city import City + + class CapitalCost: - def __init__(self, city): - self._city = city + def calculate_capital_cost(building_area, building_volume, content): + structural_cost = float(content.costs[0].capital_cost.structural_cost) * building_volume + sub_structural_cost = float(content.costs[0].capital_cost.sub_structural_cost) * building_volume + lighting_cost = float(content.costs[0].capital_cost.lighting_cost) * building_volume + surface_finish_cost = float(content.costs[0].capital_cost.surface_finish_cost) * building_volume + engineer_cost = float(content.costs[0].capital_cost.engineer_cost) * building_volume + envelop_cost = float(content.costs[0].capital_cost.EnvelopCost.reposition) * building_volume + + # system_cost = float(content.costs[0].capital_cost.system_cost) * building_volume + # subsidy = float(content.costs[0].capital_cost.subsidy) * building_volume + + print("structural_cost ", structural_cost) + print("sub_structural_cost ", sub_structural_cost) + print("lighting_cost ", lighting_cost) + print("surface_finish_cost ", surface_finish_cost) + print("engineer_cost ", engineer_cost) + # print("envelop_cost ", envelop_cost) + # print("system_cost ", system_cost) + # print("subsidy ", subsidy) - @property - def city(self) -> City: - return self._city - def calculate_capital_cost(building): - print("calculate_capital_cost called") - for internal_zone in building.internal_zones: - print("volume of the building ", internal_zone.volume) - print("area of the building ", internal_zone.area) # for thermal_zone in internal_zone.thermal_zones: # for thermal_boundary in thermal_zone.thermal_boundaries: # total_opaque_area = [] diff --git a/life_cycle_costs.py b/life_cycle_costs.py index e18046d..144c31a 100644 --- a/life_cycle_costs.py +++ b/life_cycle_costs.py @@ -6,6 +6,7 @@ Copyright © 2022 Project Author Pilar Monsalvete Alvarez de Uribarri pilar_mons import math from capital_cost import CapitalCost + class LifeCycleCosts: # todo: this should be (city, costs_catalog) or similar @@ -25,6 +26,8 @@ class LifeCycleCosts: self._concepts = concepts + + def calculate_capital_costs(self): total_capital_costs = self._capital_costs_at_year_0 for year in range(1, self._number_of_years + 1): @@ -55,5 +58,13 @@ class LifeCycleCosts: total_maintenance_costs += concept.mantainance_costs * costs_increase return total_maintenance_costs - def capital_cost(one_building): - CapitalCost.calculate_capital_cost(one_building) \ No newline at end of file + def capital_cost(one_building, content): + # print(len(one_building.internal_zones)) + building_volume = 0.0 + building_area = 0.0 + for internal_zone in one_building.internal_zones: + building_area += internal_zone.area + building_volume += internal_zone.volume + # print("area of the building ", building_area) + # print("volume of the building ", building_volume) + CapitalCost.calculate_capital_cost(building_area, building_volume, content) \ No newline at end of file diff --git a/main.py b/main.py index 2e0a158..88c3f58 100644 --- a/main.py +++ b/main.py @@ -9,6 +9,8 @@ from imports.geometry_factory import GeometryFactory from capital_cost import CapitalCost from life_cycle_costs import LifeCycleCosts from imports.construction_factory import ConstructionFactory +from catalog_factories.costs_catalog_factory import CostCatalogFactory + gml_file = 'one_building_in_kelowna.gml' file = Path(gml_file).resolve() @@ -18,10 +20,15 @@ ConstructionFactory('nrel', city).enrich() number_of_years = 40 consumer_price_index = 0.1 +catalog = CostCatalogFactory('montreal_catalog').catalog +content = catalog.entries() for building in city.buildings: - print("for building in city.buildings:") - LifeCycleCosts.capital_cost(building) + LifeCycleCosts.capital_cost(building, content) + catalog = CostCatalogFactory('montreal_catalog').catalog + content = catalog.entries() + # print(len(content.costs)) + # lcc = LifeCycleCosts(building, number_of_years, consumer_price_index, costs_catalog) # total_capital_costs = lcc.calculate_capital_costs() # end_of_life_costs = lcc.calculate_end_of_life_costs()