DetailedHVAC Component does not apply Ironbug system

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

Hi @justinshultz, glad that it worked out. @mingbo and I were worried that we hit a bug in the OpenStudio SDK that we can’t get around it. It was a relief to know that wasn’t the issue.

This is a good problem to have! :smiley: It reminds me of the time that we figured out how to run large parametric studies and then we didn’t know how to make sense of the results. That challenge resulted in building the design explorer UI.

I have that discussion bookmarked since you posted it. I was trying to hold back and see what others think but I think I should give it a go! :slight_smile:

I agreed with you on putting a document together on best practices. At the same time, I think our approach should be to allow people to build models as large as they want and then provide routines to simplify the model automatically based on criteria like the same orientation and program type.

I imagine you are aware of the PO_MergeRooms command but you are looking for automated solutions that can be applied to the whole model or per floor.

I really like the idea of having routines for simplifying the model automatically. This aligns well with the Pollination model we would be getting out of Revit too, as simplification could be automated. I’m thinking of future workflows where our engineers would use Revit Pollination and the Web app to run their load calculations.

Yes, I am aware of PO_MergeRooms but the process is destructive. Unmerging the rooms later would be time intensive. I would love a process where I could keep the rooms separate for engineering load calculations and then simplified for annual energy simulations.

1 Like

That is the goal! It will take some time but we will get there, eventually.

Makes sense! This needs the implementation of a new concept in the schema. Let us think about it and see what would be the best approach here.

cc: @chriswmackey and @mingbo

Thanks @justinshultz for letting us know it worked well on your side. I may continue to optimize the code in Ironbug for a big model like this size.