workflow v2.0 using BuildingEnergyExportsFactory and without main, to be used with an API

This commit is contained in:
Pilar 2022-11-25 15:56:11 -05:00
parent 16c36f1112
commit 241ca4298f
14 changed files with 197 additions and 47526 deletions

4
cache/.gitignore vendored
View File

@ -1,4 +0,0 @@
# Ignore everything in this directory
*
# Except this file
!.gitignore

View File

@ -1,9 +0,0 @@
# 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

View File

@ -1,19 +0,0 @@
import math
import numpy as np
class Geometry:
def __init__(self, delta=0.5):
self._delta = delta
def almost_equal(self, v1, v2):
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
@staticmethod
def to_points_matrix(points, remove_last=False):
rows = points.size//3
points = points.reshape(rows, 3)
if remove_last:
points = np.delete(points, rows-1, 0)
return points

View File

@ -1,13 +0,0 @@
class LibraryCodes(object):
construction_code = {
'Wall': '1',
'Ground': '2',
'Roof': '3',
'interior wall': '5',
'ground wall': '6',
'attic floor': '7',
'interior slab': '8'
}
def construction_types_to_code(self, construction_type):
return self.construction_code[construction_type]

130
main.py
View File

@ -1,130 +0,0 @@
"""
Monthly energy balance main
SPDX - License - Identifier: LGPL - 3.0 - or -later
Copyright © 2020 Project Author Pilar Monsalvete Álvarez de Uribarri pilar.monsalvete@concordia.ca
"""
import sys
from pathlib import Path
from argparse import ArgumentParser
import ast
import pandas as pd
import datetime
import helpers.constants as cte
from helpers import monthly_values as mv
from simplified_radiosity_algorithm import SimplifiedRadiosityAlgorithm
from imports.geometry_factory import GeometryFactory
from imports.weather_factory import WeatherFactory
from imports.construction_factory import ConstructionFactory
from imports.usage_factory import UsageFactory
from exports.energy_building_exports_factory import EnergyBuildingsExportsFactory
from insel.monthly_demand_calculation import MonthlyDemandCalculation
parser = ArgumentParser(description='Monthly energy balance workflow v1.0.')
required = parser.add_argument_group('required arguments')
parser.add_argument('--geometry_type', '-g', help='Geometry type {citygml}', default='citygml')
required.add_argument('--input_geometry_file', '-i', help='Input geometry file', required=True)
parser.add_argument('--use_cached_sra_file', '-u', help='Use sra files from cache, instead of freshly calculated sra '
'files', default=False)
required.add_argument('--project_folder', '-f', help='Project folder', required=True)
required.add_argument('--weather_file_name', '-w', help='Weather file', required=True)
required.add_argument('--climate_reference_city', '-c', help='Closest city with climate weather', required=True)
try:
args = parser.parse_args()
except SystemExit:
sys.exit()
keep_files = True
print('begin_time', datetime.datetime.now())
# Step 1: Initialize the city model
file = Path(args.input_geometry_file).resolve()
city = GeometryFactory(args.geometry_type, file).city
for building in city.buildings:
volume = building.volume
if str(volume) == 'inf':
sys.stderr.write(f'Building {building.name} has geometry errors. It has been removed from the city\n')
city.remove_city_object(building)
print('begin_populating_time', datetime.datetime.now())
# Step 2: Populate city adding thermal- and usage-related parameters
for building in city.buildings:
building.year_of_construction = 2006
if building.function is None:
building.function = 'large office'
building.attic_heated = 0
building.basement_heated = 1
ConstructionFactory('nrel', city).enrich()
UsageFactory('comnet', city).enrich()
print('begin_weather_time', datetime.datetime.now())
# Step 3: Populate city adding climate-related parameters
weather_format = 'epw'
city.climate_reference_city = args.climate_reference_city
tmp_path = (Path(args.project_folder) / 'tmp').resolve()
city.climate_file = (tmp_path / f'{args.climate_reference_city}.cli').resolve()
WeatherFactory(weather_format, city, file_name=args.weather_file_name).enrich()
for building in city.buildings:
if cte.HOUR not in building.external_temperature:
print('No external temperature found')
sys.exit()
if cte.MONTH not in building.external_temperature:
building.external_temperature[cte.MONTH] = mv.MonthlyValues().\
get_mean_values(building.external_temperature[cte.HOUR][[weather_format]])
max_buildings_handled_by_sra = 500
sra = SimplifiedRadiosityAlgorithm(city, Path(args.project_folder).resolve(), args.weather_file_name)
if ast.literal_eval(args.use_cached_sra_file):
sra.set_irradiance_surfaces(city)
else:
total_number_of_buildings = len(city.buildings)
if total_number_of_buildings > max_buildings_handled_by_sra:
radius = 80
for building in city.buildings:
new_city = city.region(building.centroid, radius)
sra_new = SimplifiedRadiosityAlgorithm(new_city, Path(args.project_folder).resolve(), args.weather_file_name)
sra_new.call_sra(weather_format, keep_files=True)
sra_new.set_irradiance_surfaces(city, building_name=building.name)
else:
sra.call_sra(weather_format, keep_files=keep_files)
sra.set_irradiance_surfaces(city)
print('begin_insel_time', datetime.datetime.now())
# Step 5: Demand calculation calling INSEL
EnergyBuildingsExportsFactory('insel_monthly_energy_balance', city, tmp_path).export()
insel = MonthlyDemandCalculation(city, tmp_path, weather_format)
insel.run()
insel.results()
print('begin_write_results_time', datetime.datetime.now())
# Step 6: Print results
print_results = None
file = 'city name: ' + city.name + '\n'
for building in city.buildings:
insel_file_name = building.name + '.insel'
heating_results = building.heating[cte.MONTH].rename(columns={'INSEL': f'{building.name} heating Wh'})
cooling_results = building.cooling[cte.MONTH].rename(columns={'INSEL': f'{building.name} cooling Wh'})
if print_results is None:
print_results = heating_results
else:
print_results = pd.concat([print_results, heating_results], axis='columns')
print_results = pd.concat([print_results, cooling_results], axis='columns')
file += '\n'
file += 'name: ' + building.name + '\n'
file += 'year of construction: ' + str(building.year_of_construction) + '\n'
file += 'function: ' + building.function + '\n'
file += 'floor area: ' + str(building.internal_zones[0].area) + '\n'
file += 'storeys: ' + str(building.storeys_above_ground) + '\n'
file += 'heated_volume: ' + str(building.volume) + '\n'
file += 'volume: ' + str(building.volume) + '\n'
full_path_results = Path(args.project_folder + '/outputs/demand.csv').resolve()
print_results.to_csv(full_path_results)
full_path_metadata = Path(args.project_folder + '/outputs/metadata.csv').resolve()
with open(full_path_metadata, 'w') as metadata_file:
metadata_file.write(file)
print('end_time', datetime.datetime.now())

93
monthly_energy_balance.py Normal file
View File

@ -0,0 +1,93 @@
"""
InselMonthlyEnergyBalance exports models to insel format
SPDX - License - Identifier: LGPL - 3.0 - or -later
Copyright © 2022 Concordia CERC group
Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca
"""
from pathlib import Path
import pandas as pd
import helpers.constants as cte
from helpers.monthly_values import MonthlyValues
from exports.energy_building_exports_factory import EnergyBuildingsExportsFactory
from insel.monthly_demand_calculation import MonthlyDemandCalculation
class MonthlyEnergyBalance:
def __init__(self, city, path, attic_heated_case, basement_heated_case, weather_format):
self._city = city
print(path)
self._path = path
self._weather_format = weather_format
for building in self._city.buildings:
building.attic_heated = attic_heated_case
building.basement_heated = basement_heated_case
self.sanity_check()
self.workflow()
def sanity_check(self):
levels_of_detail = self._city.level_of_detail
if levels_of_detail.geometry is None:
raise Exception(f'Level of detail of geometry not assigned')
if levels_of_detail.geometry < 1:
raise Exception(f'Level of detail of geometry = {levels_of_detail.geometry}. Required minimum level 1')
if levels_of_detail.construction is None:
raise Exception(f'Level of detail of construction not assigned')
if levels_of_detail.construction < 1:
raise Exception(f'Level of detail of construction = {levels_of_detail.construction}. Required minimum level 1')
if levels_of_detail.usage is None:
raise Exception(f'Level of detail of usage not assigned')
if levels_of_detail.usage < 1:
raise Exception(f'Level of detail of usage = {levels_of_detail.usage}. Required minimum level 1')
for building in self._city.buildings:
if cte.HOUR not in building.external_temperature:
raise Exception(f'Building {building.name} does not have external temperature assigned')
for surface in building.surfaces:
if surface.type != cte.GROUND:
if cte.HOUR not in surface.global_irradiance:
raise Exception(f'Building {building.name} does not have global irradiance on surfaces assigned')
def workflow(self):
for building in self._city.buildings:
if cte.MONTH not in building.external_temperature:
building.external_temperature[cte.MONTH] = MonthlyValues(). \
get_mean_values(building.external_temperature[cte.HOUR][[self._weather_format]])
for surface in building.surfaces:
if surface.type != cte.GROUND:
if cte.MONTH not in surface.global_irradiance:
surface.global_irradiance[cte.MONTH] = MonthlyValues().get_total_month(surface.global_irradiance[cte.HOUR])
tmp_path = (Path(__file__).parent / 'tmp').resolve()
EnergyBuildingsExportsFactory('insel_monthly_energy_balance', self._city, tmp_path).export()
insel = MonthlyDemandCalculation(self._city, tmp_path, self._weather_format)
insel.run()
insel.results()
self._print_results()
def _print_results(self):
print_results = None
file = 'city name: ' + self._city.name + '\n'
for building in self._city.buildings:
heating_results = building.heating[cte.MONTH].rename(columns={'INSEL': f'{building.name} heating Wh'})
cooling_results = building.cooling[cte.MONTH].rename(columns={'INSEL': f'{building.name} cooling Wh'})
if print_results is None:
print_results = heating_results
else:
print_results = pd.concat([print_results, heating_results], axis='columns')
print_results = pd.concat([print_results, cooling_results], axis='columns')
file += '\n'
file += 'name: ' + building.name + '\n'
file += 'year of construction: ' + str(building.year_of_construction) + '\n'
file += 'function: ' + building.function + '\n'
file += 'floor area: ' + str(building.internal_zones[0].area) + '\n'
file += 'storeys: ' + str(building.storeys_above_ground) + '\n'
file += 'heated_volume: ' + str(0.85 * building.volume) + '\n'
file += 'volume: ' + str(building.volume) + '\n'
full_path_results = Path(self._path / 'demand.csv').resolve()
print_results.to_csv(full_path_results)
full_path_metadata = Path(self._path / 'metadata.csv').resolve()
with open(full_path_metadata, 'w') as metadata_file:
metadata_file.write(file)

4
outputs/.gitignore vendored
View File

@ -1,4 +0,0 @@
# Ignore everything in this directory
*
# Except this file
!.gitignore

File diff suppressed because it is too large Load Diff

View File

@ -1,626 +0,0 @@
<?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">
<lowerCorner>299606.4441129853 55348.37638737355 0</lowerCorner>
<upperCorner>301879.9050504853 57594.05119206105 62.04879541695123</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>residential</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>residential</function>
</Building>
</cityObjectMember>
</CityModel>

View File

@ -1,925 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<core:CityModel 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:boundedBy>
<gml:Envelope srsName="EPSG:26911" srsDimension="3">
<gml:lowerCorner>326011.03601000085 5526048.416990001 -1.6000000000058208</gml:lowerCorner>
<gml:upperCorner>329466.6600299999 5529018.72205 9.80000000000291</gml:upperCorner>
</gml:Envelope>
</gml:boundedBy>
<core:cityObjectMember>
<bldg:Building gml:id="BLD100086">
<gen:doubleAttribute name="gross_floor_area">
<gen:value>148</gen:value>
</gen:doubleAttribute>
<gen:stringAttribute name="gross_floor_raea_unit">
<gen:value>m2</gen:value>
</gen:stringAttribute>
<bldg:function>residential</bldg:function>
<bldg:yearOfConstruction>2019</bldg:yearOfConstruction>
<bldg:measuredHeight>4.4</bldg:measuredHeight>
<bldg:storeysAboveGround>1</bldg:storeysAboveGround>
<bldg:lod2Solid>
<gml:Solid srsName="EPSG:26911" srsDimension="3">
<gml:exterior>
<gml:CompositeSurface>
<gml:surfaceMember xlink:href="#UUID_3e35c142-df2d-40b7-aae4-557db18ec7c6"/>
<gml:surfaceMember xlink:href="#UUID_a49ef266-ec5e-443b-9a64-c9c93747d01a"/>
<gml:surfaceMember xlink:href="#UUID_ef7f2ab9-ad15-4d43-8234-2794686aa04f"/>
<gml:surfaceMember xlink:href="#UUID_daee926d-4126-4cc4-90c3-163884289002"/>
<gml:surfaceMember xlink:href="#UUID_c39b3ab3-f724-4abb-b5a0-4cf7a111a081"/>
<gml:surfaceMember xlink:href="#UUID_9e3db7c2-b03e-424a-932e-ee236b69eca1"/>
<gml:surfaceMember xlink:href="#UUID_825bb74a-aa70-4b35-9562-ba89aa8cd378"/>
<gml:surfaceMember xlink:href="#UUID_f155bbcf-0f71-4e0e-9cf1-2c4cc7b52da6"/>
<gml:surfaceMember xlink:href="#UUID_a2c4f627-5b56-43ea-a53d-84e828250d49"/>
<gml:surfaceMember xlink:href="#UUID_5268aa45-e711-4e47-8ae2-9498b02758ef"/>
<gml:surfaceMember xlink:href="#UUID_829f53c2-1834-4f09-b180-db4cd81e773a"/>
<gml:surfaceMember xlink:href="#UUID_bdd4f42b-6aaf-4a30-b92f-351deedf79ad"/>
<gml:surfaceMember xlink:href="#UUID_5663501c-ae1a-4c42-a779-cc5c77cbe9ae"/>
<gml:surfaceMember xlink:href="#UUID_c489400f-a849-4be4-bbfd-729cf1020aa8"/>
<gml:surfaceMember xlink:href="#UUID_909d9316-ea8c-4458-9523-3632a0a67dca"/>
</gml:CompositeSurface>
</gml:exterior>
</gml:Solid>
</bldg:lod2Solid>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_6919c082-ca72-4008-8dbc-bc947505cbd7">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_3e35c142-df2d-40b7-aae4-557db18ec7c6">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327915.32435999997 5527616.99446 3.8290600000036648 327918.65699999966 5527620.1219999995 2.8999999999941792 327912.1970099993 5527620.328 2.8999999999941792 327915.32435999997 5527616.99446 3.8290600000036648</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_3ae51274-1b29-4784-ad12-47e590b1aa3e">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_a49ef266-ec5e-443b-9a64-c9c93747d01a">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327920.9297700003 5527614.973139999 3.7896900000050664 327924.1219900008 5527617.968 2.8999999999941792 327920.45799 5527618.085000001 2.8999999999941792 327920.9297700003 5527614.973139999 3.7896900000050664</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_bf100ceb-a838-400f-8f25-60656fcf6b5b">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_ef7f2ab9-ad15-4d43-8234-2794686aa04f">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327918.65699999966 5527620.1219999995 0 327918.65699999966 5527620.1219999995 2.8999999999941792 327918.5720000006 5527617.433 2.8999999999941792 327918.5720000006 5527617.433 0 327918.65699999966 5527620.1219999995 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_01cc0d33-f732-4541-9041-b50628b20eea">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_daee926d-4126-4cc4-90c3-163884289002">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327912.1970099993 5527620.328 0 327912.1970099993 5527620.328 2.8999999999941792 327918.65699999966 5527620.1219999995 2.8999999999941792 327918.65699999966 5527620.1219999995 0 327912.1970099993 5527620.328 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_86c2f9ea-533e-4de5-82a4-899520cca64b">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_c39b3ab3-f724-4abb-b5a0-4cf7a111a081">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327911.7700100001 5527606.959000001 0 327911.7700100001 5527606.959000001 2.8999999999941792 327912.1970099993 5527620.328 2.8999999999941792 327912.1970099993 5527620.328 0 327911.7700100001 5527606.959000001 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_6d4a4e78-fcd5-44c3-99f7-298722288831">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_9e3db7c2-b03e-424a-932e-ee236b69eca1">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327923.7589999996 5527606.57701 0 327923.7589999996 5527606.57701 2.8999999999941792 327911.7700100001 5527606.959000001 2.8999999999941792 327911.7700100001 5527606.959000001 0 327923.7589999996 5527606.57701 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_3526e729-c17c-46c2-b632-1347baf4b799">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_825bb74a-aa70-4b35-9562-ba89aa8cd378">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327924.1219900008 5527617.968 0 327924.1219900008 5527617.968 2.8999999999941792 327923.7589999996 5527606.57701 2.8999999999941792 327923.7589999996 5527606.57701 0 327924.1219900008 5527617.968 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_29cd539d-855f-4067-8dbd-30a7fbb9d8d5">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_f155bbcf-0f71-4e0e-9cf1-2c4cc7b52da6">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327920.45799 5527618.085000001 0 327920.45799 5527618.085000001 2.8999999999941792 327924.1219900008 5527617.968 2.8999999999941792 327924.1219900008 5527617.968 0 327920.45799 5527618.085000001 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_4cdae8c2-e795-4553-b548-64aa5d957203">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_a2c4f627-5b56-43ea-a53d-84e828250d49">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327918.5720000006 5527617.433 0 327918.5720000006 5527617.433 2.8999999999941792 327920.45799 5527618.085000001 2.8999999999941792 327920.45799 5527618.085000001 0 327918.5720000006 5527617.433 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:GroundSurface gml:id="UUID_fa9ef0bc-bf10-477b-9c0e-27dc04667679">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_5268aa45-e711-4e47-8ae2-9498b02758ef">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327918.5720000006 5527617.433 0 327920.45799 5527618.085000001 0 327924.1219900008 5527617.968 0 327923.7589999996 5527606.57701 0 327911.7700100001 5527606.959000001 0 327912.1970099993 5527620.328 0 327918.65699999966 5527620.1219999995 0 327918.5720000006 5527617.433 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:GroundSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_c60b7d6d-65fe-4a40-bb4c-861a618d9b8f">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_829f53c2-1834-4f09-b180-db4cd81e773a">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327918.65699999966 5527620.1219999995 2.8999999999941792 327915.32435999997 5527616.99446 3.8290600000036648 327915.19247999974 5527612.844070001 3.8292599999986123 327918.5720000006 5527617.433 2.8999999999941792 327918.65699999966 5527620.1219999995 2.8999999999941792</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_952b965f-e0d1-4bfd-9641-1fb1a3ed0163">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_bdd4f42b-6aaf-4a30-b92f-351deedf79ad">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327911.7700100001 5527606.959000001 2.8999999999941792 327916.7891399991 5527611.6678 4.298760000005132 327915.19247999974 5527612.844070001 3.8292599999986123 327915.32435999997 5527616.99446 3.8290600000036648 327912.1970099993 5527620.328 2.8999999999941792 327911.7700100001 5527606.959000001 2.8999999999941792</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_733946c8-f30b-49ba-a4ee-21fdda0e2864">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_5663501c-ae1a-4c42-a779-cc5c77cbe9ae">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327923.7589999996 5527606.57701 2.8999999999941792 327918.70940000005 5527611.959000001 4.399999999994179 327916.7891399991 5527611.6678 4.298760000005132 327911.7700100001 5527606.959000001 2.8999999999941792 327923.7589999996 5527606.57701 2.8999999999941792</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_9d86a537-1cb9-4aec-87cd-5bc7cb36152d">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_c489400f-a849-4be4-bbfd-729cf1020aa8">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327924.1219900008 5527617.968 2.8999999999941792 327920.9297700003 5527614.973139999 3.7896900000050664 327918.70940000005 5527611.959000001 4.399999999994179 327923.7589999996 5527606.57701 2.8999999999941792 327924.1219900008 5527617.968 2.8999999999941792</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_6d2fb90c-5d12-4bc3-af9f-214f8a280021">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_909d9316-ea8c-4458-9523-3632a0a67dca">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327918.5720000006 5527617.433 2.8999999999941792 327915.19247999974 5527612.844070001 3.8292599999986123 327916.7891399991 5527611.6678 4.298760000005132 327918.70940000005 5527611.959000001 4.399999999994179 327920.9297700003 5527614.973139999 3.7896900000050664 327920.45799 5527618.085000001 2.8999999999941792 327918.5720000006 5527617.433 2.8999999999941792</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
</bldg:Building>
</core:cityObjectMember>
<core:cityObjectMember>
<bldg:Building gml:id="BLD131702">
<gen:doubleAttribute name="gross_floor_area">
<gen:value>184</gen:value>
</gen:doubleAttribute>
<gen:stringAttribute name="gross_floor_raea_unit">
<gen:value>m2</gen:value>
</gen:stringAttribute>
<bldg:function>residential</bldg:function>
<bldg:yearOfConstruction>1967</bldg:yearOfConstruction>
<bldg:measuredHeight>4.3</bldg:measuredHeight>
<bldg:storeysAboveGround>1</bldg:storeysAboveGround>
<bldg:lod2Solid>
<gml:Solid srsName="EPSG:26911" srsDimension="3">
<gml:exterior>
<gml:CompositeSurface>
<gml:surfaceMember xlink:href="#UUID_e5c39971-5698-4d10-ae06-e51dc3a377ce"/>
<gml:surfaceMember xlink:href="#UUID_293983c1-b135-4a2c-905b-0278c410e97d"/>
<gml:surfaceMember xlink:href="#UUID_1c09ccd7-2575-4938-a2f1-ccb6b24d3b03"/>
<gml:surfaceMember xlink:href="#UUID_585484c4-65b0-423a-a409-c75a07954c3f"/>
<gml:surfaceMember xlink:href="#UUID_4d946189-9405-4e48-8fb6-db97066f9833"/>
<gml:surfaceMember xlink:href="#UUID_f2d8d3d2-3573-405c-8e36-02a725386d3e"/>
<gml:surfaceMember xlink:href="#UUID_2e9d0c95-f353-469a-aebb-3fa678c9c5bd"/>
<gml:surfaceMember xlink:href="#UUID_3730f689-06de-46fb-9d2e-02b86699ee6a"/>
<gml:surfaceMember xlink:href="#UUID_5774dcca-47c4-4dd6-ade1-10cdaf4967ab"/>
</gml:CompositeSurface>
</gml:exterior>
</gml:Solid>
</bldg:lod2Solid>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_adb175e6-f054-4550-9b63-727a170cf7b5">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_e5c39971-5698-4d10-ae06-e51dc3a377ce">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327889.6721599996 5528260.4894900005 4.30000000000291 327893.94501000084 5528255.66602 2.8000000000029104 327894.2890000008 5528264.94702 2.8000000000029104 327889.6721599996 5528260.4894900005 4.30000000000291</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_1ba722de-c8db-47df-b9c6-77618b5afaa4">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_293983c1-b135-4a2c-905b-0278c410e97d">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327881.71928999946 5528260.815470001 4.1848900000040885 327877.7609899994 5528264.91498 2.8000000000029104 327877.47000000067 5528257.051030001 2.8000000000029104 327881.71928999946 5528260.815470001 4.1848900000040885</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_84b8a1c1-5f10-42e9-923b-d4e78499857f">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_1c09ccd7-2575-4938-a2f1-ccb6b24d3b03">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327894.2890000008 5528264.94702 0 327894.2890000008 5528264.94702 2.8000000000029104 327893.94501000084 5528255.66602 2.8000000000029104 327893.94501000084 5528255.66602 0 327894.2890000008 5528264.94702 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_fd4d0222-cb62-4ffd-93b1-ad02891d0cc2">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_585484c4-65b0-423a-a409-c75a07954c3f">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327877.7609899994 5528264.91498 0 327877.7609899994 5528264.91498 2.8000000000029104 327894.2890000008 5528264.94702 2.8000000000029104 327894.2890000008 5528264.94702 0 327877.7609899994 5528264.91498 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_5ce0d1e5-da65-4d02-8f90-287d72e45431">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_4d946189-9405-4e48-8fb6-db97066f9833">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327877.47000000067 5528257.051030001 0 327877.47000000067 5528257.051030001 2.8000000000029104 327877.7609899994 5528264.91498 2.8000000000029104 327877.7609899994 5528264.91498 0 327877.47000000067 5528257.051030001 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_51112e11-39d4-413d-a2b9-4ac2dc5d1f11">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_f2d8d3d2-3573-405c-8e36-02a725386d3e">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327893.94501000084 5528255.66602 0 327893.94501000084 5528255.66602 2.8000000000029104 327877.47000000067 5528257.051030001 2.8000000000029104 327877.47000000067 5528257.051030001 0 327893.94501000084 5528255.66602 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:GroundSurface gml:id="UUID_cf5a51de-113d-497a-a47b-3152342855bd">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_2e9d0c95-f353-469a-aebb-3fa678c9c5bd">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327893.94501000084 5528255.66602 0 327877.47000000067 5528257.051030001 0 327877.7609899994 5528264.91498 0 327894.2890000008 5528264.94702 0 327893.94501000084 5528255.66602 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:GroundSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_e89e9479-6848-41a8-b732-e1ed79ad549f">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_3730f689-06de-46fb-9d2e-02b86699ee6a">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327877.7609899994 5528264.91498 2.8000000000029104 327881.71928999946 5528260.815470001 4.1848900000040885 327889.6721599996 5528260.4894900005 4.30000000000291 327894.2890000008 5528264.94702 2.8000000000029104 327877.7609899994 5528264.91498 2.8000000000029104</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_9c73fe7d-eef7-4c5d-b8b8-7e7ecdd167a2">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_5774dcca-47c4-4dd6-ade1-10cdaf4967ab">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327893.94501000084 5528255.66602 2.8000000000029104 327889.6721599996 5528260.4894900005 4.30000000000291 327881.71928999946 5528260.815470001 4.1848900000040885 327877.47000000067 5528257.051030001 2.8000000000029104 327893.94501000084 5528255.66602 2.8000000000029104</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
</bldg:Building>
</core:cityObjectMember>
<core:cityObjectMember>
<bldg:Building gml:id="BLD132148">
<gen:doubleAttribute name="gross_floor_area">
<gen:value>169</gen:value>
</gen:doubleAttribute>
<gen:stringAttribute name="gross_floor_raea_unit">
<gen:value>m2</gen:value>
</gen:stringAttribute>
<bldg:function>residential</bldg:function>
<bldg:yearOfConstruction>1968</bldg:yearOfConstruction>
<bldg:measuredHeight>4.4</bldg:measuredHeight>
<bldg:storeysAboveGround>1</bldg:storeysAboveGround>
<bldg:lod2Solid>
<gml:Solid srsName="EPSG:26911" srsDimension="3">
<gml:exterior>
<gml:CompositeSurface>
<gml:surfaceMember xlink:href="#UUID_6e67a380-559d-4a4b-96bc-896b464e3ce4"/>
<gml:surfaceMember xlink:href="#UUID_62387503-740a-4497-a42e-1135659a9353"/>
<gml:surfaceMember xlink:href="#UUID_837aaa06-d81e-413b-bd52-2ccd4cd69462"/>
<gml:surfaceMember xlink:href="#UUID_8eef1d1e-67e3-407a-a8d4-83e150e3c313"/>
<gml:surfaceMember xlink:href="#UUID_2f238b7e-1340-484f-8391-befd1f7dd3ca"/>
<gml:surfaceMember xlink:href="#UUID_f0117b8a-ba25-4aef-9a30-99b4a5fd0233"/>
<gml:surfaceMember xlink:href="#UUID_476739ee-39a9-4714-a554-726b32cd996e"/>
<gml:surfaceMember xlink:href="#UUID_4266c758-c0aa-48c5-9cc2-b45e0e679cf5"/>
<gml:surfaceMember xlink:href="#UUID_b7c6846c-a548-4216-8ecb-67a82ee44f11"/>
</gml:CompositeSurface>
</gml:exterior>
</gml:Solid>
</bldg:lod2Solid>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_9a612561-3c66-4183-8294-2a19a45de3af">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_6e67a380-559d-4a4b-96bc-896b464e3ce4">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327742.01761000045 5528353.102499999 4.399999999994179 327746.7440000009 5528357.50702 2.8999999999941792 327737.6129999999 5528357.828980001 2.8999999999941792 327742.01761000045 5528353.102499999 4.399999999994179</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_02786aa1-b451-42e3-82f3-bfd01e8ae368">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_62387503-740a-4497-a42e-1135659a9353">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327741.7813799996 5528346.39899 4.399999999994179 327737.0549999997 5528341.99402 2.8999999999941792 327746.1860000007 5528341.672970001 2.8999999999941792 327741.7813799996 5528346.39899 4.399999999994179</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_d3c34c74-cc20-4c9b-9718-672774a795e2">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_837aaa06-d81e-413b-bd52-2ccd4cd69462">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327746.7440000009 5528357.50702 0 327746.7440000009 5528357.50702 2.8999999999941792 327746.1860000007 5528341.672970001 2.8999999999941792 327746.1860000007 5528341.672970001 0 327746.7440000009 5528357.50702 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_42a94b4f-2dea-4ad7-8d5e-59337dd96d5b">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_8eef1d1e-67e3-407a-a8d4-83e150e3c313">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327737.6129999999 5528357.828980001 0 327737.6129999999 5528357.828980001 2.8999999999941792 327746.7440000009 5528357.50702 2.8999999999941792 327746.7440000009 5528357.50702 0 327737.6129999999 5528357.828980001 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_3e3c8647-7a58-4ad4-be23-5071133333f3">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_2f238b7e-1340-484f-8391-befd1f7dd3ca">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327737.0549999997 5528341.99402 0 327737.0549999997 5528341.99402 2.8999999999941792 327737.6129999999 5528357.828980001 2.8999999999941792 327737.6129999999 5528357.828980001 0 327737.0549999997 5528341.99402 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_4facb252-1e3b-428e-8087-be1ea5633236">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_f0117b8a-ba25-4aef-9a30-99b4a5fd0233">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327746.1860000007 5528341.672970001 0 327746.1860000007 5528341.672970001 2.8999999999941792 327737.0549999997 5528341.99402 2.8999999999941792 327737.0549999997 5528341.99402 0 327746.1860000007 5528341.672970001 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:GroundSurface gml:id="UUID_e9569b7d-65f7-4c84-aa57-8505391bb2f3">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_476739ee-39a9-4714-a554-726b32cd996e">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327746.1860000007 5528341.672970001 0 327737.0549999997 5528341.99402 0 327737.6129999999 5528357.828980001 0 327746.7440000009 5528357.50702 0 327746.1860000007 5528341.672970001 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:GroundSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_fff45dbc-592b-4e9c-8394-8c1a9b01dc19">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_4266c758-c0aa-48c5-9cc2-b45e0e679cf5">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327746.7440000009 5528357.50702 2.8999999999941792 327742.01761000045 5528353.102499999 4.399999999994179 327741.7813799996 5528346.39899 4.399999999994179 327746.1860000007 5528341.672970001 2.8999999999941792 327746.7440000009 5528357.50702 2.8999999999941792</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_a9f91fe6-060b-4f3d-bf3a-49e4ede6831a">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_b7c6846c-a548-4216-8ecb-67a82ee44f11">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327737.0549999997 5528341.99402 2.8999999999941792 327741.7813799996 5528346.39899 4.399999999994179 327742.01761000045 5528353.102499999 4.399999999994179 327737.6129999999 5528357.828980001 2.8999999999941792 327737.0549999997 5528341.99402 2.8999999999941792</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
</bldg:Building>
</core:cityObjectMember>
<core:cityObjectMember>
<bldg:Building gml:id="BLD126221">
<gen:doubleAttribute name="gross_floor_area">
<gen:value>178</gen:value>
</gen:doubleAttribute>
<gen:stringAttribute name="gross_floor_raea_unit">
<gen:value>m2</gen:value>
</gen:stringAttribute>
<bldg:function>residential</bldg:function>
<bldg:yearOfConstruction>1974</bldg:yearOfConstruction>
<bldg:measuredHeight>5.3</bldg:measuredHeight>
<bldg:storeysAboveGround>1</bldg:storeysAboveGround>
<bldg:lod2Solid>
<gml:Solid srsName="EPSG:26911" srsDimension="3">
<gml:exterior>
<gml:CompositeSurface>
<gml:surfaceMember xlink:href="#UUID_83f7c8de-6592-4051-87e8-e53cf1bff666"/>
<gml:surfaceMember xlink:href="#UUID_085c374a-d224-4473-b115-29b1eb1426ee"/>
<gml:surfaceMember xlink:href="#UUID_296e7780-2f1b-4569-bc9b-9bcd1f2d0ada"/>
<gml:surfaceMember xlink:href="#UUID_a5a956e0-0217-4aff-92c7-e3c7732b6c03"/>
<gml:surfaceMember xlink:href="#UUID_64d7e393-dda1-45a3-8f42-82b77deb466a"/>
<gml:surfaceMember xlink:href="#UUID_417c5d97-3884-4abd-9b86-05db29387fd7"/>
<gml:surfaceMember xlink:href="#UUID_d6fd56dc-fc72-46b8-847f-b25266d3c864"/>
<gml:surfaceMember xlink:href="#UUID_00a5a748-92cc-4dac-9b1b-f3c9e8a252b4"/>
<gml:surfaceMember xlink:href="#UUID_e03b384d-9342-4c5e-8987-09ce6fe08d92"/>
<gml:surfaceMember xlink:href="#UUID_50559cac-1742-4b7e-ba64-3dae96cee280"/>
<gml:surfaceMember xlink:href="#UUID_5480fee5-ca6d-438c-85a7-242d574cf2af"/>
<gml:surfaceMember xlink:href="#UUID_6fd39224-fd54-43b7-b36e-3c348e3a1bb7"/>
<gml:surfaceMember xlink:href="#UUID_e0064db9-80cc-4b97-96ce-898b46ee6f75"/>
</gml:CompositeSurface>
</gml:exterior>
</gml:Solid>
</bldg:lod2Solid>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_2de9444e-9753-4eea-a548-18685adb6744">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_83f7c8de-6592-4051-87e8-e53cf1bff666">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327339.9300800003 5527571.58928 5.30000000000291 327337.7550000008 5527578.159 3.8000000000029104 327333.58898999915 5527569.294 3.8000000000029104 327339.9300800003 5527571.58928 5.30000000000291</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_618b47c2-c386-4fdd-92fe-64b970ec686c">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_085c374a-d224-4473-b115-29b1eb1426ee">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327346.9847800005 5527563.90927 4.722859999994398 327343.0859999992 5527562.504009999 3.8000000000029104 327348.3900099993 5527560.0110100005 3.8000000000029104 327346.9847800005 5527563.90927 4.722859999994398</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_c9b31fae-7942-4088-aab0-25eb7a8de944">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_296e7780-2f1b-4569-bc9b-9bcd1f2d0ada">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327333.58898999915 5527569.294 0 327333.58898999915 5527569.294 3.8000000000029104 327337.7550000008 5527578.159 3.8000000000029104 327337.7550000008 5527578.159 0 327333.58898999915 5527569.294 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_19cb7070-a024-4c28-933a-0705b5f902c0">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_a5a956e0-0217-4aff-92c7-e3c7732b6c03">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327343.99399000034 5527564.435009999 0 327343.99399000034 5527564.435009999 3.8000000000029104 327333.58898999915 5527569.294 3.8000000000029104 327333.58898999915 5527569.294 0 327343.99399000034 5527564.435009999 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_0ea9995b-bc13-4072-a8b9-9eb731c873a5">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_64d7e393-dda1-45a3-8f42-82b77deb466a">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327343.0859999992 5527562.504009999 0 327343.0859999992 5527562.504009999 3.8000000000029104 327343.99399000034 5527564.435009999 3.8000000000029104 327343.99399000034 5527564.435009999 0 327343.0859999992 5527562.504009999 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_caa8ef09-8ff4-4f00-a226-46bb4c60ef6a">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_417c5d97-3884-4abd-9b86-05db29387fd7">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327348.3900099993 5527560.0110100005 0 327348.3900099993 5527560.0110100005 3.8000000000029104 327343.0859999992 5527562.504009999 3.8000000000029104 327343.0859999992 5527562.504009999 0 327348.3900099993 5527560.0110100005 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_752fc0b9-bf62-4d2a-84dd-2d77a8f3814b">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_d6fd56dc-fc72-46b8-847f-b25266d3c864">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327353.06399000064 5527569.953 0 327353.06399000064 5527569.953 3.8000000000029104 327348.3900099993 5527560.0110100005 3.8000000000029104 327348.3900099993 5527560.0110100005 0 327353.06399000064 5527569.953 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:WallSurface gml:id="UUID_a6be4294-1346-495a-ade5-957fbbb665b0">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_00a5a748-92cc-4dac-9b1b-f3c9e8a252b4">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327337.7550000008 5527578.159 0 327337.7550000008 5527578.159 3.8000000000029104 327353.06399000064 5527569.953 3.8000000000029104 327353.06399000064 5527569.953 0 327337.7550000008 5527578.159 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:WallSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:GroundSurface gml:id="UUID_90d0900f-e5d3-40c6-97cd-c67095888e89">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_e03b384d-9342-4c5e-8987-09ce6fe08d92">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327337.7550000008 5527578.159 0 327353.06399000064 5527569.953 0 327348.3900099993 5527560.0110100005 0 327343.0859999992 5527562.504009999 0 327343.99399000034 5527564.435009999 0 327333.58898999915 5527569.294 0 327337.7550000008 5527578.159 0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:GroundSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_4d1da16c-9b9a-419a-8415-9c5dfb3afb4d">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_50559cac-1742-4b7e-ba64-3dae96cee280">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327343.99399000034 5527564.435009999 3.8000000000029104 327347.8957700003 5527565.84684 4.722829999998794 327347.1216000002 5527567.986129999 5.230139999999665 327339.9300800003 5527571.58928 5.30000000000291 327333.58898999915 5527569.294 3.8000000000029104 327343.99399000034 5527564.435009999 3.8000000000029104</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_66ba0f9e-bc5f-4df4-9457-e9ece305d335">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_5480fee5-ca6d-438c-85a7-242d574cf2af">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327343.0859999992 5527562.504009999 3.8000000000029104 327346.9847800005 5527563.90927 4.722859999994398 327347.8957700003 5527565.84684 4.722829999998794 327343.99399000034 5527564.435009999 3.8000000000029104 327343.0859999992 5527562.504009999 3.8000000000029104</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_15bfa943-fa1b-473c-ae13-b974382c1999">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_6fd39224-fd54-43b7-b36e-3c348e3a1bb7">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327353.06399000064 5527569.953 3.8000000000029104 327347.1216000002 5527567.986129999 5.230139999999665 327347.8957700003 5527565.84684 4.722829999998794 327346.9847800005 5527563.90927 4.722859999994398 327348.3900099993 5527560.0110100005 3.8000000000029104 327353.06399000064 5527569.953 3.8000000000029104</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
<bldg:boundedBy>
<bldg:RoofSurface gml:id="UUID_171e288a-58e9-497d-a2c7-8b0488bb8f9c">
<bldg:lod2MultiSurface>
<gml:MultiSurface srsName="EPSG:26911" srsDimension="3">
<gml:surfaceMember>
<gml:Polygon gml:id="UUID_e0064db9-80cc-4b97-96ce-898b46ee6f75">
<gml:exterior>
<gml:LinearRing>
<gml:posList>327337.7550000008 5527578.159 3.8000000000029104 327339.9300800003 5527571.58928 5.30000000000291 327347.1216000002 5527567.986129999 5.230139999999665 327353.06399000064 5527569.953 3.8000000000029104 327337.7550000008 5527578.159 3.8000000000029104</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</bldg:lod2MultiSurface>
</bldg:RoofSurface>
</bldg:boundedBy>
</bldg:Building>
</core:cityObjectMember>
</core:CityModel>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,104 @@
"""
TestMonthlyEnergyBalanceWorkflow test
SPDX - License - Identifier: LGPL - 3.0 - or -later
Copyright © 2022 Concordia CERC group
Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca
"""
from pathlib import Path
from unittest import TestCase
import pandas as pd
import helpers.constants as cte
from helpers.monthly_values import MonthlyValues
from imports.geometry_factory import GeometryFactory
from imports.construction_factory import ConstructionFactory
from imports.usage_factory import UsageFactory
from imports.weather_factory import WeatherFactory
from monthly_energy_balance import MonthlyEnergyBalance
class TestMonthlyEnergyBalanceWorkflow(TestCase):
"""
TestMonthlyEnergyBalanceWorkflow class
"""
def setUp(self) -> None:
"""
Test setup
:return: None
"""
self._city = None
self._complete_city = None
self._example_path = (Path(__file__).parent / 'tests_data').resolve()
self._output_path = (Path(__file__).parent / 'tests_outputs').resolve()
def _get_citygml(self, file):
file_path = (self._example_path / file).resolve()
self._city = GeometryFactory('citygml', path=file_path).city
self.assertIsNotNone(self._city, 'city is none')
return self._city
@property
def _read_sra_file(self) -> []:
path = (self._example_path / "one_building_in_kelowna_sra_SW.out").resolve()
_results = pd.read_csv(path, sep='\s+', header=0)
id_building = ''
header_building = []
_radiation = []
for column in _results.columns.values:
if id_building != column.split(':')[1]:
id_building = column.split(':')[1]
if len(header_building) > 0:
_radiation.append(pd.concat([MonthlyValues().month_hour, _results[header_building]], axis=1))
header_building = [column]
else:
header_building.append(column)
_radiation.append(pd.concat([MonthlyValues().month_hour, _results[header_building]], axis=1))
return _radiation
def _set_irradiance_surfaces(self, city, irradiance_format):
"""
saves in building surfaces the correspondent irradiance at different time-scales depending on the mode
if building is None, it saves all buildings' surfaces in file, if building is specified, it saves only that
specific building values
:parameter city: city
:return: none
"""
for radiation in self._read_sra_file:
city_object_name = radiation.columns.values.tolist()[1].split(':')[1]
building = city.city_object(city_object_name)
for column in radiation.columns.values:
if column == cte.MONTH:
continue
header_id = column
surface_id = header_id.split(':')[2]
surface = building.surface_by_id(surface_id)
new_value = pd.DataFrame(radiation[[header_id]].to_numpy(), columns=[irradiance_format])
surface.global_irradiance[cte.HOUR] = new_value
def _enrich_city(self, city, weather_file, weather_format, irradiance_format, construction_format, usage_format):
WeatherFactory(weather_format, city, file_name=weather_file).enrich()
self._set_irradiance_surfaces(city, irradiance_format)
for building in city.buildings:
building.year_of_construction = 2006
if building.function is None:
building.function = cte.LARGE_OFFICE
ConstructionFactory(construction_format, city).enrich()
UsageFactory(usage_format, city).enrich()
def test_workflow(self):
outputs_path = (Path(__file__).parent / 'tests_outputs').resolve()
gml_file = 'one_building_in_kelowna.gml'
city = self._get_citygml(gml_file)
weather_file = 'CAN_PQ_Montreal.Intl.AP.716270_CWEC.epw'
weather_format = 'epw'
irradiance_format = 'sra'
construction_format = 'nrel'
usage_format = 'comnet'
attic_heated_case = 0
basement_heated_case = 0
self._enrich_city(city, weather_file, weather_format, irradiance_format, construction_format, usage_format)
MonthlyEnergyBalance(city, outputs_path, attic_heated_case, basement_heated_case, weather_format)