feat: add simplified building and city to city model structure

This commit is contained in:
Majid Rezaei 2024-10-03 09:25:39 -04:00
parent 5e01f4eb7f
commit a477a2b893
2 changed files with 73 additions and 0 deletions

View File

@ -0,0 +1,42 @@
from typing import Union
class SimplifiedBuilding:
"""
SimplifiedBuilding class
"""
def __init__(self, name, total_floor_area=None, year_of_construction=None, function=None, city=None):
self._name = name
self._total_floor_area = total_floor_area
self._year_of_construction = year_of_construction
self._function = function
self._city = city
self._type = 'building'
@property
def name(self):
return self._name
@property
def total_floor_area(self):
return self._total_floor_area
@property
def year_of_construction(self):
return self._year_of_construction
@property
def function(self) -> Union[None, str]:
return self._function
@property
def type(self):
return self._type
@property
def city(self):
return self._city
@city.setter
def city(self, value):
self._city = value

View File

@ -0,0 +1,31 @@
from typing import List
from hub.city_model_structure.simplified_building import SimplifiedBuilding
class SimplifiedCity:
"""
SimplifiedCity class
"""
def __init__(self):
self._name = "Montreal Metropolitan Area"
self._buildings = []
@property
def name(self):
return self._name
@name.setter
def name(self, value):
if value is not None:
self._name = str(value)
@property
def buildings(self) -> List[SimplifiedBuilding]:
return self._buildings
def add_city_object(self, new_city_object):
if new_city_object.type == 'building':
self._buildings.append(new_city_object)
new_city_object.city = self
else:
raise NotImplementedError(f"Type {new_city_object.type} is not supported")