Adaptive Comfort Chart Basis


I’m dealing with some issues with plotting results in the AdaptiveChart component.

At first i noticed a strange pattern where the plotted results show that the 24 daily temperatures are aligned between them (see next image):

Then i compared the plotted results at CBE website with those of this component (see image). Clearly they don’t agree with each other.

So, is there something i’m missing or there is a real issue here?

For the same component i have another question: it is not clear for me the output degreesFromTarget. Can you explain what is the target (the band or a specific value)?

BTW, i used for this discussion the hydra example AdaaptiveComfortChart.




I’m having a very tough time understanding what you are inputting into the Adaptive Chart component from your images. I at least know that your prevailing outdoor temperatures are for Boston, which may not be the site that you are trying to evaluate. If you upload a GH file or an image of the adaptive chart component, I could be of more assistance.

The degreesFromTarget is the number of degrees Celsius that your input conditions are from the centerline of the adaptive comfort polygon. I added this output because I wanted to have something similar to PMV but for the adaptive model. So, just like PMV, when the degreesFromTarget is 0, you are at the most comfortable temperature possible, positive numbers are warmer than this, and negative numbers are cooler than this.


Hi Chris,

Attached the file i’m using. I’m plotting any of the periods from the importSTAT component. There is a chance i’m doing it wrong?

For comparing with the CBE i defined an analysisPeriod of 2 hours just to get the AirTemp, MRT, and OutdoorTemp, which i attached in the discussion.


-A. (676 KB)


I understand perfectly now. You are using the adaptive component correctly but, in your CBE example, you are taking the outdoor temperature AT THAT HOUR. The outdoor temperature at a single hour is not what determines occupant comfort according to the adaptive model but rather the PREVAILING outdoor temperature. The prevailing outdoor temperature represents the average temperature for that time of year and is either a monthly average temperature (according to ASHRAE) or a running mean outdoor temperature (according to the ISO). I realize that it might not have been perfectly clear that the adaptive chart component is actually calculating this prevailing outdoor temperature for you from the outdoor dry bulb so I added it as in output on the adaptive chart component here:

… and in the attached file.

Here you can see that, even though the outdoor temperature for your specific hour is at 27.8C, the running mean temperature for that time of year is much lower around 16.7 and it is this lower temperature that drives the comfort model.

Let me know if that’s clear.

-Chris (678 KB)

1 Like

Thanks Chris,

This is clear now. I think the input name _prevailingOutdoorTemp is a bit misleading in the sense that the hint recommends to plug the DryBulb from the EPW. I believe there is no other possible input here, right (the prevOutTemp is not provided elsewhere).

Can you point me where in the component’s code you calculate this average/mean?

thank you again!!


One more thing,

After your change the comfort polygons are not showing as default of the component.



I struggled with the input name when I made the component because I originally thought that people would plug in an actual calculated prevailing outdoor temperature (which the component accepts if it doesn’t find the “Dry Bulb Temperature” in the header of the data). It was only afterwards that I realized that (practically every time) you want to just plug in outdoor air temperature and have the component figure things out for you. Would just plain old “outdoorTemperature” be a better name or does the vagueness of it make it worse?

Here is the part of the code where I calculate the prevailing outdoor temperature:…

As you see, there are different formulas used for average monthly and the running mean. If you are curious about how this prevailing outdoor standard evolved, I would recommend this book:…

Finally, I fixed the issue with the polygon not displaying:…

Thanks for reporting that.


Hi Chris,

I think the outdoorTemperature name fits better. In the hint of it you (can) explain the possible inputs. i would add in the hint, for such cases where the user has the prevailingTemp, what should be in the header, so it won’t calculate the averages/mean.



Hi again,

Sorry to bother on this again. For some reason the polygon is still not showing after the update. I added this line:

ghenv.Component.Params.Output[13].Hidden = False
and it works.

I see the changes you made in the code when i update the file, (Output[15] and [17]), so i know i’m synced with the latest.

I closed and opened GH and Rhino, but still …

Weird …



I will change the name of the input around the next stable release as I have been trying to keep the need to drag/drop the components to a minimum since the last stable release was only a month ago. I set a reminder for myself on the github:

The change that you made in the code is not needed for everyone since, once you start up Grasshopper with the correct updated code, it will hide the right outputs (no need to unhide the old outputs).