Adaptive shade in HoneyBee analysis

This is my first post, please excuse the redundancy.
I am trying to simulate daylight in the room with an adaptive shading device, using the UDI metric from the component HB_Annual_Dayligh. The device is a simple box horizontal shade, that is always perpendicular to the angle of incident radiation (I am using the Sun’s altitude angle from the LB_sun_path component). I have modelled the shade and the HB room geometry, but it seems that the two parts of the script simply “do not see each other”. Is it possible to include this in the UDI simulation in a way that for each hour of simulation a different position of shade is taken? I understand, that I have to make separate simulations for every hour and merge the results but how do I do it automatically?


My files are available here:
obracana (72.7 KB)
obracana zaluzja_v6.3dm (139.3 KB)

And here:

Marcin Brzezicki

Hi @MarcinBrzezicki ,

The workflow for doing something like this is a little complicated right now. You would have to simulate each of the shade arrangements as a separate Honeybee Model. Then, you’ll have to parse all of the results in using a component like HB Annual Results to Data. Then, you would have to use your hourly control schedule to select out which of the results you want to use for a certain hour in order to get a single set of illuminance data collections. Then, you could evaluate the values in those to get UDI.

We are currently working on more streamlined workflows for this using Dynamic Aperture Groups, which should hopefully be fully functional by the next stable release.

Hi @chris,

Is there a way to parse the two models together using HB Annual Results to Data ? As grafting is not working when there are multiple rooms in the model.

Tarang G

Good question and the answer is unfortunately “No” or at least “Not easily”. The component relies on reading the data tree structure of the all_pts in order to determine which sensor grid a given sensor point corresponds to. So adding an additional set of branches to your data tree by grafting isn’t really going to do help you here.

There are always ways to hack the component to get it to do what you want but it may just be easier to copy/paste the component for your case here.

Thanks for the response @chris .
As I am dealing with more than 2 scenarios(16 in total), copying and pasting the the component is not a friendly solution. I am trying to develop a stepped blind control logic here.
I will try to parse this data in the python component itself as suggested to get the desired outcome.

1 Like