import glob import os import sys from pathlib import Path import csv from hub.imports.geometry_factory import GeometryFactory from hub.imports.construction_factory import ConstructionFactory from hub.imports.usage_factory import UsageFactory from hub.imports.weather_factory import WeatherFactory from hub.exports.energy_building_exports_factory import EnergyBuildingsExportsFactory from hub.helpers.dictionaries import Dictionaries from hub.imports.results_factory import ResultFactory sys.path.append('./') try: file_path = (Path(__file__).parent.parent / 'input_files' / 'eilat.geojson') out_path = (Path(__file__).parent.parent / 'out_files') files = glob.glob(f'{out_path}/*') for file in files: if file != '.gitignore': os.remove(file) print('[simulation start]') city = GeometryFactory('geojson', path=file_path, height_field='heightmax', year_of_construction_field='ANNEE_CONS', function_field='CODE_UTILI', function_to_hub=Dictionaries().eilat_function_to_hub_function).city print(f'city created from {file_path}') ConstructionFactory('eilat', city).enrich() print('enrich constructions... done') UsageFactory('eilat', city).enrich() print('enrich usage... done') WeatherFactory('epw', city).enrich() print('enrich weather... done') area = 0 volume = 0 for building in city.buildings: volume = building.volume for ground in building.grounds: area += ground.perimeter_polygon.area print('exporting:') _idf = EnergyBuildingsExportsFactory('idf', city, out_path).export() print(' idf exported...') _idf.run() csv_file = str((out_path / f'{city.name}_out.csv').resolve()) eso_file = str((out_path / f'{city.name}_out.eso').resolve()) idf_file = str((out_path / f'{city.name}.idf').resolve()) obj_file = str((out_path / f'{city.name}.obj').resolve()) #ResultFactory('energy_plus_multiple_buildings', city, out_path).enrich() except Exception as ex: print(ex) print('error: ', ex) print('[simulation abort]') sys.stdout.flush()