Heating and Cooling Loads

Dear all,

we are working to a simple tool for calculating the heating and cooling loads (for HVAC sizing).

We have now completed the organization of the parameters we would like to control according to a general room (cube) with one window. However, we have several doubts about the results.

In our analysis only one face of the design room has outdoor boundary condition because we need to measure only the dispersions due to the characteristics of this façade face.

Please find attached the script we have developed with some instructions. Two options have been considered:

  •      1° OPTION: we defined all the properties of the different elements using the *HB_radOpaqueMaterial (*to elaborate further analysis) and *HB_EPOpaqueMat* components.
  •      2° OPTION: we used *HB_EPNoMassMat* in order to define the surfaces.

As reported previously, all the surfaces are adiabatic minus the reference wall with the window, which has been set as ‘outdoor’.

Which option should be used? We obtain different results, and in particular:

  •      The first option does not report the Heating load in the results;
  •      The second option seems to work, but the openstudio component highlights that no mass components could lead to not correct results.

In fact, when we use HB_exportToOpenStudio component we obtain:

“1. The simulation has not run correctly because of this severe error:

** Severe ** This building has no thermal mass which can cause an unstable solution.”

Does it really affect the simulation?

Moreover, if we change the schedules (we just try to increase the workday occupancy from 7.00 to 19.00), again (as option 1) we obtain just the Cooling load. Why?

Are the schedules set correctly? We use Cooling and Heating schedules to define the temperatures, but we are not sure the analyses are working in the period we have defined.

Thank you

Thermalloads_FORUM.gh (705 KB)
ITA_MilanoLinate.160800_IGDG.ddy (16.5 KB)
ITA_MilanoLinate.160800_IGDG.epw (1.69 MB)


It is generally recommended that you include some type of mass in your EP materials. The NoMass material is really only there for when you have no idea what the heat capacity and density of your wall material is but you know that it’s very light and you are ok with disregarding the mass. So go for Option 2, especially if you know the heat capacity and density.

I checked your file and I see that you have no heating load because you have set the heating design day temperature setpoint to always be 0 degrees Celsius, which never happens on the design day of your Italian EPW:

If you change the setpoint to something more reasonable, you will get a heating load out of the simulation.


Hi Chris,

I am supporting MMerlin in this activity.

I followed your instructions and I used EP materials with mass.

However, I have still serious issues about schedules. I would like to define two standard cases, one for winter and one for summer, occupation 5 days per week from 9.00 to 18.00.

As you can see, during the range above I have defined the setpoints for heating (20°C) and cooling (26°C), leaving 0°C and 40°C (respectively for heating and cooling) to simulate the hours we do not want the HVAC system working (holidays, night, etc.).

It seems there is something wrong on this approach because I still obtain just a result for cooling. We have tried to follow an alternative path, creating a .csv schedule, but it does not work for the OpenStudio Command.

So, how can I define a working schedule, considering the information above?



Thermalloads_FORUM2.gh (700 KB)

Any feedback? Is there someone could check it?

Thank you all!



I’m not sure if I can make it any clearer:

Do not set the heating thermostat set point to 0 Celsius for all of the heatDesignDay_. This will cause the simulation to calculate no heating demand in the sizing calculation and, therefore, the simulation will show no need for any heating system.


Hi Chris,

now I understand your comment: we have not attached the heating thermostat set point to 0 Celsius for all of the heatDesignDay - it seems we have done this, but if you check our file previously attached you will see we have linked the correct schedule for the design day.

The schedule with 0 Celsius has been used only for Sunday and holiday.

Moreover, if we detach all the schedules, we still obtain the same issues.

Let me know your thoughts.




I see what is happening. If you don’t plug in any values for the heating design day, it will take the Sunday schedule as the heating design day schedule as this is usually the day with the lowest internal loads. In your case, though, it is setting the setpoint to 0 and so you should plug in the weekday schedule for your heating design day.

Hi Chris,

I know what you are saying, but my heating design day is plugged - you can see it in the picture above.

It is plugged a schedule with 0°C from midnight to 8.00, 20°C from 8.00 to 19.00 and 0°C from 19.00 to midnight.

This means for me that the system should work only during the day (from 8.00 to 19.00). I put 0°C to simulate the unoccupied hours.

If you check my file attached you can see it still doesn’t work.


  • if we detach all the schedules (bypassing the schedule command), we still obtain the same issues - only cooling loads

  • we have tried to compare this situation with other commercial software to validate this script, but at the moment the results are not aligned

I think this is an important task to solve in order to define a realistic and reliable relationship between parametric design and HVAC design.

Could you please check the file attached for any mistake we made (maybe in other part of the script)?


Thermalloads_FORUM2bis.gh (690 KB)

any suggestion?




Looking at your energy balance, it seems that your model has such a high intensity of people heat sources that it never actually gets the chance to need active heating:

Now that we have fixed the issue with the Heating Design Day setpoint, this high intensity of people heat is the reason why you don’t have any heating load. Perhaps your case of a very small, largely adiabatic test box with so many people in it is not too realistic. Or perhaps it is and I don’t know your project well. All I can say is that there is nothing wrong with how the energy model is running. It’s just doing what you tell it to do here.


Thermalloads_FORUM2bis_CWM.gh (769 KB)

Hi Chris,

happy new year and thanks for the new suggestion.

We have finally updated the script. We splitted the heating and cooling calculations in order to set independent internal loads (0 loads for heating period). Schedules seem to work fine.

We got results we compared with other commercial software for validation (mc4, IES with ASHRAE method and IES with CIBSE method) and:

  • cooling loads are comparable - OK!

  • heating loads are not comparable - it seems they are 2-3 times more than the other results.

We modeled the same geometry and the same properties in all softwares.

Could you please have a look of the file attached? The model is very easy and I didn’t expect to have all these issues.

Sorry for continuing asking for your support, but this step is very important for my research.

Thank you again,


Thermalloads_FORUM2ter.gh (734 KB)
load comparation.xlsx (243 KB)


Thank you for doing the validation and there’s no worries about the support. Having another validation and understanding of Ladybug+Hobeybee in relation to other software packages is well worth it. I will take a look at your GH file as soon as I get the chance. The only thing I would be sure to check in the meantime is that the 3 types of heating degree days that OpenStudio uses (sensible heat, high wind, and humidifcation) are the same that these other software’s are using. In particular, make sure that they are using the wind design day.


I checked the annual hourly heating load for the zone in your GH file:

Because the maximum annual heating load (6.16 kW) is greater than the sizing calculation heating load (4.27 kW), it is clear that the simulation is using the full capacity of the sized system. Therefore, the sizing calculation is happening correctly, leaving the only possible explanation that there is some parameter that you have not yet matched between your Honeybee simulation and the simulations of your other software. Are you setting all of the internal loads to 0 like you are in this Honeybee file? Are you moving the North direction in the same way?

Maybe if you could look at the annual heating profile in the other software and do a comparison, that will shed some light.