DetailedHVAC Component does not apply Ironbug system

I am checking your file and trying to recreate the issue. I will keep you posted.

2 Likes

Hi @justinshultz

I cannot really find a way to recreate your issue on my side. I can see the system is generated and checked within the OpenStudio Application:

When you set the _write to true, could you please zip this folder for me so that I can look into your files?


Wow and you used my exact grasshopper file without any modifications?

I’ve tried on three different machines. One I just installed Pollination on for the first time. None of them have worked in generating the HVAC using the DetailedHVAC component.

Here is the zip of the folder generated from the ModelToOSM component with run_=2:
openstudio.zip (4.8 MB)

One more thing to add, here is the terminal messages that appear during translation. Of note, there are a few errors / unhandled exception that call out Ironbug.


C:\Program Files\Rhino 7\System>C:

C:\Program Files\Rhino 7\System>"C:\Program Files\ladybug_tools\openstudio\bin\openstudio.exe" -I "C:\Program Files\ladybug_tools\resources\measures\honeybee_openstudio_gem\lib" run -m -w "C:\Users\jshultz\simulation\unnamed\openstudio\workflow.osw"
[OpenStudio.Measure] <0> OSRunner is deprecated, use OpenStudio::Measure::OSRunner instead.
[openstudio.EpwFile] <0> Successive data points (1976-Jan-31 to 1988-Feb-01, ending on line 753) are greater than 1 dayapart in EPW file 'C:/Users/jshultz/AppData/Roaming/ladybug_tools/weather/USA_MD_Baltimore-Washington.Intl.Marshall.AP.724060_TMY3/USA_MD_Baltimore-Washington.Intl.Marshall.AP.724060_TMY3.epw'. Data will be treated as typical (TMY)
[OpenStudio.Measure] <0> OSArgumentMap is deprecated, use OpenStudio::Measure::OSArgumentMap instead.
[OpenStudio.Measure] <0> OSArgumentMap is deprecated, use OpenStudio::Measure::OSArgumentMap instead.
Starting Model translation from Honeybee to OpenStudio
Translating Schedules
Translating Materials
Translating Constructions
Translating ConstructionSets
Translating ProgramTypes
Translating Default ConstructionSet
Translating Room Geometry
Translating HVAC Systems
Translating Context Shade Geometry
[INFO] Input osm file: C:\Users\jshultz\simulation\unnamed\openstudio\generated_files\Detailed HVAC_f41e1d03.osm
[INFO] Input ironbug HVAC json file: C:\Users\jshultz\simulation\unnamed\openstudio\generated_files\Detailed HVAC_f41e1d03.json
[INFO] OpenStudio library 3.5.1.0 from C:\Program Files\ladybug_tools\openstudio\CSharp\openstudio.
[openstudio.model.ZoneHVACFourPipeFanCoil] <2> Unable to set Object of type 'OS:ZoneHVAC:FourPipeFanCoil' and named 'Zone HVAC Four Pipe Fan Coil 103''s cooling coil to Object of type 'OS:Coil:Heating:Water' and named 'Coil Heating Water 139'.
System.ApplicationException: D:\a\OpenStudio\OpenStudio\src\model\ZoneHVACFourPipeFanCoil.cpp@829 : Unable to set Object of type 'OS:ZoneHVAC:FourPipeFanCoil' and named 'Zone HVAC Four Pipe Fan Coil 103''s cooling coil to Object of type 'OS:Coil:Heating:Water' and named 'Coil Heating Water 139'.
   at OpenStudio.ZoneHVACFourPipeFanCoil..ctor(Model model, Schedule availabilitySchedule, HVACComponent supplyAirFan, HVACComponent coolingCoil, HVACComponent heatingCoil)
   at Ironbug.HVAC.IB_ZoneHVACFourPipeFanCoil.<ToOS>g__LocalInitMethod|14_0(Model md)
   at Ironbug.HVAC.BaseClass.IB_ModelObject.<OnNewOpsObj>g__InitAndSetAttributes|91_0[T](Boolean withAtt, <>c__DisplayClass91_0`1& )
   at Ironbug.HVAC.BaseClass.IB_ModelObject.OnNewOpsObj[T](Func`2 InitMethodHandler, Model model, Boolean withAttributes)
   at Ironbug.HVAC.IB_ZoneHVACFourPipeFanCoil.ToOS(Model model)
   at Ironbug.HVAC.BaseClass.IB_ThermalZone.ToOS(Model model, AirLoopHVAC airLoop)
   at Ironbug.HVAC.IB_AirLoopBranches.ToOS_Demand(Loop AirLoop)
   at Ironbug.HVAC.IB_AirLoopHVAC.AddDemandObjects(AirLoopHVAC AirLoopHVAC, IEnumerable`1 Components)
   at Ironbug.HVAC.IB_AirLoopHVAC.ToOS(Model model)
   at Ironbug.HVAC.IB_HVACSystem.SaveHVAC(String osmFile)
   at Ironbug.Program.Main(String[] args)

Unhandled Exception: System.ApplicationException: D:\a\OpenStudio\OpenStudio\src\model\ZoneHVACFourPipeFanCoil.cpp@829 : Unable to set Object of type 'OS:ZoneHVAC:FourPipeFanCoil' and named 'Zone HVAC Four Pipe Fan Coil 103''s cooling coilto Object of type 'OS:Coil:Heating:Water' and named 'Coil Heating Water 139'.
   at Ironbug.Program.Main(String[] args)
Done with Model translation!
[utilities.idf.WorkspaceObject] <0> Object of type 'Schedule:Constant' and named 'Always Off Discrete', points to an object named OnOff 1 from field 1, but that object cannot be located.
[utilities.idf.WorkspaceObject] <0> Object of type 'Schedule:Constant' and named 'Always On Continuous', points to an object named Fractional 1 from field 1, but that object cannot be located.

Thanks @justinshultz this is what I was looking for and I just reproduced this error message on my side. I am looking into this now.

Hi @chriswmackey is that possible to save this log produced by run_workflow.bat by default, so that we could see the error message if anything went wrong and could ask user to send this log file for debugging. Also, could you also catch all exceptions from the Ironbug.Console and stop running the simulation?

1 Like

Ok, I take this back. It was not exactly the same error. And I cannot reproduce the same error constantly. I have tried to run “run_workflow.bat” file more than 7 times, only 2 of them failed because of some errors from OpenStudioSDK, and the rest just ran fine (the final osm files are all correct). Each time when it failed, it always throws a new error, and I didn’t change anything.

Hey @mingbo ,

The OpenStudio CLI produces a run.log, which will contain any exceptions thrown from the OpenStudio Ruby bindings in the course of running the measure but I understand this not much help here given that you want to get the exceptions thrown by the OpenStudio .NET bindings from the Ironbug console.

I’ll see what I can do here to give you a better log from the OpenStudio .NET bindings but it will take me some time since the Ironbug Console is called from the Ruby measure and this means that I’ll have to figure out how to capture the stdout from Ruby and what the Ruby equivalent of Python subprocess is. How pressing is this and is it alright if I get to this at some point after we’ve finished the breaking change to the ValidationReport schema? Can you just run the .bat file from a command prompt for now in order to see the full stdout?

Hi @mingbo - do we know where these random errors are happening? Are they happening inside the SDK? In that case, are we facing this issue when we are using the C# SDK or Ruby? Or are they happening regardless? Am I right that they were not happening when we were using the Ironbug/C# workflow to generate the HVAC models?

Hi @chriswmackey this is not urgent at all, and I was just letting you know it was a bit hard to debug without issues like this. Yes, that’s what I am doing right now to run the bat file manually. So whenever you got time and it is not pressing.

Not really, it is pretty random. My guess is this might be related to the memory allocation of the command process, and I am looking into this direction to see if there are any settings associated with it.

@mingbo, can you explain this process? I’m wondering if I can get the file to generate using the bat file, instead of relying on everything in grasshopper.

The bat file is generated by the recipe here. You can manually rerun the bat file in the simulation folder. But I am sure if you could get the constant error on your side. I would love to see how it goes when you manually rerun it.

A quick update: I am able to reproduce the same error constantly on my side with @justinshultz 's model, but still unsure what’s causing it. I am now checking Ironbug and OpenStudio’s code to better understand this issue. I will keep you posted on any findings.

I’m getting this error message from the IB_SaveToFile component now. Seems similar to the error in the translator.

1. Solution exception:D:\a\OpenStudio\OpenStudio\src\model\ZoneHVACFourPipeFanCoil.cpp@829 : Unable to set Object of type 'OS:ZoneHVAC:FourPipeFanCoil' and named 'Zone HVAC Four Pipe Fan Coil 343''s cooling coil to Object of type 'OS:Coil:Heating:Water' and named 'Coil Heating Water 321'.

Getting very worried about finalizing my simulation for my Monday deadline. Do we thinking baking the Ironbug system into my Pollination model would help solve any of these problems?

Hi @justinshultz I think I am able to locate the source of the issue. It is mainly because of the size of the model, but I am able to improve the performance of Ironbug. I still need to do a few more tests before releasing a new version.
I attached your osm model so that you can use it to run simulations to meet your deadline.
VAV and Chilled Beams.zip (2.1 MB)

1 Like

Hi @justinshultz I have a new version of the Ironbug’s installer released and also did a test after the installation on my machine. It seems working all fine. Please take a look and let me know how it goes: Releases · MingboPeng/Ironbug (github.com)

2 Likes

@mingbo thank you for your hard work! I will give it a try tomorrow and let you know.

Out of curiosity, what was the cause and solution?

Hi @justinshultz it was related to the size of the model and how Ironbug tracks OpenStudio water coils that coexist between the water loop and zone equipment list. I have found a way to optimize it by adding a caching mechanism. It seems working fine on my side. Please let me know if it works well on your machine as well.

Hi @justinshultz just following up on this issue, do you manage to solve the problem on your machine?

@mingbo IT WORKS! The file was generated using the DetailedHVAC component too! Thank you for your hard work to solve this problem. I suspect this new release will be helpful to many others.

Another question for you. Why was my model so large? Do you have any recommendations for me in the future to simplify and reduce model size?

The building was only 125,000 ft2. There were many thermal zones that could have been combined or used with multipliers, such as multiple private offices on the same orientation. However, with the ease at which Pollination create geometry, I find it easier to just draw the building energy as close to the architecture model. This relates to my question here: Model Geometry Discussion: Balancing Model Details and Rooms for Load Calculations versus Energy Modeling

@mostapha this makes me think that there needs to be a Pollination best practices around reducing model sizes.

1 Like