Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
de8af2cc4b
|
@ -1,5 +1,8 @@
|
|||
from city_model_structure.city_object import CityObject
|
||||
from typing import List, Union
|
||||
import pyproj
|
||||
from pyproj import Transformer
|
||||
import reverse_geocoder as rg
|
||||
|
||||
|
||||
class City:
|
||||
|
@ -10,6 +13,33 @@ class City:
|
|||
self._upper_corner = upper_corner
|
||||
self._city_objects = city_objects
|
||||
self._srs_name = srs_name
|
||||
# todo: right now extracted at city level, in the future should be extracted also at building level if exist
|
||||
self._location = None
|
||||
|
||||
@property
|
||||
def location(self):
|
||||
if self._location is None:
|
||||
gps = pyproj.CRS('EPSG:4326') # LatLon with WGS84 datum used by GPS units and Google Earth
|
||||
input_reference = None
|
||||
try:
|
||||
input_reference = pyproj.CRS(self.srs_name) # Projected coordinate system from input data
|
||||
except pyproj.exceptions.CRSError:
|
||||
print('Invalid projection reference system, please check the input data. (e.g. in CityGML files: srs_name)')
|
||||
quit()
|
||||
transformer = Transformer.from_crs(input_reference, gps)
|
||||
coordinates = transformer.transform(self.lower_corner[0], self.lower_corner[1])
|
||||
self._location = rg.search(coordinates)
|
||||
return self._location
|
||||
|
||||
@property
|
||||
def country_code(self):
|
||||
return self.location[0]['cc']
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
if self._name is None:
|
||||
self._name = self.location[0]['name']
|
||||
return self._name
|
||||
|
||||
@property
|
||||
def city_objects(self) -> Union[List[CityObject], None]:
|
||||
|
@ -30,10 +60,9 @@ class City:
|
|||
return None
|
||||
|
||||
def add_city_object(self, new_city_object):
|
||||
if self.city_objects is None:
|
||||
if self._city_objects is None:
|
||||
self._city_objects = []
|
||||
for city_object in self.city_objects:
|
||||
# ToDo: Check for shared walls.
|
||||
for surface in city_object.surfaces:
|
||||
for surface2 in new_city_object.surfaces:
|
||||
surface.shared(surface2)
|
||||
|
@ -43,10 +72,6 @@ class City:
|
|||
def srs_name(self):
|
||||
return self._srs_name
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
return self._name
|
||||
|
||||
@name.setter
|
||||
def name(self, value):
|
||||
self._name = value
|
||||
|
|
|
@ -14,7 +14,8 @@ from typing import Union, List
|
|||
|
||||
|
||||
class CityObject:
|
||||
def __init__(self, name, lod, surfaces, terrains, year_of_construction, function, attic_heated=0, basement_heated=0):
|
||||
def __init__(self, name, lod, surfaces, terrains, year_of_construction, function, lower_corner, attic_heated=0,
|
||||
basement_heated=0):
|
||||
self._name = name
|
||||
self._lod = lod
|
||||
self._surfaces = surfaces
|
||||
|
@ -24,6 +25,7 @@ class CityObject:
|
|||
self._terrains = terrains
|
||||
self._year_of_construction = year_of_construction
|
||||
self._function = function
|
||||
self._lower_corner = lower_corner
|
||||
self._geometry = Geometry()
|
||||
self._average_storey_height = None
|
||||
self._storeys_above_ground = None
|
||||
|
@ -42,6 +44,7 @@ class CityObject:
|
|||
t.bounded = [ThermalBoundary(s, [t]) for s in t.surfaces]
|
||||
surface_id = 0
|
||||
for s in self._surfaces:
|
||||
s.lower_corner = self._lower_corner
|
||||
s.parent(self, surface_id)
|
||||
surface_id += 1
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
class Material:
|
||||
def __init__(self):
|
||||
# ToDo: construct this class
|
||||
self._conductivity_wm_k = None
|
||||
self._specific_heat_jkg_k = None
|
||||
self._density_kg_m3 = None
|
||||
|
|
|
@ -2,6 +2,7 @@ from __future__ import annotations
|
|||
import numpy as np
|
||||
import pyny3d.geoms as pn
|
||||
from helpers.geometry import Geometry
|
||||
from typing import Union
|
||||
|
||||
|
||||
class Surface:
|
||||
|
@ -14,8 +15,10 @@ class Surface:
|
|||
self._is_projected = is_projected
|
||||
self._geometry = Geometry()
|
||||
self._polygon = None
|
||||
self._ground_polygon = None
|
||||
self._area = None
|
||||
self._points = None
|
||||
self._ground_points = None
|
||||
self._points_list = None
|
||||
self._normal = None
|
||||
self._azimuth = None
|
||||
|
@ -25,9 +28,13 @@ class Surface:
|
|||
self._parent = None
|
||||
self._shapely = None
|
||||
self._projected_surface = None
|
||||
self._shared_surfaces = None
|
||||
self._min_x = None
|
||||
self._min_y = None
|
||||
self._min_z = None
|
||||
self._shared_surfaces = []
|
||||
self._global_irradiance_hour = np.zeros(8760)
|
||||
self._global_irradiance_month = np.zeros(12)
|
||||
self._ground_coordinates = (self.min_x, self.min_y, self.min_z)
|
||||
|
||||
def parent(self, parent, surface_id):
|
||||
self._parent = parent
|
||||
|
@ -48,21 +55,69 @@ class Surface:
|
|||
self._swr = value
|
||||
|
||||
@property
|
||||
def points(self):
|
||||
def points(self) -> np.ndarray:
|
||||
if self._points is None:
|
||||
self._points = np.fromstring(self._coordinates, dtype=float, sep=' ')
|
||||
self._points = Geometry.to_points_matrix(self._points, self._remove_last)
|
||||
return self._points
|
||||
|
||||
def _min_coord(self, axis):
|
||||
if axis == 'x':
|
||||
axis = 0
|
||||
elif axis == 'y':
|
||||
axis = 1
|
||||
else:
|
||||
axis = 2
|
||||
min_coordinate = ''
|
||||
for point in self.points:
|
||||
if min_coordinate == '':
|
||||
min_coordinate = point[axis]
|
||||
elif min_coordinate > point[axis]:
|
||||
min_coordinate = point[axis]
|
||||
return min_coordinate
|
||||
|
||||
@property
|
||||
def points_list(self):
|
||||
def min_x(self):
|
||||
if self._min_x is None:
|
||||
self._min_x = self._min_coord('x')
|
||||
return self._min_x
|
||||
|
||||
@property
|
||||
def min_y(self):
|
||||
if self._min_y is None:
|
||||
self._min_y = self._min_coord('y')
|
||||
return self._min_y
|
||||
|
||||
@property
|
||||
def min_z(self):
|
||||
if self._min_z is None:
|
||||
self._min_z = self._min_coord('z')
|
||||
return self._min_z
|
||||
|
||||
@property
|
||||
def ground_points(self) -> np.ndarray:
|
||||
if self._ground_points is None:
|
||||
coordinates = ''
|
||||
for point in self.points:
|
||||
x = point[0] - self._ground_coordinates[0]
|
||||
y = point[1] - self._ground_coordinates[1]
|
||||
z = point[2] - self._ground_coordinates[2]
|
||||
if coordinates != '':
|
||||
coordinates = coordinates + ' '
|
||||
coordinates = coordinates + str(x) + ' ' + str(y) + ' ' + str(z)
|
||||
self._ground_points = np.fromstring(coordinates, dtype=float, sep=' ')
|
||||
self._ground_points = Geometry.to_points_matrix(self._ground_points, False)
|
||||
return self._ground_points
|
||||
|
||||
@property
|
||||
def points_list(self) -> np.ndarray:
|
||||
if self._points_list is None:
|
||||
s = self.points
|
||||
self._points_list = np.reshape(s, len(s) * 3)
|
||||
return self._points_list
|
||||
|
||||
@property
|
||||
def polygon(self):
|
||||
def polygon(self) -> pn.Polygon:
|
||||
if self._polygon is None:
|
||||
try:
|
||||
self._polygon = pn.Polygon(self.points)
|
||||
|
@ -71,15 +126,22 @@ class Surface:
|
|||
self._polygon = None
|
||||
return self._polygon
|
||||
|
||||
@property
|
||||
def ground_polygon(self) -> Union[pn.Polygon, None]:
|
||||
if self._ground_polygon is None:
|
||||
try:
|
||||
self._ground_polygon = pn.Polygon(self.ground_points)
|
||||
except ValueError:
|
||||
# is not really a polygon but a line so just return none
|
||||
self._ground_polygon = None
|
||||
return self._ground_polygon
|
||||
|
||||
@property
|
||||
def area(self):
|
||||
if self._area is None:
|
||||
self._area = self.polygon.get_area()
|
||||
return self._area
|
||||
|
||||
def _is_shared(self, surface):
|
||||
return False
|
||||
|
||||
def _is_almost_same_terrain(self, terrain_points, ground_points):
|
||||
equal = 0
|
||||
for t in terrain_points:
|
||||
|
@ -110,7 +172,7 @@ class Surface:
|
|||
return self._area_below_ground
|
||||
|
||||
@property
|
||||
def normal(self):
|
||||
def normal(self) -> np.ndarray:
|
||||
if self._normal is None:
|
||||
points = self.points
|
||||
n = np.cross(points[1] - points[0], points[2] - points[0])
|
||||
|
@ -142,12 +204,18 @@ class Surface:
|
|||
self._type = 'Roof'
|
||||
return self._type
|
||||
|
||||
def add_shared(self, surface, intersection_area):
|
||||
percent = intersection_area / self.area
|
||||
self._shared_surfaces.append((percent, surface))
|
||||
|
||||
def shared(self, surface):
|
||||
if self.type is not 'Wall':
|
||||
if self.type is not 'Wall' or surface.type is not 'Wall':
|
||||
return
|
||||
if self._is_shared(surface):
|
||||
self._shared_surfaces.append((100, surface))
|
||||
surface.shared(self)
|
||||
if self._geometry.is_almost_same_surface(self, surface):
|
||||
intersection_area = self.intersect(surface).area
|
||||
percent = intersection_area / self.area
|
||||
self._shared_surfaces.append((percent, surface))
|
||||
surface.add_shared(self, intersection_area)
|
||||
|
||||
@property
|
||||
def global_irradiance_hour(self):
|
||||
|
@ -173,15 +241,53 @@ class Surface:
|
|||
self._shapely = self.polygon.get_shapely()
|
||||
return self._shapely
|
||||
|
||||
@staticmethod
|
||||
def _polygon_to_surface(polygon):
|
||||
coordinates = ''
|
||||
for coordinate in polygon.exterior.coords:
|
||||
if coordinates != '':
|
||||
coordinates = coordinates + ' '
|
||||
coordinates = coordinates + str(coordinate[0]) + ' ' + str(coordinate[1]) + ' 0.0'
|
||||
return Surface(coordinates, remove_last=False)
|
||||
|
||||
@property
|
||||
def projection(self) -> Surface:
|
||||
if self._is_projected:
|
||||
return self
|
||||
if self._projected_surface is None:
|
||||
self._projected_surface = self._polygon_to_surface(self.shapely)
|
||||
return self._projected_surface
|
||||
|
||||
def intersect(self, surface) -> Union[Surface, None]:
|
||||
min_x = min(self.min_x, surface.min_x)
|
||||
min_y = min(self.min_y, surface.min_y)
|
||||
min_z = min(self.min_z, surface.min_z)
|
||||
self._ground_coordinates = (min_x, min_y, min_z)
|
||||
surface._ground_coordinates = (min_x, min_y, min_z)
|
||||
origin = (0, 0, 0)
|
||||
azimuth = self.azimuth - (np.pi / 2)
|
||||
while azimuth < 0:
|
||||
azimuth += (np.pi / 2)
|
||||
inclination = self.inclination - np.pi
|
||||
while inclination < 0:
|
||||
inclination += np.pi
|
||||
polygon1 = self.ground_polygon.rotate(azimuth, 'z', origin).rotate(inclination, 'x', origin)
|
||||
polygon2 = surface.ground_polygon.rotate(azimuth, 'z', origin).rotate(inclination, 'x', origin)
|
||||
try:
|
||||
coordinates = ''
|
||||
for coordinate in self.shapely.exterior.coords:
|
||||
intersection = pn.Surface([polygon1]).intersect_with(polygon2)
|
||||
if len(intersection) == 0:
|
||||
return None
|
||||
for coordinate in pn.Surface([polygon1]).intersect_with(polygon2)[0]:
|
||||
if coordinates != '':
|
||||
coordinates = coordinates + ' '
|
||||
coordinates = coordinates + str(coordinate[0]) + ' ' + str(coordinate[1]) + ' 0.0'
|
||||
self._projected_surface = Surface(coordinates)
|
||||
return self._projected_surface
|
||||
if coordinates == '':
|
||||
return None
|
||||
intersect_surface = Surface(coordinates, remove_last=False)
|
||||
if intersect_surface.polygon is None:
|
||||
return None
|
||||
return Surface(coordinates, remove_last=False)
|
||||
except Exception as err:
|
||||
print('Error', err)
|
||||
return None
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from typing import List
|
||||
from city_model_structure.thermal_boundary import ThermalBoundary
|
||||
from city_model_structure.usage_zone import UsageZone
|
||||
|
||||
|
||||
class ThermalZone:
|
||||
|
@ -86,10 +87,9 @@ class ThermalZone:
|
|||
self._infiltration_rate_system_off = value
|
||||
|
||||
@property
|
||||
def usage_zones(self):
|
||||
def usage_zones(self) -> List[UsageZone]:
|
||||
return self._usage_zones
|
||||
|
||||
@usage_zones.setter
|
||||
def usage_zones(self, values):
|
||||
self._usage_zones = values
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
class Window:
|
||||
def __init__(self):
|
||||
# ToDo: construct this class
|
||||
self._conductivity_wm_k = None
|
||||
self._solar_transmittance_at_normal_incidence = None
|
||||
self._front_side_solar_reflectance_at_normal_incidence = None
|
||||
|
|
|
@ -98,7 +98,8 @@ class CityGml:
|
|||
year_of_construction = o['Building']['yearOfConstruction']
|
||||
if 'function' in o['Building']:
|
||||
function = o['Building']['function']
|
||||
self._city.add_city_object(CityObject(name, lod, surfaces, terrains, year_of_construction, function))
|
||||
self._city.add_city_object(CityObject(name, lod, surfaces, terrains, year_of_construction, function,
|
||||
self._lower_corner))
|
||||
return self._city
|
||||
|
||||
|
||||
|
|
9
helpers/assumptions.py
Normal file
9
helpers/assumptions.py
Normal file
|
@ -0,0 +1,9 @@
|
|||
# These values are intended as configurable assumptions
|
||||
# ToDo: these values need to be changed into configurable parameters
|
||||
|
||||
# convective fluxes
|
||||
h_i = 10 # W/m2K
|
||||
h_e = 25 # W/m2K
|
||||
|
||||
# windows' default values
|
||||
frame_ratio = 0
|
|
@ -10,6 +10,35 @@ class Geometry:
|
|||
delta = math.sqrt(pow((v1[0] - v2[0]), 2) + pow((v1[1] - v2[1]), 2) + pow((v1[2] - v2[2]), 2))
|
||||
return delta <= self._delta
|
||||
|
||||
def is_almost_same_surface(self, s1, s2):
|
||||
# delta is grads an need to be converted into radians
|
||||
delta = np.rad2deg(self._delta)
|
||||
difference = (s1.inclination - s2.inclination) % math.pi
|
||||
if abs(difference) > delta:
|
||||
return False
|
||||
# s1 and s2 are at least almost parallel surfaces
|
||||
# calculate distance point to plane using all the vertex
|
||||
# select surface1 value for the point (X,Y,Z) where two of the values are 0
|
||||
minimum_distance = self._delta + 1
|
||||
parametric = s2.polygon.get_parametric()
|
||||
n2 = s2.normal
|
||||
for point in s1.points:
|
||||
distance = abs(
|
||||
(point[0] * parametric[0]) + (point[1] * parametric[1]) + (point[2] * parametric[2]) + parametric[3])
|
||||
normal_module = math.sqrt(pow(n2[0], 2) + pow(n2[1], 2) + pow(n2[2], 2))
|
||||
|
||||
if normal_module == 0:
|
||||
continue
|
||||
distance = distance / normal_module
|
||||
if distance < minimum_distance:
|
||||
minimum_distance = distance
|
||||
if minimum_distance <= self._delta:
|
||||
break
|
||||
if minimum_distance > self._delta or s1.intersect(s2) is None:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
@staticmethod
|
||||
def to_points_matrix(points, remove_last=False):
|
||||
rows = points.size // 3
|
||||
|
|
|
@ -3,16 +3,17 @@ from physics.physics_feeders.us_physics_parameters import UsPhysicsParameters
|
|||
|
||||
|
||||
class PhysicsFactory:
|
||||
def __init__(self, handler, city):
|
||||
def __init__(self, handler, city, base_path='data/physics'):
|
||||
self._handler = handler.lower().replace(' ', '_')
|
||||
self._city = city
|
||||
self._base_path = base_path
|
||||
self.factory()
|
||||
|
||||
def us_new_york_city(self):
|
||||
UsNewYorkCityPhysicsParameters(self._city)
|
||||
UsNewYorkCityPhysicsParameters(self._city, self._base_path)
|
||||
|
||||
def us(self):
|
||||
UsPhysicsParameters(self._city)
|
||||
UsPhysicsParameters(self._city, self._base_path)
|
||||
|
||||
def ca(self):
|
||||
raise Exception('Not implemented')
|
||||
|
|
|
@ -6,17 +6,17 @@ from physics.physics_feeders.helpers.us_to_library_types import UsToLibraryTypes
|
|||
|
||||
|
||||
class UsBasePhysicsParameters:
|
||||
def __init__(self, climate_zone, city_objects, function_to_type):
|
||||
def __init__(self, climate_zone, city_objects, function_to_type, base_path):
|
||||
self._climate_zone = climate_zone
|
||||
self._city_objects = city_objects
|
||||
|
||||
# load US Library
|
||||
path = str(Path.cwd() / 'data/physics/us_constructions.xml')
|
||||
path = str(Path.cwd() / base_path / 'us_constructions.xml')
|
||||
with open(path) as xml:
|
||||
self._library = xmltodict.parse(xml.read(), force_list='layer')
|
||||
|
||||
# load US Archetypes
|
||||
path = str(Path.cwd() / 'data/physics/us_archetypes.xml')
|
||||
path = str(Path.cwd() / base_path / 'us_archetypes.xml')
|
||||
with open(path) as xml:
|
||||
self._archetypes = xmltodict.parse(xml.read(), force_list='layer')
|
||||
for city_object in self._city_objects:
|
||||
|
|
|
@ -3,7 +3,7 @@ from physics.physics_feeders.helpers.us_pluto_to_function import UsPlutoToFuncti
|
|||
|
||||
|
||||
class UsNewYorkCityPhysicsParameters(UsBasePhysicsParameters):
|
||||
def __init__(self, city):
|
||||
def __init__(self, city, base_path):
|
||||
self._city = city
|
||||
climate_zone = 'ASHRAE_2004:4A'
|
||||
super().__init__(climate_zone, self._city.city_objects, Pf.function)
|
||||
super().__init__(climate_zone, self._city.city_objects, Pf.function, base_path)
|
||||
|
|
|
@ -3,8 +3,8 @@ from physics.physics_feeders.helpers.us_to_library_types import UsToLibraryTypes
|
|||
|
||||
|
||||
class UsPhysicsParameters(UsBasePhysicsParameters):
|
||||
def __init__(self, city):
|
||||
def __init__(self, city, base_path):
|
||||
self._city = city
|
||||
self._climate_zone = UsToLibraryTypes.city_to_climate_zone(city.city_name)
|
||||
super().__init__(self._climate_zone, self._city.city_objects, lambda function: function)
|
||||
self._climate_zone = UsToLibraryTypes.city_to_climate_zone(city.name)
|
||||
super().__init__(self._climate_zone, self._city.city_objects, lambda function: function, base_path)
|
||||
|
||||
|
|
147
tests/test_geometry_factory.py
Normal file
147
tests/test_geometry_factory.py
Normal file
|
@ -0,0 +1,147 @@
|
|||
from unittest import TestCase
|
||||
from pathlib import Path
|
||||
from geometry.geometry_factory import GeometryFactory
|
||||
import os
|
||||
from city_model_structure.surface import Surface
|
||||
|
||||
|
||||
class TestGeometryFactory(TestCase):
|
||||
def setUp(self) -> None:
|
||||
self._city_gml = None
|
||||
self._example_path = (Path(__file__).parent.parent / 'tests_data').resolve()
|
||||
|
||||
def get_citygml(self):
|
||||
if self._city_gml is None:
|
||||
file_path = (self._example_path / 'buildings.gml').resolve()
|
||||
self._city_gml = GeometryFactory('citygml', file_path).city
|
||||
self.assertIsNotNone(self._city_gml, 'city is none')
|
||||
return self._city_gml
|
||||
|
||||
def test_citygml_city(self):
|
||||
city = self.get_citygml()
|
||||
self.assertIsNotNone(city.city_objects, 'city_objects is none')
|
||||
for city_object in city.city_objects:
|
||||
self.assertIsNotNone(city.city_object(city_object.name), 'city_object return none')
|
||||
self.assertIsNotNone(city.srs_name, 'srs_name is none')
|
||||
self.assertIsNotNone(city.lower_corner, 'lower_corner is none')
|
||||
self.assertIsNotNone(city.upper_corner, 'upper_corner is none')
|
||||
self.assertIsNotNone(city.name, 'name is none')
|
||||
self.assertIsNotNone(city.country_code, 'country code is none')
|
||||
self.assertIsNotNone(city.location, 'location is none')
|
||||
|
||||
def test_citygml_city_objects(self):
|
||||
city = self.get_citygml()
|
||||
for city_object in city.city_objects:
|
||||
self.assertIsNotNone(city_object.name, 'city_object name is none')
|
||||
self.assertIsNotNone(city_object.lod, 'city_object lod is none')
|
||||
self.assertIsNotNone(city_object.year_of_construction, 'city_object year_of_construction is none')
|
||||
self.assertIsNotNone(city_object.function, 'city_object function is none')
|
||||
self.assertIsNotNone(city_object.volume, 'city_object volume is none')
|
||||
self.assertIsNotNone(city_object.surfaces, 'city_object surfaces is none')
|
||||
self.assertIsNotNone(city_object.surfaces[0].name, 'surface not found')
|
||||
self.assertIsNotNone(city_object.basement_heated, 'city_object basement_heated is none')
|
||||
self.assertIsNotNone(city_object.attic_heated, 'city_object attic_heated is none')
|
||||
self.assertIsNotNone(city_object.terrains, 'city_object terrains is none')
|
||||
self.assertIsNotNone(city_object.foot_print, 'city_object foot_print is none')
|
||||
self.assertIsNotNone(city_object.usage_zones, 'city_object usage_zones is none')
|
||||
self.assertIsNone(city_object.average_storey_height, 'city_object average_storey_height is not none')
|
||||
self.assertIsNone(city_object.storeys_above_ground, 'city_object storeys_above_ground is not none')
|
||||
self.assertIsNotNone(city_object.heated_volume, 'city_object heated_volume is none')
|
||||
self.assertIsNotNone(city_object.thermal_zones, 'city_object thermal_zones is none')
|
||||
self.assertIsNotNone(city_object.type, 'city_object type is none')
|
||||
self.assertIsNotNone(city_object.max_height, 'city_object max_height is none')
|
||||
city_object.stl_export(self._example_path)
|
||||
os.remove(Path(self._example_path, city_object.name + '.stl').resolve())
|
||||
|
||||
def test_citygml_surfaces(self):
|
||||
city = self.get_citygml()
|
||||
for city_object in city.city_objects:
|
||||
for surface in city_object.surfaces:
|
||||
self.assertIsNotNone(surface.name, 'surface name is none')
|
||||
self.assertIsNotNone(surface.area, 'surface area is none')
|
||||
self.assertIsNotNone(surface.type, 'surface type is none')
|
||||
self.assertIsNotNone(surface.azimuth, 'surface azimuth is none')
|
||||
self.assertIsNotNone(surface.inclination, 'surface inclination is none')
|
||||
self.assertIsNotNone(surface.area_below_ground, 'surface area_below_ground is none')
|
||||
self.assertIsNotNone(surface.area_above_ground, 'surface area_above_ground is none')
|
||||
self.assertIsNotNone(surface.points, 'surface points is none')
|
||||
self.assertIsNotNone(surface.points_list, 'surface points_list is none')
|
||||
self.assertIsNotNone(surface.polygon, 'surface polygon is none')
|
||||
self.assertIsNotNone(surface.shapely, 'surface shapely is none')
|
||||
self.assertIsNotNone(surface.global_irradiance_hour, 'surface global_irradiance_hour is none')
|
||||
self.assertIsNotNone(surface.global_irradiance_month, 'surface global_irradiance_month is none')
|
||||
self.assertIsNotNone(surface.normal, 'surface normal is none')
|
||||
self.assertIsNotNone(surface.projection, 'surface projection is none')
|
||||
self.assertIsNotNone(surface.swr, 'surface swr is none')
|
||||
self.assertIsNotNone(surface.min_x, 'surface min_x is none')
|
||||
self.assertIsNotNone(surface.min_y, 'surface min_y is none')
|
||||
self.assertIsNotNone(surface.min_z, 'surface min_z is none')
|
||||
self.assertIsNotNone(surface.ground_polygon, 'surface ground_polygon is none')
|
||||
self.assertIsNotNone(surface.ground_points, 'surface ground_points is none')
|
||||
self.assertIsNotNone(surface.intersect(surface), 'self intersection is none')
|
||||
|
||||
def test_citygml_thermal_zone(self):
|
||||
city = self.get_citygml()
|
||||
for city_object in city.city_objects:
|
||||
for thermal_zone in city_object.thermal_zones:
|
||||
self.assertIsNotNone(thermal_zone.surfaces, 'thermal_zone surfaces is none')
|
||||
self.assertIsNotNone(thermal_zone.bounded, 'thermal_zone bounded is none')
|
||||
self.assertIsNotNone(thermal_zone.floor_area, 'thermal_zone floor_area is none')
|
||||
self.assertIsNotNone(thermal_zone.heated, 'thermal_zone heated is none')
|
||||
self.assertIsNotNone(thermal_zone.cooled, 'thermal_zone cooled is none')
|
||||
self.assertIsNone(thermal_zone.additional_thermal_bridge_u_value,
|
||||
'thermal_zone additional_thermal_bridge_u_value is not none')
|
||||
self.assertIsNone(thermal_zone.effective_thermal_capacity,
|
||||
'thermal_zone effective_thermal_capacity is not none')
|
||||
self.assertIsNone(thermal_zone.indirectly_heated_area_ratio
|
||||
, 'thermal_zone indirectly_heated_area_ratio is not none')
|
||||
self.assertIsNone(thermal_zone.infiltration_rate_system_off,
|
||||
'thermal_zone infiltration_rate_system_off is not none')
|
||||
self.assertIsNone(thermal_zone.infiltration_rate_system_on,
|
||||
'thermal_zone infiltration_rate_system_on is not none')
|
||||
self.assertIsNone(thermal_zone.usage_zones,
|
||||
'thermal_zone usage_zones are not none')
|
||||
|
||||
def test_citygml_thermal_boundary(self):
|
||||
city = self.get_citygml()
|
||||
for city_object in city.city_objects:
|
||||
for thermal_zone in city_object.thermal_zones:
|
||||
for thermal_boundary in thermal_zone.bounded:
|
||||
self.assertIsNotNone(thermal_boundary.type, 'thermal_boundary type is none')
|
||||
self.assertIsNotNone(thermal_boundary.area, 'thermal_boundary area is none')
|
||||
self.assertIsNotNone(thermal_boundary.area_above_ground, 'thermal_boundary area_above_ground is none')
|
||||
self.assertIsNotNone(thermal_boundary.area_below_ground, 'thermal_boundary area_below_ground is none')
|
||||
self.assertIsNotNone(thermal_boundary.azimuth, 'thermal_boundary azimuth is none')
|
||||
self.assertIsNotNone(thermal_boundary.delimits, 'thermal_boundary delimits is none')
|
||||
self.assertIsNotNone(thermal_boundary.inclination, 'thermal_boundary inclination is none')
|
||||
self.assertRaises(Exception, lambda: thermal_boundary.u_value, 'thermal_boundary u_value was initialized')
|
||||
self.assertIsNone(thermal_boundary.layers, 'thermal_boundary layers was initialized')
|
||||
self.assertRaises(Exception, lambda: thermal_boundary.outside_solar_absorptance,
|
||||
'thermal_boundary outside_solar_absorptance was initialized')
|
||||
self.assertIsNone(thermal_boundary.outside_thermal_absorptance,
|
||||
'thermal_boundary outside_thermal_absorptance was initialized')
|
||||
self.assertIsNone(thermal_boundary.outside_visible_absorptance,
|
||||
'thermal_boundary outside_visible_absorptance was initialized')
|
||||
self.assertRaises(Exception, lambda: thermal_boundary.shortwave_reflectance,
|
||||
'thermal_boundary shortwave_reflectance was initialized')
|
||||
self.assertRaises(Exception, lambda: thermal_boundary.window_area,
|
||||
'thermal_boundary window_area was initialized')
|
||||
self.assertIsNone(thermal_boundary.window_ratio, 'thermal_boundary window_ratio was initialized')
|
||||
|
||||
def test_citygml_thermal_opening(self):
|
||||
city = self.get_citygml()
|
||||
for city_object in city.city_objects:
|
||||
for thermal_zone in city_object.thermal_zones:
|
||||
for thermal_boundary in thermal_zone.bounded:
|
||||
for thermal_opening in thermal_boundary.thermal_openings:
|
||||
self.assertIsNone(thermal_opening.area, 'thermal_opening area was initialized')
|
||||
self.assertTrue(thermal_opening.frame_ratio == 0, 'thermal_opening frame_ratio was not 0')
|
||||
self.assertIsNone(thermal_opening.g_value, 'thermal_opening g_value was initialized')
|
||||
self.assertIsNone(thermal_opening.conductivity_w_mk, 'thermal_opening conductivity_w_mk was initialized')
|
||||
self.assertIsNone(thermal_opening.inside_reflectance, 'thermal_opening inside_reflectance was initialized')
|
||||
self.assertRaises(Exception, lambda: thermal_opening.openable_ratio,
|
||||
'thermal_opening openable_ratio is not raising an exception')
|
||||
self.assertIsNone(thermal_opening.outside_reflectance,
|
||||
'thermal_opening outside_reflectance was initialized')
|
||||
self.assertIsNone(thermal_opening.thickness_m, 'thermal_opening thickness_m was initialized')
|
||||
self.assertRaises(Exception, lambda: thermal_opening.u_value, 'thermal_opening u_value was initialized')
|
27
tests/test_physics_factory.py
Normal file
27
tests/test_physics_factory.py
Normal file
|
@ -0,0 +1,27 @@
|
|||
from unittest import TestCase
|
||||
from pathlib import Path
|
||||
from geometry.geometry_factory import GeometryFactory
|
||||
from physics.physics_factory import PhysicsFactory
|
||||
|
||||
|
||||
class TestPhysicsFactory(TestCase):
|
||||
def setUp(self) -> None:
|
||||
self._city_gml = None
|
||||
self._nyc_with_physics = None
|
||||
self._example_path = (Path(__file__).parent.parent / 'tests_data').resolve()
|
||||
|
||||
def get_citygml(self):
|
||||
if self._city_gml is None:
|
||||
file_path = (self._example_path / 'buildings.gml').resolve()
|
||||
self._city_gml = GeometryFactory('citygml', file_path).city
|
||||
self.assertIsNotNone(self._city_gml, 'city is none')
|
||||
return self._city_gml
|
||||
|
||||
def get_city_with_physics(self):
|
||||
if self._nyc_with_physics is None:
|
||||
self._nyc_with_physics = self.get_citygml()
|
||||
PhysicsFactory('us_new_york_city', self._nyc_with_physics, base_path=self._example_path)
|
||||
return self._nyc_with_physics
|
||||
|
||||
def test_city_with_physics(self):
|
||||
city = self.get_city_with_physics()
|
626
tests_data/buildings.gml
Normal file
626
tests_data/buildings.gml
Normal file
|
@ -0,0 +1,626 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<CityModel>
|
||||
<name>Gowanus 2050 Best Practice Scenario</name>
|
||||
<boundedBy>
|
||||
<Envelope srsName="EPSG:32118" srsDimension="3" xmlns:brid="http://www.opengis.net/citygml/bridge/2.0" xmlns:tran="http://www.opengis.net/citygml/transportation/2.0" xmlns:frn="http://www.opengis.net/citygml/cityfurniture/2.0" xmlns:wtr="http://www.opengis.net/citygml/waterbody/2.0" xmlns:sch="http://www.ascc.net/xml/schematron" xmlns:veg="http://www.opengis.net/citygml/vegetation/2.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:tun="http://www.opengis.net/citygml/tunnel/2.0" xmlns:tex="http://www.opengis.net/citygml/texturedsurface/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:luse="http://www.opengis.net/citygml/landuse/2.0" xmlns:xAL="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil20lang="http://www.w3.org/2001/SMIL20/Language" xmlns:pbase="http://www.opengis.net/citygml/profiles/base/2.0" xmlns:smil20="http://www.w3.org/2001/SMIL20/" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:grp="http://www.opengis.net/citygml/cityobjectgroup/2.0">
|
||||
<gml:lowerCorner>301067.2312223603 55182.50627018605 -15.371661394834565</gml:lowerCorner>
|
||||
<gml:upperCorner>301852.9778043915 57588.63517643605 75.67673757672314</gml:upperCorner>
|
||||
</Envelope>
|
||||
</boundedBy>
|
||||
<cityObjectMember>
|
||||
<Building id="GBP__169">
|
||||
<stringAttribute name="PLUTO_year_built">
|
||||
<value>1965</value>
|
||||
</stringAttribute>
|
||||
<stringAttribute name="PLUTO_building_class">
|
||||
<value>I1</value>
|
||||
</stringAttribute>
|
||||
<lod1Solid>
|
||||
<Solid srsName="EPSG:32118" srsDimension="3">
|
||||
<exterior>
|
||||
<CompositeSurface>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301010.4314176728 57301.3749225298 10.786276534199727 301004.1125700165 57288.87345768605 10.786276534199727 301024.4275114228 57311.0624225298 10.786276534199727 301010.4314176728 57301.3749225298 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301014.183859079 57308.78849674855 10.786276534199727 301010.4314176728 57301.3749225298 10.786276534199727 301024.4275114228 57311.0624225298 10.786276534199727 301014.183859079 57308.78849674855 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301004.1125700165 57288.87345768605 10.786276534199727 300992.0398161103 57285.56779362355 10.786276534199727 301000.3254606415 57281.3758990923 10.786276534199727 301004.1125700165 57288.87345768605 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301024.4275114228 57311.0624225298 10.786276534199727 301004.1125700165 57288.87345768605 10.786276534199727 301004.5266325165 57271.70548893605 10.786276534199727 301024.4275114228 57311.0624225298 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301000.3254606415 57281.3758990923 10.786276534199727 300997.2820036103 57275.3758990923 10.786276534199727 301004.5266325165 57271.70548893605 10.786276534199727 301000.3254606415 57281.3758990923 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301004.1125700165 57288.87345768605 10.786276534199727 301000.3254606415 57281.3758990923 10.786276534199727 301004.5266325165 57271.70548893605 10.786276534199727 301004.1125700165 57288.87345768605 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301017.183859079 57314.7147662798 10.786276534199727 301014.183859079 57308.78849674855 10.786276534199727 301024.4275114228 57311.0624225298 10.786276534199727 301017.183859079 57314.7147662798 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301005.9055387665 57312.9716022173 10.786276534199727 301002.1530973603 57305.55900456105 10.786276534199727 301014.183859079 57308.78849674855 10.786276534199727 301005.9055387665 57312.9716022173 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300995.8337614228 57293.0555865923 10.786276534199727 300992.0398161103 57285.56779362355 10.786276534199727 301004.1125700165 57288.87345768605 10.786276534199727 300995.8337614228 57293.0555865923 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301014.183859079 57308.78849674855 10.786276534199727 301002.1530973603 57305.55900456105 10.786276534199727 301010.4314176728 57301.3749225298 10.786276534199727 301014.183859079 57308.78849674855 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301005.9055387665 57312.9716022173 10.786276534199727 301005.9055387665 57312.9716022173 0.0 301002.1530973603 57305.55900456105 10.786276534199727 301005.9055387665 57312.9716022173 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301002.1530973603 57305.55900456105 10.786276534199727 301005.9055387665 57312.9716022173 0.0 301002.1530973603 57305.55900456105 0.0 301002.1530973603 57305.55900456105 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301017.183859079 57314.7147662798 0.0 301024.4275114228 57311.0624225298 0.0 301014.183859079 57308.78849674855 0.0 301017.183859079 57314.7147662798 0.0</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301005.9055387665 57312.9716022173 0.0 301014.183859079 57308.78849674855 0.0 301002.1530973603 57305.55900456105 0.0 301005.9055387665 57312.9716022173 0.0</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300995.8337614228 57293.0555865923 0.0 301004.1125700165 57288.87345768605 0.0 300992.0398161103 57285.56779362355 0.0 300995.8337614228 57293.0555865923 0.0</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301014.183859079 57308.78849674855 0.0 301010.4314176728 57301.3749225298 0.0 301002.1530973603 57305.55900456105 0.0 301014.183859079 57308.78849674855 0.0</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301010.4314176728 57301.3749225298 0.0 301024.4275114228 57311.0624225298 0.0 301004.1125700165 57288.87345768605 0.0 301010.4314176728 57301.3749225298 0.0</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301014.183859079 57308.78849674855 0.0 301024.4275114228 57311.0624225298 0.0 301010.4314176728 57301.3749225298 0.0 301014.183859079 57308.78849674855 0.0</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301024.4275114228 57311.0624225298 0.0 301004.5266325165 57271.70548893605 0.0 301004.1125700165 57288.87345768605 0.0 301024.4275114228 57311.0624225298 0.0</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301004.1125700165 57288.87345768605 0.0 301000.3254606415 57281.3758990923 0.0 300992.0398161103 57285.56779362355 0.0 301004.1125700165 57288.87345768605 0.0</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301000.3254606415 57281.3758990923 0.0 301004.5266325165 57271.70548893605 0.0 300997.2820036103 57275.3758990923 0.0 301000.3254606415 57281.3758990923 0.0</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301004.1125700165 57288.87345768605 0.0 301004.5266325165 57271.70548893605 0.0 301000.3254606415 57281.3758990923 0.0 301004.1125700165 57288.87345768605 0.0</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301014.183859079 57308.78849674855 10.786276534199727 301014.183859079 57308.78849674855 0.0 301005.9055387665 57312.9716022173 10.786276534199727 301014.183859079 57308.78849674855 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301005.9055387665 57312.9716022173 10.786276534199727 301014.183859079 57308.78849674855 0.0 301005.9055387665 57312.9716022173 0.0 301005.9055387665 57312.9716022173 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301017.183859079 57314.7147662798 10.786276534199727 301017.183859079 57314.7147662798 0.0 301014.183859079 57308.78849674855 10.786276534199727 301017.183859079 57314.7147662798 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301014.183859079 57308.78849674855 10.786276534199727 301017.183859079 57314.7147662798 0.0 301014.183859079 57308.78849674855 0.0 301014.183859079 57308.78849674855 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301002.1530973603 57305.55900456105 10.786276534199727 301002.1530973603 57305.55900456105 0.0 301010.4314176728 57301.3749225298 10.786276534199727 301002.1530973603 57305.55900456105 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301010.4314176728 57301.3749225298 10.786276534199727 301002.1530973603 57305.55900456105 0.0 301010.4314176728 57301.3749225298 0.0 301010.4314176728 57301.3749225298 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301024.4275114228 57311.0624225298 10.786276534199727 301024.4275114228 57311.0624225298 0.0 301017.183859079 57314.7147662798 10.786276534199727 301024.4275114228 57311.0624225298 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301017.183859079 57314.7147662798 10.786276534199727 301024.4275114228 57311.0624225298 0.0 301017.183859079 57314.7147662798 0.0 301017.183859079 57314.7147662798 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301004.5266325165 57271.70548893605 10.786276534199727 301004.5266325165 57271.70548893605 0.0 301024.4275114228 57311.0624225298 10.786276534199727 301004.5266325165 57271.70548893605 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301024.4275114228 57311.0624225298 10.786276534199727 301004.5266325165 57271.70548893605 0.0 301024.4275114228 57311.0624225298 0.0 301024.4275114228 57311.0624225298 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300997.2820036103 57275.3758990923 10.786276534199727 300997.2820036103 57275.3758990923 0.0 301004.5266325165 57271.70548893605 10.786276534199727 300997.2820036103 57275.3758990923 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301004.5266325165 57271.70548893605 10.786276534199727 300997.2820036103 57275.3758990923 0.0 301004.5266325165 57271.70548893605 0.0 301004.5266325165 57271.70548893605 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301010.4314176728 57301.3749225298 10.786276534199727 301010.4314176728 57301.3749225298 0.0 301004.1125700165 57288.87345768605 10.786276534199727 301010.4314176728 57301.3749225298 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301004.1125700165 57288.87345768605 10.786276534199727 301010.4314176728 57301.3749225298 0.0 301004.1125700165 57288.87345768605 0.0 301004.1125700165 57288.87345768605 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301004.1125700165 57288.87345768605 10.786276534199727 301004.1125700165 57288.87345768605 0.0 300995.8337614228 57293.0555865923 10.786276534199727 301004.1125700165 57288.87345768605 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300995.8337614228 57293.0555865923 10.786276534199727 301004.1125700165 57288.87345768605 0.0 300995.8337614228 57293.0555865923 0.0 300995.8337614228 57293.0555865923 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301000.3254606415 57281.3758990923 10.786276534199727 301000.3254606415 57281.3758990923 0.0 300997.2820036103 57275.3758990923 10.786276534199727 301000.3254606415 57281.3758990923 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300997.2820036103 57275.3758990923 10.786276534199727 301000.3254606415 57281.3758990923 0.0 300997.2820036103 57275.3758990923 0.0 300997.2820036103 57275.3758990923 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300995.8337614228 57293.0555865923 10.786276534199727 300995.8337614228 57293.0555865923 0.0 300992.0398161103 57285.56779362355 10.786276534199727 300995.8337614228 57293.0555865923 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300992.0398161103 57285.56779362355 10.786276534199727 300995.8337614228 57293.0555865923 0.0 300992.0398161103 57285.56779362355 0.0 300992.0398161103 57285.56779362355 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300992.0398161103 57285.56779362355 10.786276534199727 300992.0398161103 57285.56779362355 0.0 301000.3254606415 57281.3758990923 10.786276534199727 300992.0398161103 57285.56779362355 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>301000.3254606415 57281.3758990923 10.786276534199727 300992.0398161103 57285.56779362355 0.0 301000.3254606415 57281.3758990923 0.0 301000.3254606415 57281.3758990923 10.786276534199727</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
</CompositeSurface>
|
||||
</exterior>
|
||||
</Solid>
|
||||
</lod1Solid>
|
||||
<yearOfConstruction>1965</yearOfConstruction>
|
||||
<function>I1</function>
|
||||
</Building>
|
||||
</cityObjectMember>
|
||||
<cityObjectMember>
|
||||
<Building id="GBP__15">
|
||||
<stringAttribute name="PLUTO_year_built">
|
||||
<value>2045</value>
|
||||
</stringAttribute>
|
||||
<stringAttribute name="PLUTO_building_class">
|
||||
<value>I1</value>
|
||||
</stringAttribute>
|
||||
<lod1Solid>
|
||||
<Solid srsName="EPSG:32118" srsDimension="3">
|
||||
<exterior>
|
||||
<CompositeSurface>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300906.4538786103 56181.20939518605 7.9999997168779355 300897.539327829 56167.5155475298 7.9999997168779355 300906.4538786103 56181.20939518605 0.0 300906.4538786103 56181.20939518605 7.9999997168779355</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300897.539327829 56167.5155475298 7.9999997168779355 300897.539327829 56167.5155475298 0.0 300906.4538786103 56181.20939518605 0.0 300897.539327829 56167.5155475298 7.9999997168779355</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300883.334249704 56196.25919987355 7.9999997168779355 300861.299093454 56191.1053912798 7.9999997168779355 300897.539327829 56167.5155475298 7.9999997168779355 300883.334249704 56196.25919987355 7.9999997168779355</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300906.4538786103 56181.20939518605 7.9999997168779355 300883.334249704 56196.25919987355 7.9999997168779355 300897.539327829 56167.5155475298 7.9999997168779355 300906.4538786103 56181.20939518605 7.9999997168779355</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300896.0696012665 56215.82365299855 7.9999997168779355 300882.9489957978 56224.3641803423 7.9999997168779355 300883.334249704 56196.25919987355 7.9999997168779355 300896.0696012665 56215.82365299855 7.9999997168779355</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300882.9489957978 56224.3641803423 7.9999997168779355 300861.299093454 56191.1053912798 7.9999997168779355 300883.334249704 56196.25919987355 7.9999997168779355 300882.9489957978 56224.3641803423 7.9999997168779355</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300883.334249704 56196.25919987355 7.9999997168779355 300883.334249704 56196.25919987355 0.0 300896.0696012665 56215.82365299855 7.9999997168779355 300883.334249704 56196.25919987355 7.9999997168779355</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300896.0696012665 56215.82365299855 7.9999997168779355 300883.334249704 56196.25919987355 0.0 300896.0696012665 56215.82365299855 0.0 300896.0696012665 56215.82365299855 7.9999997168779355</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300883.334249704 56196.25919987355 7.9999997168779355 300906.4538786103 56181.20939518605 7.9999997168779355 300883.334249704 56196.25919987355 0.0 300883.334249704 56196.25919987355 7.9999997168779355</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300906.4538786103 56181.20939518605 7.9999997168779355 300906.4538786103 56181.20939518605 0.0 300883.334249704 56196.25919987355 0.0 300906.4538786103 56181.20939518605 7.9999997168779355</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300896.0696012665 56215.82365299855 0.0 300883.334249704 56196.25919987355 0.0 300882.9489957978 56224.3641803423 0.0 300896.0696012665 56215.82365299855 0.0</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300882.9489957978 56224.3641803423 0.0 300883.334249704 56196.25919987355 0.0 300861.299093454 56191.1053912798 0.0 300882.9489957978 56224.3641803423 0.0</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300883.334249704 56196.25919987355 0.0 300897.539327829 56167.5155475298 0.0 300861.299093454 56191.1053912798 0.0 300883.334249704 56196.25919987355 0.0</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300906.4538786103 56181.20939518605 0.0 300897.539327829 56167.5155475298 0.0 300883.334249704 56196.25919987355 0.0 300906.4538786103 56181.20939518605 0.0</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300882.9489957978 56224.3641803423 7.9999997168779355 300896.0696012665 56215.82365299855 7.9999997168779355 300882.9489957978 56224.3641803423 0.0 300882.9489957978 56224.3641803423 7.9999997168779355</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300896.0696012665 56215.82365299855 7.9999997168779355 300896.0696012665 56215.82365299855 0.0 300882.9489957978 56224.3641803423 0.0 300896.0696012665 56215.82365299855 7.9999997168779355</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300882.9489957978 56224.3641803423 7.9999997168779355 300882.9489957978 56224.3641803423 0.0 300861.299093454 56191.1053912798 7.9999997168779355 300882.9489957978 56224.3641803423 7.9999997168779355</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300861.299093454 56191.1053912798 7.9999997168779355 300882.9489957978 56224.3641803423 0.0 300861.299093454 56191.1053912798 0.0 300861.299093454 56191.1053912798 7.9999997168779355</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300897.539327829 56167.5155475298 7.9999997168779355 300861.299093454 56191.1053912798 7.9999997168779355 300897.539327829 56167.5155475298 0.0 300897.539327829 56167.5155475298 7.9999997168779355</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
<surfaceMember>
|
||||
<Polygon>
|
||||
<exterior>
|
||||
<LinearRing>
|
||||
<posList>300861.299093454 56191.1053912798 7.9999997168779355 300861.299093454 56191.1053912798 0.0 300897.539327829 56167.5155475298 0.0 300861.299093454 56191.1053912798 7.9999997168779355</posList>
|
||||
</LinearRing>
|
||||
</exterior>
|
||||
</Polygon>
|
||||
</surfaceMember>
|
||||
</CompositeSurface>
|
||||
</exterior>
|
||||
</Solid>
|
||||
</lod1Solid>
|
||||
<yearOfConstruction>2045</yearOfConstruction>
|
||||
<function>I1</function>
|
||||
</Building>
|
||||
</cityObjectMember>
|
||||
</CityModel>
|
786
tests_data/us_archetypes.xml
Normal file
786
tests_data/us_archetypes.xml
Normal file
|
@ -0,0 +1,786 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<archetypes reference_library_building_type="us_library" >
|
||||
<archetype id="1" building_type="small office" reference_standard="ASHRAE 90.1_2004" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="13" type="exterior wall" >
|
||||
<window_ratio units="-">0.21</window_ratio>
|
||||
<window>4</window>
|
||||
</construction>
|
||||
<construction id="22" type="exterior slab" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="5" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.05</average_storey_height>
|
||||
<number_of_storeys units="-">2</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">130</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.15</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.5</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="2" building_type="medium office" reference_standard="ASHRAE 90.1_2004" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="19" type="exterior wall" >
|
||||
<window_ratio units="-">0.33</window_ratio>
|
||||
<window>4</window>
|
||||
</construction>
|
||||
<construction id="22" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="17" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.34</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.15</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.50</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="3" building_type="large office" reference_standard="ASHRAE 90.1_2004" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="13" type="exterior wall" >
|
||||
<window_ratio units="-">0.38</window_ratio>
|
||||
<window>4</window>
|
||||
</construction>
|
||||
<construction id="18" type="interior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="17" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.34</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">130</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.15</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.50</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="4" building_type="primary school" reference_standard="ASHRAE 90.1_2004" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="19" type="exterior wall" >
|
||||
<window_ratio units="-">0.35</window_ratio>
|
||||
<window>4</window>
|
||||
</construction>
|
||||
<construction id="22" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="17" type="roof" >
|
||||
<window_ratio units="-">0.0019</window_ratio>
|
||||
<window>2</window>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.96</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.15</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.50</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="5" building_type="secondary school" reference_standard="ASHRAE 90.1_2004" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="19" type="exterior wall" >
|
||||
<window_ratio units="-">0.33</window_ratio>
|
||||
<window>4</window>
|
||||
</construction>
|
||||
<construction id="22" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="17" type="roof" >
|
||||
<window_ratio units="-">0.0068</window_ratio>
|
||||
<window>2</window>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.96</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.15</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.50</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="6" building_type="stand-alone retail" reference_standard="ASHRAE 90.1_2004" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="13" type="exterior wall" >
|
||||
<window_ratio units="-">0.07</window_ratio>
|
||||
<window>4</window>
|
||||
</construction>
|
||||
<construction id="21" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="17" type="roof" >
|
||||
<window_ratio units="-">0.0064</window_ratio>
|
||||
<window>2</window>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">6.1</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">130</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.15</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.50</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="7" building_type="strip mall" reference_standard="ASHRAE 90.1_2004" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="19" type="exterior wall" >
|
||||
<window_ratio units="-">0.11</window_ratio>
|
||||
<window>4</window>
|
||||
</construction>
|
||||
<construction id="21" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="17" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">5.18</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.15</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.50</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="8" building_type="supermarket" reference_standard="ASHRAE 90.1_2004" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="13" type="exterior wall" >
|
||||
<window_ratio units="-">0.11</window_ratio>
|
||||
<window>4</window>
|
||||
</construction>
|
||||
<construction id="21" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="17" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">6.1</average_storey_height>
|
||||
<number_of_storeys units="-">1</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">130</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.15</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.50</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="9" building_type="quick service restaurant" reference_standard="ASHRAE 90.1_2004" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="3" type="exterior wall" >
|
||||
<window_ratio units="-">0.14</window_ratio>
|
||||
<window>4</window>
|
||||
</construction>
|
||||
<construction id="21" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="5" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.05</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.15</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.50</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="10" building_type="full service restaurant" reference_standard="ASHRAE 90.1_2004" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="19" type="exterior wall" >
|
||||
<window_ratio units="-">0.17</window_ratio>
|
||||
<window>4</window>
|
||||
</construction>
|
||||
<construction id="21" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="5" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.05</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.15</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.50</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="11" building_type="small hotel" reference_standard="ASHRAE 90.1_2004" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="19" type="exterior wall" >
|
||||
<window_ratio units="-">0.11</window_ratio>
|
||||
<window>4</window>
|
||||
</construction>
|
||||
<construction id="21" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="17" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.05</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.15</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.50</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="12" building_type="large hotel" reference_standard="ASHRAE 90.1_2004" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="13" type="exterior wall" >
|
||||
<window_ratio units="-">0.3</window_ratio>
|
||||
<window>4</window>
|
||||
</construction>
|
||||
<construction id="18" type="interior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="17" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.05</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">130</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.15</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.50</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="13" building_type="hospital" reference_standard="ASHRAE 90.1_2004" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="13" type="exterior wall" >
|
||||
<window_ratio units="-">0.15</window_ratio>
|
||||
<window>4</window>
|
||||
</construction>
|
||||
<construction id="18" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="17" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">4.27</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">130</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.15</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.50</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="14" building_type="outpatient healthcare" reference_standard="ASHRAE 90.1_2004" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="19" type="exterior wall" >
|
||||
<window_ratio units="-">0.2</window_ratio>
|
||||
<window>4</window>
|
||||
</construction>
|
||||
<construction id="21" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="17" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.05</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.15</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.50</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="15" building_type="warehouse" reference_standard="ASHRAE 90.1_2004" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="24" type="exterior wall" >
|
||||
<window_ratio units="-">0.006</window_ratio>
|
||||
<window>4</window>
|
||||
</construction>
|
||||
<construction id="20" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="14" type="roof" >
|
||||
<window_ratio units="-">.0032</window_ratio>
|
||||
<window>2</window>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">8.53</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.15</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.50</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="16" building_type="midrise apartment" reference_standard="ASHRAE 90.1_2004" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="19" type="exterior wall" >
|
||||
<window_ratio units="-">0.15</window_ratio>
|
||||
<window>4</window>
|
||||
</construction>
|
||||
<construction id="22" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="17" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.05</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.15</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.50</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="17" building_type="high-rise apartment" reference_standard="ASHRAE 90.1_2004" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="19" type="exterior wall" >
|
||||
<window_ratio units="-">0.3</window_ratio>
|
||||
<window>4</window>
|
||||
</construction>
|
||||
<construction id="22" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="17" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.05</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.15</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.50</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="18" building_type="small office" reference_standard="ASHRAE 189.1_2009" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="2" type="exterior wall" >
|
||||
<window_ratio units="-">0.21</window_ratio>
|
||||
<window>3</window>
|
||||
</construction>
|
||||
<construction id="12" type="exterior slab" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="4" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.05</average_storey_height>
|
||||
<number_of_storeys units="-">2</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">130</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.05</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.1</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="19" building_type="medium office" reference_standard="ASHRAE 189.1_2009" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="15" type="exterior wall" >
|
||||
<window_ratio units="-">0.33</window_ratio>
|
||||
<window>3</window>
|
||||
</construction>
|
||||
<construction id="12" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="9" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.34</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.05</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.1</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="20" building_type="large office" reference_standard="ASHRAE 189.1_2009" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="2" type="exterior wall" >
|
||||
<window_ratio units="-">0.38</window_ratio>
|
||||
<window>3</window>
|
||||
</construction>
|
||||
<construction id="1" type="interior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="9" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.34</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">130</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.05</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.1</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="21" building_type="primary school" reference_standard="ASHRAE 189.1_2009" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="15" type="exterior wall" >
|
||||
<window_ratio units="-">0.35</window_ratio>
|
||||
<window>3</window>
|
||||
</construction>
|
||||
<construction id="12" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="9" type="roof" >
|
||||
<window_ratio units="-">0.0019</window_ratio>
|
||||
<window>1</window>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.96</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.05</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.1</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="22" building_type="secondary school" reference_standard="ASHRAE 189.1_2009" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="15" type="exterior wall" >
|
||||
<window_ratio units="-">0.33</window_ratio>
|
||||
<window>3</window>
|
||||
</construction>
|
||||
<construction id="12" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="9" type="roof" >
|
||||
<window_ratio units="-">0.0068</window_ratio>
|
||||
<window>1</window>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.96</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.05</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.1</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="23" building_type="stand-alone retail" reference_standard="ASHRAE 189.1_2009" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="2" type="exterior wall" >
|
||||
<window_ratio units="-">0.07</window_ratio>
|
||||
<window>3</window>
|
||||
</construction>
|
||||
<construction id="10" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="9" type="roof" >
|
||||
<window_ratio units="-">0.0064</window_ratio>
|
||||
<window>1</window>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">6.1</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">130</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.05</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.1</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="24" building_type="strip mall" reference_standard="ASHRAE 189.1_2009" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="15" type="exterior wall" >
|
||||
<window_ratio units="-">0.11</window_ratio>
|
||||
<window>3</window>
|
||||
</construction>
|
||||
<construction id="10" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="9" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">5.18</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.05</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.1</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="25" building_type="supermarket" reference_standard="ASHRAE 189.1_2009" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="2" type="exterior wall" >
|
||||
<window_ratio units="-">0.11</window_ratio>
|
||||
<window>3</window>
|
||||
</construction>
|
||||
<construction id="10" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="9" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">6.1</average_storey_height>
|
||||
<number_of_storeys units="-">1</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">130</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.05</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.10</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="26" building_type="quick service restaurant" reference_standard="ASHRAE 189.1_2009" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="16" type="exterior wall" >
|
||||
<window_ratio units="-">0.14</window_ratio>
|
||||
<window>3</window>
|
||||
</construction>
|
||||
<construction id="10" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="4" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.05</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.05</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.10</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="27" building_type="full service restaurant" reference_standard="ASHRAE 189.1_2009" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="15" type="exterior wall" >
|
||||
<window_ratio units="-">0.17</window_ratio>
|
||||
<window>3</window>
|
||||
</construction>
|
||||
<construction id="10" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="4" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.05</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.05</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.10</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="28" building_type="small hotel" reference_standard="ASHRAE 189.1_2009" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="15" type="exterior wall" >
|
||||
<window_ratio units="-">0.11</window_ratio>
|
||||
<window>3</window>
|
||||
</construction>
|
||||
<construction id="10" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="9" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.05</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.05</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.10</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="29" building_type="large hotel" reference_standard="ASHRAE 189.1_2009" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="2" type="exterior wall" >
|
||||
<window_ratio units="-">0.3</window_ratio>
|
||||
<window>3</window>
|
||||
</construction>
|
||||
<construction id="1" type="interior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="9" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.05</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">130</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.05</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.10</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="30" building_type="hospital" reference_standard="ASHRAE 189.1_2009" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="2" type="exterior wall" >
|
||||
<window_ratio units="-">0.15</window_ratio>
|
||||
<window>3</window>
|
||||
</construction>
|
||||
<construction id="1" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="9" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">4.27</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">130</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.05</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.10</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="31" building_type="outpatient healthcare" reference_standard="ASHRAE 189.1_2009" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="15" type="exterior wall" >
|
||||
<window_ratio units="-">0.2</window_ratio>
|
||||
<window>3</window>
|
||||
</construction>
|
||||
<construction id="10" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="9" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.05</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.05</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.10</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="32" building_type="warehouse" reference_standard="ASHRAE 189.1_2009" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="23" type="exterior wall" >
|
||||
<window_ratio units="-">0.006</window_ratio>
|
||||
<window>3</window>
|
||||
</construction>
|
||||
<construction id="7" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="11" type="roof" >
|
||||
<window_ratio units="-">.0032</window_ratio>
|
||||
<window>1</window>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">8.53</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.05</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.10</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="33" building_type="midrise apartment" reference_standard="ASHRAE 189.1_2009" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="15" type="exterior wall" >
|
||||
<window_ratio units="-">0.15</window_ratio>
|
||||
<window>3</window>
|
||||
</construction>
|
||||
<construction id="12" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="9" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.05</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.05</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.10</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
<archetype id="34" building_type="high-rise apartment" reference_standard="ASHRAE 189.1_2009" climate_zone="ASHRAE_2004:4A">
|
||||
<constructions>
|
||||
<construction id="15" type="exterior wall" >
|
||||
<window_ratio units="-">0.3</window_ratio>
|
||||
<window>3</window>
|
||||
</construction>
|
||||
<construction id="12" type="exterior slab">
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
<construction id="9" type="roof" >
|
||||
<window_ratio units="-">0</window_ratio>
|
||||
<window/>
|
||||
</construction>
|
||||
</constructions>
|
||||
<average_storey_height units="m">3.05</average_storey_height>
|
||||
<number_of_storeys units="-">3</number_of_storeys>
|
||||
<thermal_capacity units="kJ/K m2">90</thermal_capacity>
|
||||
<extra_loses_due_to_thermal_bridges units="W/K m2">0.05</extra_loses_due_to_thermal_bridges>
|
||||
<indirect_heated_ratio units="-">0.15</indirect_heated_ratio>
|
||||
<infiltration_rate_for_ventilation_system_off units="ACH">0.10</infiltration_rate_for_ventilation_system_off>
|
||||
<infiltration_rate_for_ventilation_system_on units="ACH">0</infiltration_rate_for_ventilation_system_on>
|
||||
</archetype>
|
||||
|
||||
</archetypes>
|
606
tests_data/us_constructions.xml
Normal file
606
tests_data/us_constructions.xml
Normal file
|
@ -0,0 +1,606 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<library name="us_library">
|
||||
<windows>
|
||||
<window type="skylight" id="1" name="189.1-2009 Nonres 4B Skylight without Curb">
|
||||
<shgc>0.32</shgc>
|
||||
<frame_ratio units="-">0</frame_ratio>
|
||||
<thickness units="m">0.003</thickness>
|
||||
<solar_transmittance_at_normal_incidence units="-">0.301483</solar_transmittance_at_normal_incidence>
|
||||
<front_side_solar_transmittance_at_normal_incidence units="-">0.648517</front_side_solar_transmittance_at_normal_incidence>
|
||||
<back_side_solar_transmittance_at_normal_incidence units="-">0.648517</back_side_solar_transmittance_at_normal_incidence>
|
||||
<conductivity units="W/m K">0.0133144</conductivity>
|
||||
</window>
|
||||
<window type="skylight" id="2" name="90.1-2004 Nonres 4B Skylight without Curb">
|
||||
<shgc>0.49</shgc>
|
||||
<frame_ratio units="-">0</frame_ratio>
|
||||
<thickness units="m">0.003</thickness>
|
||||
<solar_transmittance_at_normal_incidence units="-">0.481761</solar_transmittance_at_normal_incidence>
|
||||
<front_side_solar_transmittance_at_normal_incidence units="-">0.468239</front_side_solar_transmittance_at_normal_incidence>
|
||||
<back_side_solar_transmittance_at_normal_incidence units="-">0.468239</back_side_solar_transmittance_at_normal_incidence>
|
||||
<conductivity units="W/m K">0.03026</conductivity>
|
||||
</window>
|
||||
<window type="window" id="3" name="189.1-2009 Nonres 4B Window Nonmetal framing">
|
||||
<shgc>0.35</shgc>
|
||||
<frame_ratio units="-">0</frame_ratio>
|
||||
<thickness units="m">0.003</thickness>
|
||||
<solar_transmittance_at_normal_incidence units="-">0.328881</solar_transmittance_at_normal_incidence>
|
||||
<front_side_solar_transmittance_at_normal_incidence units="-">0.621119</front_side_solar_transmittance_at_normal_incidence>
|
||||
<back_side_solar_transmittance_at_normal_incidence units="-">0.621119</back_side_solar_transmittance_at_normal_incidence>
|
||||
<conductivity units="W/m K">0.0071399</conductivity>
|
||||
</window>
|
||||
<window type="window" id="4" name="90.1-2004 Nonres 4B Window Fixed">
|
||||
<shgc>0.36</shgc>
|
||||
<frame_ratio units="-">0</frame_ratio>
|
||||
<thickness units="m">0.003</thickness>
|
||||
<solar_transmittance_at_normal_incidence units="-">0.354957</solar_transmittance_at_normal_incidence>
|
||||
<front_side_solar_transmittance_at_normal_incidence units="-">0.595043</front_side_solar_transmittance_at_normal_incidence>
|
||||
<back_side_solar_transmittance_at_normal_incidence units="-">0.595043</back_side_solar_transmittance_at_normal_incidence>
|
||||
<conductivity units="W/m K">0.0134755</conductivity>
|
||||
</window>
|
||||
</windows>
|
||||
<materials>
|
||||
<material id="1" name="MAT-CC05 8 HW CONCRETE">
|
||||
<conductivity units="W/m K">1.311</conductivity>
|
||||
<density units="kg/m3">2240</density>
|
||||
<specific_heat units="J/kg K">836.8</specific_heat>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.7</solar_absorptance>
|
||||
<visible_absorptance units="-">0.7</visible_absorptance>
|
||||
</material>
|
||||
<material id="2" name="CP02 CARPET PAD">
|
||||
<no_mass>true</no_mass>
|
||||
<thermal_resistance units="m2 K/W">0.21648</thermal_resistance>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.7</solar_absorptance>
|
||||
<visible_absorptance units="-">0.8</visible_absorptance>
|
||||
</material>
|
||||
<material id="3" name="Floor Insulation [4]">
|
||||
<conductivity units="W/m K">0.045</conductivity>
|
||||
<density units="kg/m3">265</density>
|
||||
<specific_heat units="J/kg K">836.8</specific_heat>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.7</solar_absorptance>
|
||||
<visible_absorptance units="-">0.7</visible_absorptance>
|
||||
</material>
|
||||
<material id="4" name="1IN Stucco">
|
||||
<conductivity units="W/m K">0.6918</conductivity>
|
||||
<density units="kg/m3">1858</density>
|
||||
<specific_heat units="J/kg K">837</specific_heat>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.92</solar_absorptance>
|
||||
<visible_absorptance units="-">0.92</visible_absorptance>
|
||||
</material>
|
||||
<material id="5" name="8IN Concrete HW">
|
||||
<conductivity units="W/m K">1.7296</conductivity>
|
||||
<density units="kg/m3">2243</density>
|
||||
<specific_heat units="J/kg K">837</specific_heat>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.65</solar_absorptance>
|
||||
<visible_absorptance units="-">0.65</visible_absorptance>
|
||||
</material>
|
||||
<material id="6" name="Wall Insulation [37]">
|
||||
<conductivity units="W/m K">0.0432</conductivity>
|
||||
<density units="kg/m3">91</density>
|
||||
<specific_heat units="J/kg K">837</specific_heat>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.5</solar_absorptance>
|
||||
<visible_absorptance units="-">0.5</visible_absorptance>
|
||||
</material>
|
||||
<material id="7" name="1/2IN Gypsum">
|
||||
<conductivity units="W/m K">0.16</conductivity>
|
||||
<density units="kg/m3">784.9</density>
|
||||
<specific_heat units="J/kg K">830</specific_heat>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.92</solar_absorptance>
|
||||
<visible_absorptance units="-">0.92</visible_absorptance>
|
||||
</material>
|
||||
<material id="8" name="Wood Siding">
|
||||
<conductivity units="W/m K">0.11</conductivity>
|
||||
<density units="kg/m3">544.62</density>
|
||||
<specific_heat units="J/kg K">1210</specific_heat>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.78</solar_absorptance>
|
||||
<visible_absorptance units="-">0.78</visible_absorptance>
|
||||
</material>
|
||||
<material id="9" name="Wood Shingles">
|
||||
<conductivity units="W/m K">0.115</conductivity>
|
||||
<density units="kg/m3">513</density>
|
||||
<specific_heat units="J/kg K">1255</specific_heat>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.78</solar_absorptance>
|
||||
<visible_absorptance units="-">0.78</visible_absorptance>
|
||||
</material>
|
||||
<material id="10" name="1IN Wood Decking">
|
||||
<conductivity units="W/m K">0.1211</conductivity>
|
||||
<density units="kg/m3">593</density>
|
||||
<specific_heat units="J/kg K">2510</specific_heat>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.78</solar_absorptance>
|
||||
<visible_absorptance units="-">0.78</visible_absorptance>
|
||||
</material>
|
||||
<material id="11" name="Roof Insulation [23]">
|
||||
<conductivity units="W/m K">0.049</conductivity>
|
||||
<density units="kg/m3">265</density>
|
||||
<specific_heat units="J/kg K">836.8</specific_heat>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.7</solar_absorptance>
|
||||
<visible_absorptance units="-">0.7</visible_absorptance>
|
||||
</material>
|
||||
<material id="12" name="MAT-SHEATH">
|
||||
<no_mass>true</no_mass>
|
||||
<thermal_resistance units="m2 K/W">0.36256</thermal_resistance>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.7</solar_absorptance>
|
||||
<visible_absorptance units="-">0.7</visible_absorptance>
|
||||
</material>
|
||||
<material id="13" name="MAT-SHEATH">
|
||||
<no_mass>true</no_mass>
|
||||
<thermal_resistance units="m2 K/W">0.36256</thermal_resistance>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.7</solar_absorptance>
|
||||
<visible_absorptance units="-">0.7</visible_absorptance>
|
||||
</material>
|
||||
<material id="14" name="Metal Decking">
|
||||
<conductivity units="W/m K">45.006</conductivity>
|
||||
<density units="kg/m3">7680</density>
|
||||
<specific_heat units="J/kg K">418.4</specific_heat>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.7</solar_absorptance>
|
||||
<visible_absorptance units="-">0.3</visible_absorptance>
|
||||
</material>
|
||||
<material id="15" name="Roof Membrane">
|
||||
<conductivity units="W/m K">0.16</conductivity>
|
||||
<density units="kg/m3">1121.29</density>
|
||||
<specific_heat units="J/kg K">1460</specific_heat>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.7</solar_absorptance>
|
||||
<visible_absorptance units="-">0.7</visible_absorptance>
|
||||
</material>
|
||||
<material id="16" name="CP02 CARPET PAD">
|
||||
<no_mass>true</no_mass>
|
||||
<thermal_resistance units="m2 K/W">0.21648</thermal_resistance>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.7</solar_absorptance>
|
||||
<visible_absorptance units="-">0.8</visible_absorptance>
|
||||
</material>
|
||||
<material id="17" name="MAT-SHEATH">
|
||||
<no_mass>true</no_mass>
|
||||
<thermal_resistance units="m2 K/W">0.36256</thermal_resistance>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.7</solar_absorptance>
|
||||
<visible_absorptance units="-">0.7</visible_absorptance>
|
||||
</material>
|
||||
<material id="18" name="CP02 CARPET PAD">
|
||||
<no_mass>true</no_mass>
|
||||
<thermal_resistance units="m2 K/W">0.21648</thermal_resistance>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.7</solar_absorptance>
|
||||
<visible_absorptance units="-">0.8</visible_absorptance>
|
||||
</material>
|
||||
<material id="19" name="MAT-SHEATH">
|
||||
<no_mass>true</no_mass>
|
||||
<thermal_resistance units="m2 K/W">0.36256</thermal_resistance>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.7</solar_absorptance>
|
||||
<visible_absorptance units="-">0.7</visible_absorptance>
|
||||
</material>
|
||||
<material id="20" name="CP02 CARPET PAD">
|
||||
<no_mass>true</no_mass>
|
||||
<thermal_resistance units="m2 K/W">0.21648</thermal_resistance>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.7</solar_absorptance>
|
||||
<visible_absorptance units="-">0.8</visible_absorptance>
|
||||
</material>
|
||||
<material id="21" name="Wall Insulation [38]">
|
||||
<conductivity units="W/m K">0.045</conductivity>
|
||||
<density units="kg/m3">265</density>
|
||||
<specific_heat units="J/kg K">836.8</specific_heat>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.7</solar_absorptance>
|
||||
<visible_absorptance units="-">0.7</visible_absorptance>
|
||||
</material>
|
||||
<material id="22" name="metal siding">
|
||||
<conductivity units="W/m K">44.96</conductivity>
|
||||
<density units="kg/m3">7688.86</density>
|
||||
<specific_heat units="J/kg K">410</specific_heat>
|
||||
<thermal_absorptance units="-">0.9</thermal_absorptance>
|
||||
<solar_absorptance units="-">0.2</solar_absorptance>
|
||||
<visible_absorptance units="-">0.2</visible_absorptance>
|
||||
</material>
|
||||
|
||||
</materials>
|
||||
<constructions>
|
||||
<construction type="exterior slab" id="1" name="189.1-2009 Nonres 4B Exposed Floor Mass">
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>3</material>
|
||||
<thickness units="m">0.0795397</thickness>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>1</material>
|
||||
<thickness units="m">0.20321</thickness>
|
||||
</layer>
|
||||
<layer id="3" name="Layer 3">
|
||||
<material>2</material>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="exterior wall" id="2" name="189.1-2009 Nonres 4B Ext Wall Mass">
|
||||
<outside_solar_absorptance units="-">0.92</outside_solar_absorptance>
|
||||
<outside_thermal_absorptance units="-">0.9</outside_thermal_absorptance>
|
||||
<outside_visible_absorptance units="-">0.92</outside_visible_absorptance>
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>4</material>
|
||||
<thickness units="m">0.0253</thickness>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>5</material>
|
||||
<thickness units="m">0.2033</thickness>
|
||||
</layer>
|
||||
<layer id="3" name="Layer 3">
|
||||
<material>6</material>
|
||||
<thickness units="m">0.0680962</thickness>
|
||||
</layer>
|
||||
<layer id="4" name="Layer 4">
|
||||
<material>7</material>
|
||||
<thickness units="m">0.01271</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="exterior wall" id="3" name="90.1-2004 Nonres 4B Ext Wall Wood-Framed and Other">
|
||||
<outside_solar_absorptance units="-">0.92</outside_solar_absorptance>
|
||||
<outside_thermal_absorptance units="-">0.9</outside_thermal_absorptance>
|
||||
<outside_visible_absorptance units="-">0.92</outside_visible_absorptance>
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>8</material>
|
||||
<thickness units="m">0.01</thickness>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>3</material>
|
||||
<thickness units="m">0.0746874</thickness>
|
||||
</layer>
|
||||
<layer id="3" name="Layer 3">
|
||||
<material>7</material>
|
||||
<thickness units="m">0.01271</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="roof" id="4" name="189.1-2009 Nonres 4B Roof Attic and Other">
|
||||
<outside_solar_absorptance units="-">0.78</outside_solar_absorptance>
|
||||
<outside_thermal_absorptance units="-">0.9</outside_thermal_absorptance>
|
||||
<outside_visible_absorptance units="-">0.78</outside_visible_absorptance>
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>9</material>
|
||||
<thickness units="m">0.0178</thickness>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>10</material>
|
||||
<thickness units="m">0.0254</thickness>
|
||||
</layer>
|
||||
<layer id="3" name="Layer 3">
|
||||
<material>11</material>
|
||||
<thickness units="m">0.375211</thickness>
|
||||
</layer>
|
||||
<layer id="4" name="Layer 4">
|
||||
<material>7</material>
|
||||
<thickness units="m">0.01271</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="roof" id="5" name="90.1-2004 Nonres 4B Roof Attic and Other">
|
||||
<outside_solar_absorptance units="-">0.78</outside_solar_absorptance>
|
||||
<outside_thermal_absorptance units="-">0.9</outside_thermal_absorptance>
|
||||
<outside_visible_absorptance units="-">0.78</outside_visible_absorptance>
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>9</material>
|
||||
<thickness units="m">0.0178</thickness>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>10</material>
|
||||
<thickness units="m">0.0254</thickness>
|
||||
</layer>
|
||||
<layer id="3" name="Layer 3">
|
||||
<material>11</material>
|
||||
<thickness units="m">0.221604</thickness>
|
||||
</layer>
|
||||
<layer id="4" name="Layer 4">
|
||||
<material>7</material>
|
||||
<thickness units="m">0.01271</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="exterior wall" id="6" name="189.1-2009 Nonres 4B Ext Wall Steel-Framed">
|
||||
<outside_solar_absorptance units="-">0.92</outside_solar_absorptance>
|
||||
<outside_thermal_absorptance units="-">0.9</outside_thermal_absorptance>
|
||||
<outside_visible_absorptance units="-">0.92</outside_visible_absorptance>
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>12</material>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>3</material>
|
||||
<thickness units="m">0.118387</thickness>
|
||||
</layer>
|
||||
<layer id="3" name="Layer 3">
|
||||
<material>7</material>
|
||||
<thickness units="m">0.01271</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="exterior slab" id="7" name="189.1-2009 Nonres 4B Ext Slab Unheated - 8in Slab without Carpet">
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>1</material>
|
||||
<thickness units="m">0.20321</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="exterior wall" id="8" name="90.1-2004 Nonres 4B Ext Wall Steel-Framed">
|
||||
<outside_solar_absorptance units="-">0.92</outside_solar_absorptance>
|
||||
<outside_thermal_absorptance units="-">0.9</outside_thermal_absorptance>
|
||||
<outside_visible_absorptance units="-">0.92</outside_visible_absorptance>
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>13</material>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>3</material>
|
||||
<thickness units="m">0.0373223</thickness>
|
||||
</layer>
|
||||
<layer id="3" name="Layer 3">
|
||||
<material>7</material>
|
||||
<thickness units="m">0.01271</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="roof" id="9" name="189.1-2009 Nonres 4B Roof IEAD">
|
||||
<outside_solar_absorptance units="-">0.7</outside_solar_absorptance>
|
||||
<outside_thermal_absorptance units="-">0.9</outside_thermal_absorptance>
|
||||
<outside_visible_absorptance units="-">0.7</outside_visible_absorptance>
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>15</material>
|
||||
<thickness units="m">0.0095</thickness>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>11</material>
|
||||
<thickness units="m">0.210538</thickness>
|
||||
</layer>
|
||||
<layer id="3" name="Layer 3">
|
||||
<material>14</material>
|
||||
<thickness units="m">0.001524</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="exterior slab" id="10" name="189.1-2009 Nonres 4B Ext Slab Unheated - 4in Slab without Carpet">
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>1</material>
|
||||
<thickness units="m">0.1016</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="roof" id="11" name="189.1-2009 Nonres 4B Roof Metal Building">
|
||||
<outside_solar_absorptance units="-">0.7</outside_solar_absorptance>
|
||||
<outside_thermal_absorptance units="-">0.9</outside_thermal_absorptance>
|
||||
<outside_visible_absorptance units="-">0.3</outside_visible_absorptance>
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>14</material>
|
||||
<thickness units="m">0.001524</thickness>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>11</material>
|
||||
<thickness units="m">0.23578</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="exterior slab" id="12" name="189.1-2009 Nonres 4B Ext Slab Unheated - 4in Slab with Carpet">
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>1</material>
|
||||
<thickness units="m">0.1016</thickness>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>16</material>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="exterior wall" id="13" name="90.1-2004 Nonres 4B Ext Wall Mass">
|
||||
<outside_solar_absorptance units="-">0.92</outside_solar_absorptance>
|
||||
<outside_thermal_absorptance units="-">0.9</outside_thermal_absorptance>
|
||||
<outside_visible_absorptance units="-">0.92</outside_visible_absorptance>
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>4</material>
|
||||
<thickness units="m">0.0253</thickness>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>5</material>
|
||||
<thickness units="m">0.2033</thickness>
|
||||
</layer>
|
||||
<layer id="3" name="Layer 3">
|
||||
<material>6</material>
|
||||
<thickness units="m">0.0338606</thickness>
|
||||
</layer>
|
||||
<layer id="4" name="Layer 4">
|
||||
<material>7</material>
|
||||
<thickness units="m">0.01271</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="roof" id="14" name="90.1-2004 Nonres 4B Roof Metal Building">
|
||||
<outside_solar_absorptance units="-">0.7</outside_solar_absorptance>
|
||||
<outside_thermal_absorptance units="-">0.9</outside_thermal_absorptance>
|
||||
<outside_visible_absorptance units="-">0.3</outside_visible_absorptance>
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>14</material>
|
||||
<thickness units="m">0.001524</thickness>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>11</material>
|
||||
<thickness units="m">0.123533</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="exterior wall" id="15" name="189.1-2009 Res 4B Ext Wall Steel-Framed">
|
||||
<outside_solar_absorptance units="-">0.92</outside_solar_absorptance>
|
||||
<outside_thermal_absorptance units="-">0.9</outside_thermal_absorptance>
|
||||
<outside_visible_absorptance units="-">0.92</outside_visible_absorptance>
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>17</material>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>3</material>
|
||||
<thickness units="m">0.118387</thickness>
|
||||
</layer>
|
||||
<layer id="3" name="Layer 3">
|
||||
<material>7</material>
|
||||
<thickness units="m">0.01271</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="exterior wall" id="16" name="189.1-2009 Nonres 4B Ext Wall Wood-Framed and Other">
|
||||
<outside_solar_absorptance units="-">0.92</outside_solar_absorptance>
|
||||
<outside_thermal_absorptance units="-">0.9</outside_thermal_absorptance>
|
||||
<outside_visible_absorptance units="-">0.92</outside_visible_absorptance>
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>8</material>
|
||||
<thickness units="m">0.01</thickness>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>3</material>
|
||||
<thickness units="m">0.110422</thickness>
|
||||
</layer>
|
||||
<layer id="3" name="Layer 3">
|
||||
<material>7</material>
|
||||
<thickness units="m">0.01271</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="roof" id="17" name="90.1-2004 Nonres 4B Roof IEAD">
|
||||
<outside_solar_absorptance units="-">0.7</outside_solar_absorptance>
|
||||
<outside_thermal_absorptance units="-">0.9</outside_thermal_absorptance>
|
||||
<outside_visible_absorptance units="-">0.7</outside_visible_absorptance>
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>15</material>
|
||||
<thickness units="m">0.0095</thickness>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>11</material>
|
||||
<thickness units="m">0.124958</thickness>
|
||||
</layer>
|
||||
<layer id="3" name="Layer 3">
|
||||
<material>14</material>
|
||||
<thickness units="m">0.001524</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="exterior slab" id="18" name="90.1-2004 Nonres 4B Exposed Floor Mass">
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>3</material>
|
||||
<thickness units="m">0.0463846</thickness>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>1</material>
|
||||
<thickness units="m">0.20321</thickness>
|
||||
</layer>
|
||||
<layer id="3" name="Layer 3">
|
||||
<material>18</material>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="exterior wall" id="19" name="90.1-2004 Res 4B Ext Wall Steel-Framed">
|
||||
<outside_solar_absorptance units="-">0.92</outside_solar_absorptance>
|
||||
<outside_thermal_absorptance units="-">0.9</outside_thermal_absorptance>
|
||||
<outside_visible_absorptance units="-">0.92</outside_visible_absorptance>
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>19</material>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>3</material>
|
||||
<thickness units="m">0.0971136</thickness>
|
||||
</layer>
|
||||
<layer id="3" name="Layer 3">
|
||||
<material>7</material>
|
||||
<thickness units="m">0.01271</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="exterior slab" id="20" name="90.1-2004 Nonres 4B Ext Slab Unheated - 8in Slab without Carpet">
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>1</material>
|
||||
<thickness units="m">0.20321</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="exterior slab" id="21" name="90.1-2004 Nonres 4B Ext Slab Unheated - 4in Slab without Carpet">
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>1</material>
|
||||
<thickness units="m">0.1016</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="exterior slab" id="22" name="90.1-2004 Nonres 4B Ext Slab Unheated - 4in Slab with Carpet">
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>1</material>
|
||||
<thickness units="m">0.1016</thickness>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>20</material>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="exterior wall" id="23" name="189.1-2009 Nonres 4B Ext Wall Metal Building">
|
||||
<outside_solar_absorptance units="-">0.92</outside_solar_absorptance>
|
||||
<outside_thermal_absorptance units="-">0.9</outside_thermal_absorptance>
|
||||
<outside_visible_absorptance units="-">0.92</outside_visible_absorptance>
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>22</material>
|
||||
<thickness units="m">0.0015</thickness>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>21</material>
|
||||
<thickness units="m">0.139618</thickness>
|
||||
</layer>
|
||||
<layer id="3" name="Layer 3">
|
||||
<material>7</material>
|
||||
<thickness units="m">0.01271</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
<construction type="exterior wall" id="24" name="90.1-2004 Nonres 4B Ext Wall Metal Building">
|
||||
<outside_solar_absorptance units="-">0.92</outside_solar_absorptance>
|
||||
<outside_thermal_absorptance units="-">0.9</outside_thermal_absorptance>
|
||||
<outside_visible_absorptance units="-">0.92</outside_visible_absorptance>
|
||||
<layers>
|
||||
<layer id="1" name="Layer 1">
|
||||
<material>22</material>
|
||||
<thickness units="m">0.0015</thickness>
|
||||
</layer>
|
||||
<layer id="2" name="Layer 2">
|
||||
<material>21</material>
|
||||
<thickness units="m">0.0598725</thickness>
|
||||
</layer>
|
||||
<layer id="3" name="Layer 3">
|
||||
<material>7</material>
|
||||
<thickness units="m">0.01271</thickness>
|
||||
</layer>
|
||||
</layers>
|
||||
</construction>
|
||||
</constructions>
|
||||
</library>
|
Loading…
Reference in New Issue
Block a user