diff --git a/hub/exports/energy_building_exports_factory.py b/hub/exports/energy_building_exports_factory.py index 952e4a12..7d494b29 100644 --- a/hub/exports/energy_building_exports_factory.py +++ b/hub/exports/energy_building_exports_factory.py @@ -20,9 +20,10 @@ class EnergyBuildingsExportsFactory: """ Energy Buildings exports factory class """ - def __init__(self, handler, city, path, custom_insel_block='d18599', target_buildings=None): + def __init__(self, handler, city, path, custom_insel_block='d18599', target_buildings=None, weather_file=None): self._city = city self._export_type = '_' + handler.lower() + self._weather_file = weather_file validate_import_export_type(EnergyBuildingsExportsFactory, handler) if isinstance(path, str): path = Path(path) @@ -53,12 +54,13 @@ class EnergyBuildingsExportsFactory: """ idf_data_path = (Path(__file__).parent / './building_energy/idf_files/').resolve() url = wh().epw_file(self._city.region_code) - weather_path = (Path(__file__).parent.parent / f'data/weather/epw/{url.rsplit("/", 1)[1]}').resolve() - if not weather_path.exists(): - with open(weather_path, 'wb') as epw_file: + if self._weather_file is None: + self._weather_file = (Path(__file__).parent.parent / f'data/weather/epw/{url.rsplit("/", 1)[1]}').resolve() + if not self._weather_file.exists(): + with open(self._weather_file, 'wb') as epw_file: epw_file.write(requests.get(url, allow_redirects=True).content) - return Idf(self._city, self._path, (idf_data_path / 'Minimal.idf'), (idf_data_path / 'Energy+.idd'), weather_path, - target_buildings=self._target_buildings) + return Idf(self._city, self._path, (idf_data_path / 'Minimal.idf'), (idf_data_path / 'Energy+.idd'), + self._weather_path, target_buildings=self._target_buildings) @property def _insel_monthly_energy_balance(self):