E+ 9.01 and above - WindowProperty:ShadingControl not working


Hi @chris,
Lately i updated OS to 2.8. Seems to be it uses E+9.1.
Using the HB_EPWindowShades component it creates, among others in the IDF, a block WindowProperty:ShadingControl for each zone (it is supposed to do so). Unfortunately this block doesn’t include the zone name, which is a compulsory input. As a result you can imagine, the simulation crashes.
Tried to use the HB_runEnergySimulation instead but the error i get is:

This component does not support shading control in versions of E+ greater than 9.0.0.
Use and older version of EnergyPlus or use the OpenStudio component.

See a snapshot of the definitions HB creates and the one missing. Now i see that other compulsory fields are missing (Fenestration surface names)

I’ll appreciate your help. Hoping that i don’t need to downgrade versions …




What version of the components are you using? I know that E+ changed the shading control objects in 9.0 but I have since updated honeybee to work with the new versions.

I have been able to run shading control without any issues:

shading_control_test.gh (562.9 KB)


Hi @chris and thanks for your answer.
I’m using the last version of the components (same as you).
I think i get to isolate the problematic case, which is the shadeType 0 (Blinds).
Do you mind checking the attached (is your same case but with the above option).
shading_control_test_AY.gh (650.6 KB)


@AbrahamYezioro ,
Thanks for the sample file. The issue is not the use of blinds. It’s the use of a scheduled shading (shdCntrlType_ = 0), which it seems has been totally re-vamped in the newer E+. I will see if I can fix it but, in the meantime, just use any of the other shade control types and it should work.


Small Correction: It seems that shades only work with shdCntrlType = 1 (OnIfHighSolarOnWindow). So use that one for now.


Hmmm …,
I’m considering downgrading to OS2.5. I’m in the middle of a project where i can’t change the type of control (needs to be scheduled).

Just tried now to update a previous IDF version to 9.1 with the IDFVersionUpdater.exe. The IDF has a scheduled shading control. The update succeed (of course) and simulating it also runs fine. It means that this shading control should work well.

I’m attaching it here in case you may find it useful.
ShadingControlTest.idf (441.3 KB)


@AbrahamYezioro ,

Thanks for posting the fix. If you give me to the end of the day, I think I can fix the honeybee code.


Of course i can wait :wink:.
Thanks @chris.


@AbrahamYezioro ,

Thanks entirely to the fact that the OpenStudio SDK basically took care of this issue, I was able to fix it very easily within the OpenStudio component:

Unfortunately, it would be an absolute coding nightmare to fix this same issue in the component that goes directly to IDF so I am afraid to say that this might be the first instance of the IDF component’s deprecation. However, it may be just as well since the IDF format is completely changing to a JSON-based schema in E+ 10, which will definitely spell the end of times for that component.

You can find a version of your grasshopper file that works with OpenStudio 2.8 here:
shading_control_test_AY_CWM.gh (659.9 KB)

1 Like

And it goes without saying that you should let me know if you experience any issues with ShadingControl in the new OpenStudio component. I tested it with a CSV schedule so I believe it should work in your case but you have a good habit of always finding the bugs I miss :slight_smile:


Thanks a lot @chris!!
Just checked and it works fine with my library defined schedule.
Glad we get it … and sorry this is the thread that announces the beginning of the end for the E+ component.
Somehow people need to be aware that for the shading control needs, and OS2.8 and above, this is a breaking point when deciding which component to use for performing the simulation itself. There is no choice now…
Later on i’ll try to check other control options. Who knows …
Thanks again,


Too soon to claim victory.
Found something that i’m not sure it is a problem. Decided to show you.

As you can see there are two zones (z3, z3). Both of them with windows and blinds controlled by schedule. For some reason the WindowShadingControl is assigning some of the windows of one of the zones to the other’s object definitions.
Do you think it is an issue?
Attached also the file, so you can check. Look at the group at the bottom of the canvas.

BTW the shadeCntrlIDFStr output is not what is registered in the IDF file right now.

Thanks @chris,
shading_control_test_AY02_CWM.gh (797.7 KB)


@AbrahamYezioro ,
Thanks for reporting. It is hard to tell if this is actually a bug since it seems like the issue isn’t large enough that it won’t run. I will check you file to see if there is anything about the z3 window that is being assigned to Zone 2 that would trigger this (it’s not an interior window, right?). I’ll also see if I can ask OpenStudio team about it the next time that I get to talk to them.


Hi @chris,
No. No interior windows.


Hi @chris,
Just wondering if you have new insights for this.
I was thinking i can live with the previous comment (assigning windows from one zone to other).
Now i’m getting a situation where too many of such assignments are made and the IDF editor can’t open the file. I noticed that the Window ShadingControl has a limit of 10 Fenestration Surfaces. The OS is assigning, for my case, 22 of them. This crashes the editor, though the simulation is performed.
Now i’m not sure how reliable this simulation is.
I sliced the block of windowShadingControl, so you can have a look (if you like).
Worth to mention that the extra assignments happens in the first object, while the other have only 1 fenestration surface assigned.
If you have a wise recommendation i’ll appreciate.

This new object is pretty confusing …
WindowShadingControl.idf (14.2 KB)


Want to update.
In this discussion i’ve found a partial solution for the oppening issue in the idf editor.
Just edited the energy+.idd as noted there.

I’m considering to report a bug in the github or ask a question in bigladder. I’m not sure how the process is done from HB to OS. Can you make it clear if the WindowShadingControl is automatically created, or how it is decided to create the group(s) of windows according to the zones?

1 Like