How does the HB OpenStudio Measure Component Function?

The new HB_Load_Measure component seems like just the ticket to allow me to add Simple Natural Ventilation to the Open Student test script. I am clearly setting up the script correctly, because the component renames itself with the name of the measure I wish to load. However, for some reason or other, it does not identify the arguments that this measure requires as input.

I have tried various options from merge to dual inputs of the relevant arguments linking to the one input. None seem to work. The measure itself is named with underlines between the characters. I will keep trying options as to where to put the measure, and how to name it, but would appreciate knowing whether it is my lack of skill, or something else.

The component is failing to create one of the inputs. It’s most likely am edge case in parsing which our current parser is failing to handle.

@chris, should be able to help.

@MichaelDonn ,
Can you upload a zip file of the measure you are using? If I can recreate the error on my end, I should be able to fix it.

@Chris - no problem - it is the BCL-provided " Add Wind and Stack Open Area" measure, which I was looking to use to add natural ventilation operation. It is attached as component.zip.

While I am at it, if you wish to test the load_measure feature (which I think is a brilliant idea BTW), we have two measures written by a grad student in-house as a means of modelling ground temperatures and (concrete) slab on ground, in order to try to account for heat loss to the ground more effectively.

These two are attached as measures.zip.

Mcomponent.zip (147.3 KB) Measures.zip (10.4 KB)

Kia ora, @MichaelDonn .

The two ground temperature ones worked right out of the box and they are well-written.

However, the natural ventilation measure is really poorly put together. The first argument is a required “Choice” argument with no valid choices and really should be a illegal for the OpenStudio measure schema. It was difficult to accommodate this case without undermining the checks that I have in place for “good” measures. But I was able to get it to work by specifically checking for this case of a Choice argument with no valid choices.

I posted a new installer.gh file that will give you the working components:
https://github.com/ladybug-tools/lbt-grasshopper/raw/master/installer.gh
If you delete your ladybug_tools folder and run this installer again, you should be able to get it to work on your end.

Brilliant - I will congratulate the grad student.

They were added because ‘non-standard’ so potentially a more complex cross check than the BCL Library component. Ironic.

Now the ball is in my court: BASIC ENERGY BALANCE

ENERGY BALANCE WITH “STORAGE”

I recall the last time I spent months on this until I discovered that a space in the sub-file windows names was excluding the window heat loss component !

I imagine it will be smilar. Anywhay, these are here to show all is working - thanks

@MichaelDonn ,

Glad to know that it’s running on your end. Let me know if you aren’t able to solve what is pretty clearly a misrepresentation of the natural ventilation load on your end. I tried to implement the ventilation result-parsing capabilities as they had existed in legacy honeybee but you are the first to really test it so there could be a bug. If you aren’t able to solve it and something seems wrong on the result-parsing side of things, just let me know and I will investigate.

Kia ora Chris.

I’m hoping you and yours are well. The stories of the death rates at present outside our borders are frankly terrifying.

I think I will try your offer of assistance on the natural ventilation measure.

First issue is it seemed to work with the ‘construction’ entry left blank. That is what produced the first run. But, on reloading the script file to grasshopper (next day, so close Grasshopper and reload) I found that to make the measure not produce an error and blank output, I needed to connect it to a text panel containing “None” (orange error). I tried various combinations of the output from your construction definition objects as inputs but found these were not recognised (red error).

Second issue is I found, when figuring out the issue I had last year with the Legacy Energy Balance tool, that one of the most useful tools for the type of Quality Assurance that I wanted to do was to request csv output of the data from EnergyPlus - is there a way of putting this option into the request output?

At present, my only goto option with the QA on this process is turning up a dead end.

I have used your excellent custom output object to explore
Zone Ideal Loads Supply Air Total Heating Energy
Zone Ideal Loads Supply Air Total Cooling Energy

and compared it to
Zone Ventilation Total Heat Loss Energy
Zone Ventilation Total Heat Gain Energy

Apart from learning that perhaps the breakdown I was planning of the energy balance for the whole building, perhaps zone by zone might be better, the heat gains and losses via what I assume is Natural Ventilation does not seem to be picked up by the graphing element in the size that these outputs reveal - and clearly the heat storage only turns up when I “turn on” the natural ventilation?

Hi @chris

I am intrigued by issues arising from getting the measures working. The Energy Balance for the Natural Ventilation measure is apparently working, but perhaps there are label issues?

The Slab on grade measure seems to be misinterpreted by Open Studio:

Here is the measure and its input:

But, I think from looking at the Run Open Studio fail messages it is reading these inputs in a different order

trial_2zone_TestNatVent.gh (358.4 KB)

@MichaelDonn ,

I fixed this issue with reloading the measure the next time that you open the file:

The easiest way to get a CSV export right now is to deconstruct the output data collections into a steam of values with the “LB Deconstruct Data” component:


Then write these values into a CSV/Excel file using any of the plugins that do this on Food4Rhino like TTToolbox or bunblebee, etc.
Admittedly, you are not the first person to ask for this so maybe we’ll add a honeybee component that parses the whole SQL into a CSV if that’s what everyone wants. Or we can make our own version of a data-collections-to-csv component. Would you prefer a “whole-SQL-to-CSV” component over a component that you connect up individual data collections to and it writes just those data collections into the CSV file?

I can’t account for the EnergyPlus errors that get thrown from the use of the ground temperature measure. All I can say is that the inputs of the measure are being correctly passed to OpenStudio and the measure is being executed correctly. If applying the measure results in un-simulate-able EnergyPlus models, that’s and issue for the measure’s author. If you are in touch with the author and they give you some sort of criteria that the OpenStudio model needs to satisfy in order to work correctly, then I can advise on whether we can get the exported honeybee model to meet them. But I didn’t see any of these criteria listed in the measure’s documentation.

One last update:
We are past the big breaking changes that I mentioned in my older posts. So you can now delete your ladybug_tools folder and re-run the latest installer here to get the latest updates:
https://github.com/ladybug-tools/lbt-grasshopper/raw/master/installer.gh
HOWEVER, there is one last change that I was hoping to make before you have all of the tutors install, which is that I wanted to add a “Versioner” component (aka. “Updater” component) to Ladybug. This would allow you to update your installation without having to delete the ladybug_tools folder, download the installer, and re-run the two components each time. This would also allow you to go back to older versions of the plugin if you update and realize that the latest version is buggy. If you can give me one more day or two, I can get this component into ladybug and then, once your tutors go through the installation process once, they’ll be able to just use the updater component here on out to get the latest updates.

Kia ora @chris

Very helpful analysis. I was sure I had seen an object fitting the LB Deconstruct Data function you describe, but embarassingly could not find it. I am pretty sure I can handle the TT_Toolbox operation from there.

In regards to a more general parser, I am sure that I am in a tiny minority. Quality Assurance is my thing, so being able to delve into the depths of the potential outputs is interesting. For example, diving into the script for your energy balance and then examining the constituent parts was helpful to me, but not to most. I suspect the only way to approach this is to make the individual collections visible as a version of the deconstruct data object, but just listing the data collections produced and allowing the selection of one or more of these as input to an object that writes out individual named collections. I say this because, if I think about grad students’ use of this option, they don’t know what they don’t know so making things accessible is important.

My example of QA checking is a project where I ran a script with up to 128 different design options (a couple of climates, Cooling/Natural Ventilation. two different equipment heat gain levels x 8 case study buildings with two different amounts of thermal bridging). What I found was that there was a greater amount of wall heat loss through the walls - visible in the Energy Balance - but leading overall to a lower heating energy total! I was down to pulling apart the detailed csv output from EnergyPlus so I could examine the actual heat loss from each building element and see that with more thermal bridging it was indeed higher energy use)

We will hold off distribution to tutors as requested.

M

[quote=“MichaelDonn, post:11, topic:10186”]
mple, diving into the script for your energy balance and then examining the constituent parts was helpful to me, but not to most. I suspect the only way to approach this is to make the individual collections visible as a version of the deconstruct data object, but just listing the data collections produced and allowing the selection of one or more of these as input to an object that writes out individual named collections. I say this because, if I think about grad students’ use of this option, they don’t know what they don’t know so making things accessible is important.

My example of QA checking is a project where I ran a script with up to 128 different design options (a couple of climates, Cooling/Natural Ventilation. two different equipment heat gain levels x 8 case study buildings with two different amounts of thermal bridging). What I found was that there was a greater amount of wall heat loss through the walls - visible in the Energy Balance - but leading to an overall Heating anc Cooling energy use.

Checking the actual heat loss from the surfaces worked.

I have used the LB Deconstruct Data object to dissect the energy balance inputs. I am now puzzled:
I used deconstruct to write a bunch of separate Excel spreadsheets for Natural Ventilation, Heating, Cooling etc.

Then I used the spreadsheets to examine the constituent data. What we have is now puzzling:


There is according to this no heating or cooling in either situation. Not expected.
The people gain pattern looks like the input is reflected in the output.
The ‘ventilation’ is the natural ventilation heat transfer, not sure why it is small relative to the solar gain as I would have thought it would be similar.

I am wondering about the energy balance object and its outputs because I would expect the graph would show a heat loss due to natural ventilation that almost matched the cooling energy use from the no natural ventilation option…

M

Hi @chris
I have passed the measure question on to the person who wrote it, but I have also trialled one thing that seems to have solved the issue ( the file ran with fewer errors) : entering R-values for the insulation material inputs, instead of HB material definitions produced the following errors.

My bad, but I hope it does not complicate things further down the track in terms of post simulation analysis that some materials are not in the HB format?

I will have to figure out the input format for the material properties…

M

@MichaelDonn,

I am happy to say that you finally have the green light to have all of your tutors install the grasshopper plugin. The latest installer will install a version that comes with a “Versioner” component that you can use to upgrade the installation at any point:

I understand that you are having difficulties with the measures but all of the issues seem to be in the domain of the measures themselves (not in anything on the honeybee side of things). So me spending time to debug what others have written here is not only going to take up a lot of time but there’s a high chance that any fixes I implement would be much worse than what a measure’s author could implement. If it’s ok with you, I would much rather spend time now implementing natural ventilation in the honeybee-energy so that we have something that we know works well for this case rather than a workaround that uses someone else’s measure.

Thanks @chris

I quite understand.

I was interpreting the issues with the OpenStudio BCL natural ventilation measure as potentially one of object naming conventions, that may have been to do with the differences in labelling as I have had a similar issue with surface names and the previous Energy Balance Widget. Essentially, the energy balance is pushing most of the output to “storage” rather than recognising it as natural ventilation = cooling. I will continue to work on that.

With the material name inputs for the Slab on Grade object, the issue seems to be that the measure does not recognise anything I feed it as a legitimate Material Definition. I was speculating that your current and the previous Material Definition are not the same… It was compatibility of the current with previous / EnergyPlus Material Name conventions that I was puzzling over.

No matter, with either of these. As you say, your should focus on producing what you do well - the HB-Energy code.

Finally, in writing each output from the Energy Balance to a spreadsheet I noticed something that might be an issue you want to know about: it is to do with how you are making sure the Load Measure object works.

I have listed the three measures I want to create and their input values and then connected the measure definition to a Grasshopper Merge Object. What I have realised is that if I have anything connected to the measure input, either a single measure directly, multiple measures via Merge, or even if it is no measure objects connected but just the empty merge object connected to the Measure Input, then the simulation output is produced twice. (Contrast the output from the upper ModelToOSM object with the lower on)

Note, I am also at time getting an error message in the output that suggests there may be a permissons issue with the file writing process…