How to create a 3D chart for an output variable for the entire building rather than by zone?

Usually the 3D chart is plotted for an output variable by thermal zone or surface.

May I ask if there is a way to merge the hourly data across all zones to create just one single 3D chart for the entire building for variable such as cooling or heating?



This is effectively what the new floor normalization components were meant to help with:

See example file attached!


Hourly (552 KB)

Thank you, Chris!

Good to know that the normaliztion component can help to plot hourly EUI for the entire building or all individual zones for each of the energy related output variables!

May I ask if there is a way to plot hourly EUI for the entire building or individual zones by merging all energy consumption related output variables or a few selected ones? i.e. not one chart for one variable.

I also noticed that in your demo file, the VAV HVAC system is selected, and the outputs don’t include totalThermalLoads and thermalLoadBalance, which are included if Ideal Loads Air System is specified. May I ask why there is such a difference?

Thank you!

Output variables when VAV HVAC is specified:

Output variables when Ideal loads air system is specified:


You can get hourly EUI values buy simply adding in two more Native GH components:

However, I just want to be clear that I have not built in automated capabilities to get EUI numbers because I don’t agree with the practice of using site EUI as a metric to evaluate the thermodynamic performance, environmental impact, or monetary value of a building. I disagree with this practice for the same reason that there are no “totalThermalLoad” and “thermalLoadBalance” for simulations run with full HVAC. I can summarize these reasons in the following way:

When we run a simulation with ideal air loads, the heating/cooling values we get are THERMAL ENERGY that is directly added to or removed from the zone. In this way, we can draw a rough parallel between these two types of energy since they are are generally of a similar type and quality. As such, I am ok with adding them together to get total thermal load or subtracting them to get a sense of thermal load balance.

However, when we run a simulation will full HVAC, the heating/cooling values that we get are usually HEATING FUEL ENERGY and ELECTRICITY respectively. Fuel energy and electricity are fundamentally two different types and qualities of energy. To cite the second law of thermodynamics, the exergy (or the capacity to do work) of electricity is much greater than that of fuel. This is evident in the fact that, to produce a given unit of electricity, I often have to burn at least 3 units of fuel energy (though this can be much more for inefficient plants). With each step in a power plant - making steam, turning a turbine, turning a generator - there are significant energy losses. This difference in exergy is also evident in the fact that there are so many more things that I can do directly with a unit of electricity than I can do with the same unit of fuel energy. I can use electricity to directly refrigerate, produce light energy or power a motor just as easily as I can use to to cook, produce hot water, or heat a space. While I can cook, make hot water, or heat a space directly with fuel energy, refrigeration and lighting are much more difficult. For this reason, I do not feel comfortable adding electricity and fuel together either in the totalThermalLoad output or in a site EUI metric.

Still, the use of site EUI has become so ingrained in the industry that I have to acknowledge it and at least show users how it’s calculated. In my view, it’s an ad-hoc metric that was invented to deal with previously limited amount of information on energy sources.

Instead of using site EUI, I would recommend using the following metrics depending on what you are trying to evaluate:

Utility Cost / Square Meter - to measure the monetary value of a building to an owner or user

Kg CO2 / Square Meter - to measure the environmental and climatic impact of a building

Emergy / Square Meter - to measure the overall thermodynamic performance of a building

The first two are actually fairly easy to calculate these days just by researching your site’s utility rates or grid energy mixture and multiplying the building electricity or fuel by their respective rates. I will add in some capabilities to Honeybee soon to make it even easier for you to get these values from your EPW file and databases of utility rates/grid mixture. Emergy is much harder to calculate as you have to trace all your energy sources all of the way back to the sun but there are a number of experts at work to make this calculation possible (probably in the next few years, we may have much easier ways to calculate it).

Hope this helps explain the current setup.


Hourly (555 KB)

Dear Chris,

Thank you very much for the detailed clarification!

I agree that Ideal Loads Air System is useful in estimating cooling and heating loads, and help to identify problematic areas in the design that may need to be improved. When comes to estimating energy consumption, the COP of the HVAC system needs to be taken into account. And with the implementation of a realistic full HVAC, definitely the source energy may also need to be analyzed that considers the various types of energy used to generate the site energy.

The three building level performance metrics you suggested to evaluate the impact of building design are surely very important.

Also thanks for sharing the hourly EUI workflow!

One more question is how to aggregate zone level of data. Eg. how to get total electricity for lights and equipment for each zone, monthly or yearly?

I tried the following workflow using your hourly EUI demo file, but the color legend doesn’t seem to recognize the name of zone, probably due to the use of the create LB header component.

Would you suggest other way to aggregate multiple variables for each zone?


HourlyEUI (585 KB)

… OK, maybe the following workflow seems to be able to produce zone level aggregated value for multiple variables. The get HB zone name component is used to compile the dataType str for the header:

Appreciate if you can share alternative method to do this!

HourlyEUI (587 KB)

Glad you found a good solution. That use of the zone name component together with the LB header is very clever!