'Python, TypeError:

I am very beginner in python. I tried the code (need to change, osm file to idf file, change schedule file object and then run eppy calcultion on Energyplus) - single code works. Then I did for loop to do multiple simulations but I got following error:

TypeError                                 Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_7956/1993903841.py in <module>
     10     epw = get_data_from_path(WEATHER_FILEPATH)
     11     osm_editor = OpenStudioModelEditor(osm)
---> 12     idf = osm_editor.forward_translate()
     13     simulator = Simulator(IDD_FILEPATH,idf,epw,simulation_id=simulation_id,output_directory=output_directory)
     14     idf = simulator.get_idf_object()

~\OneDrive\Dokumendid\US_work\Journal_paper\doe_xstock\simulate.py in forward_translate(self)
     20 
     21     def forward_translate(self):
---> 22         osm = self.__get_model()
     23         forward_translator = energyplus.ForwardTranslator()
     24         idf = forward_translator.translateModel(osm)

~\OneDrive\Dokumendid\US_work\Journal_paper\doe_xstock\simulate.py in __get_model(self)
     83     def __get_model(self):
     84         version_translator = osversion.VersionTranslator()
---> 85         osm = version_translator.loadModelFromString(self.osm).get()
     86         return osm
     87 

~\anaconda3\lib\site-packages\openstudio\openstudioosversion.py in loadModelFromString(self, str, progressBar)
    273 
    274     def loadModelFromString(self, str: "std::string const &", progressBar: "ProgressBar"=None) -> "boost::optional< openstudio::model::Model >":
--> 275         return _openstudioosversion.VersionTranslator_loadModelFromString(self, str, progressBar)
    276 
    277     def loadComponent(self, *args) -> "boost::optional< openstudio::model::Component >":

TypeError: Wrong number or type of arguments for overloaded function 'VersionTranslator_loadModelFromString'.
  Possible C/C++ prototypes are:
    openstudio::osversion::VersionTranslator::loadModelFromString(std::string const &,openstudio::ProgressBar *)
    openstudio::osversion::VersionTranslator::loadModelFromString(std::string const &)

My code is following:

for bldg_id in index_list:
    WEATHER_FILEPATH = Path(r'C:\Users\mikkm\OneDrive\Dokumendid\US_work\Journal_paper\calculations\Weather\oiko.amy.Dallas  Texas  United States_2018.epw')
    OSM_FILEPATH = Path(r'C:\Users\mikkm\OneDrive\Dokumendid\US_work\Journal_paper\calculations\Models\bldg{bldg_id:07d}-up00.osm')
    SCHEDULES_FILEPATH = Path(r'C:\Users\mikkm\OneDrive\Dokumendid\US_work\Journal_paper\calculations\Models\bldg{bldg_id:07d}-up00.csv')
    IDD_FILEPATH = Path(r'C:\EnergyPlusV9-6-0\Energy+.idd')
    simulation_id = 'simulation{bldg_id}'
    output_directory = simulation_id

osm = get_data_from_path(OSM_FILEPATH)
epw = get_data_from_path(WEATHER_FILEPATH)
osm_editor = OpenStudioModelEditor(osm)
idf = osm_editor.forward_translate()
simulator = Simulator(IDD_FILEPATH,idf,epw,simulation_id=simulation_id,output_directory=output_directory)                
idf = simulator.get_idf_object()

for obj in idf.idfobjects['Schedule:File']:
    if obj.Name in ["occupants","lighting_interior","ceiling_fan","dishwasher_power","plug_loads","cooking_range","baths","lighting_exterior","dishwasher",'showers','sinks']:
        obj.File_Name = r'C:\Users\mikkm\OneDrive\Dokumendid\US_work\Journal_paper\calculations\Models\bldg{bldg_id:07d}-up00.csv'

obj = idf.newidfobject('Output:Variable')
obj.Variable_Name = 'Zone Air Temperature'
simulator.idf = idf.idfstr()

simulator.simulate() 


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source