HB Shading Context_TransMaterial fails

Dear all,

I’m writing to you after two days of trials.

I’m trying to use TransMaterials as a way to perform EP simulations with a translucent shading device added as Context.

The point is that the simulation runs fine but It seems that the material is not considered (I tried to variate the material parameters and also disconnect it from context component and the results output are the same).

Hope you can help me undergone this issue :slight_smile:

Thank you,



The RADMAterial is only for Radiance simulations and not E+. For E+ you need to define a schedule for the transparency. Look at the second input in the HB_HB_EPContextSrf component.

In E+ you can not define materials for context.

Check Chris’s videos. One of them is dedicated to this specific issue.

https://www.youtube.com/playlist?list=PLruLh1AdY-SgW4uDtNSMLeiUmA8Y… video 23.


Thank you Abraham for the quick reply!

oh yes, great tutorial. I already seen it but i thought it was possible to add a shading material for a more realistic simulation. However, also EPtransparency schedule will be good!

thanks again,


Hi Marco,

As Abraham mentioned, EnergyPlus has limitations in material types that you can assign to external shadings but you may want to check blinds if the shading device is integrated to your window. Related components are Honeybee_EnergyPlus Window Shade Generator + Honeybee_EnergyPlus Blinds Material.


Hi Mostapha,

actually I’m working on an external shading device. I’ll try to construct the model as you said and check if the results will be reliable.

Thank you for the support guys!


Hi Marco,

Attached you can find an example file for how to set up blinds with the Honeybee_EnergyPlus Window Shade Generator. Creating blinds this way will ensure that the surface temperature of the shades is calculated and factored into the energy simulation. When you use the EPContextSrf component, the simulation is really only checking to see if the sun is blocked by the object and does not compute its surface temperature. So, for objects that are very close to your building like an architectural shading device, you should consider using this component.

I hope that helps,


EnergySimulationBase_BlindsExample2.gh (487 KB)

Hi Chris,

thanks for the BlindExample. I really appreciate that.

However, the simulation does’t run correctly if I choose a set of Brep as custom shadings.

In attachment the file with one of my hypothesis quickly inserted in your file.

Thanks again,


EnergySimulationBase_BlindsExample2_MPe.gh (524 KB)

Hi Marco,

Unfortunately, EnergyPlus does not really have a good way to model a custom shade as you have in a manner that includes the surface temperature of the shading device. It can model blinds, drapes, and screens very well (I imagine that you might approximate your geometry as a screen if we had good algorithms to analyze how and when the sun passes through it).

For now, my advice would just be to go back to the original plan to use the “EP Context Surface” component, knowing that the surface temperature of the material is estimated to be that of the outdoor air and that this can be a source of error if your shading material is very thin. Also, make sure that you use a “Honeybee_ShadowPar” and “Honeybee_Energy Simulation Par” component for and connect them to the “EnergySimPar” input of the “Run Energy Simulation Component.” Boost up the “maximumFigure” input of the “SahdowPar” component to be sure that EnergyPlus accurately calculates the sun that gets through your shading device.

Also, for the record, the HBObjects that you plug into the “Window Shade Generator” component are HBSrfs that have windows assigned to them. Not shading geometry.


Hi Chris,

thank you.

Actually what I’m trying to evaluate the most are the primary energy need for CHL the room. So, It is more important to estimated the solar gains/loads coming from the window with different types of shadings applied.

If we consider that after 5 cm between two elements the air can move and so the thermal resistance dropped to zero, I think I can avoid to consider the surface temperature of the shading.

Contrariwise, I constructed thanks to HB also a Daylight Simulation (UDI/DGP) in order to evaluate the visual parameters. It will be important to estimate either the amount of light passing through the shades.

Yes you’re right about the WSG component. My mistake!

Thank you for the kind support,


Hi Chris,

I read from you(in several discussion) that E+ doesn’t support custom shading device, but I really need to study thermal efficiency of a custom shading device;

I used both blinds(with windows) and “EP Context Surface”

I noticed that the only parameters that work are the “ShadeTransmittanceSchedule” applied to the “EP Context Surface”;

there is any chance to set up solar absorptivity and emissivity to the external shading device? I read on a scientific paper that it is possible with DesignBuilder that works with EnergyPlus…

contrary, could you suggest any example of good algorithms that can analyze the quantity of solar radiation to use blinds materials?

in the file attached I simplified my shading device making a sort of grid;

Could you please help me?

thank you in advance,


Ern_Window Shade.gh (702 KB)

Ernesto and Marco,

I should probably have been clearer with my previous statement and what I mean by a “good way” to model completely custom shade geometry. First, Marco, if your shades have enough thermal capacity or resistance to be safe with the assumption that they are the same temperature as the air, then the use of the the “EP Context Surface” is a “good way” to model this custom geometry. However, if the shades do not have this heat capacity or resistance, you may have to find another method.

Altogether, there are at least 4 main ways of modeling shades in EnergyPlus:

  1. Custom geometry of whatever you want but this geometry will only be factored in the simulation by it’s blocking of sun. The temperature of the geometry will be assumed to be the same as the outdoor air (no emissivity or absorptivity is specified) and so it is really only intended for shading objects like other buildings, trees, or shades made of materials with a high heat capacity/resistance. This is what the “EP Context Surface” does.

  2. Blind geometry for which the temperature of the surface will be calculated. Here you can specify an emissivity and absorptivity for the blinds but you are limited to expressing only horizontal or vertical slats as your shades (no other geometries). This is what the “EnergyPlus Window Shade Generator” does by default.

  3. Interior Roller Shades / Exterior Perforated Screen geometry for which the temperature of the surface will be calculated. This is just like the blind geometry in that you specify the emissivity and absorptivity but here you are are limited to 2D shades that are parallel to the window plane. The “EnergyPlus Window Shade Generator” is also capable of modeling this type of shade.

  4. Completely custom geometry for which the surface temperature of the shade will be calculated. While this may seem like the best of all worlds, it is usually VERY time-consuming to pull off as you have to parameterize the geometry into a matirx of values for the amount of sun that is permitted for every sun angle. OR you have a BSDF file that represents the properties of your shade ready to go. This is what I meant previously by a “good way” to model custom shade geometry and I should have clarified that there is no easy way to generate this type of matrix. EnergyPlus can model it if you have it, though. At the moment, there is no specialized Honeybee component to generate this type of shade as it is already such a high amount of custom work that you should probably only attempt it if you know how to generate such a matrix or have the BSDF file. To include this type of shade in the Honeybee simulation, you will have to write custom IDF text into a panel and connect it to the additionalStrings of the RunSimulation component. For this custom IDF string, you will use the windowmaterial:complexshade object in EnergyPlus:


Ernesto, I think that your case is probably well-approximated by 3) Interior Roller Shades / Screen geometry as it is really not that complex:

Here is an example file that shows you how to do both 2 and 3 of the above examples so that you can get this working in your file, Ernesto:


If you are really feeling like this perforated screen approximation wont do you justice, here is an example of how to use the additionalStrings input to add a custom EP Object that does not have a HB component (in this case, I am adding an evaporative cooling tower):


Hope this helps and is clear.


Hi Chris and really thank you;

actually my shade geometry is not so simple and it changes every time depending on the case;

I saw your example on hydra about additionalStrings(evaporative cooling tower) and I tried to reply it for my geometry;

could you please have a look? I cannot understand why it doesn’t work…do I miss something when I connect the geometry and the IDF file?

Thank you in advance


I-MESH_Thermal_002.gh (803 KB)

Hi Chris,

Just wondering how you get to the screen perforated geometry in the image above. Using the EPWindowShades I’m defining a shade type: Shades with any value in airPermeability (greater than 0), but the geometry shows no difference changing this value. Don’t see any other input relevant to the setting of the openness of the shade.

I want to use this for a daylight simulation.



Trying to upload the image, sing the forum is having trouble embedding images.


Ernesto and Abraham,

I apologize to both of you for the late reply.

Ernesto, I don’t think that there is any need for additionaStrings in your case. Just plug in a CSV schedule with fractional values that represent the openness of the screen into the shadeSchedule_ input of the zone shades component (or use one of the setpoint options under the shadeCntrlType_ input). Also, your additionalStrings in your GH file do not have any shading control object so, as it is now, the shades are always down. If this is your goal, then your file and the corresponding differences in surface temperature are correct.

Abraham, the geometry in the image that I posted was not generated by the “Honeybee_Window Shade Generator” but by Ernesto’s script. I did not add in any capability to change the perforation of the screen geometry on the Window Shade Generator component for 2 reasons:

  1. The user might be having the component represent an interior roller shade, where the perforation is typically so fine that you do not notice any perforation.

  2. Adding such perforations would increase the runtime of the component unless I make them particularly coarse.

This said, I can add in perforations to the geometry if you think the visualization would be helpful. I would probably keep the density fairly coarse just to keep the runtime down. Or maybe I just add a boolean input for “show perforation”?

Let me know your thoughts,


Hi Chris,

Thanks for your answer.

External blinds are now more “sensible” to the need of providing somehow daylighting and not only privacy. Smart blinds allow to set different degrees of slit openness. So somehow it can be useful to have this feature.

If possible i would think about making this as a horizontal break with a density defined by the user (somehow). I also don’t think that this degree of detail is very useful.


You can see examples at this link.



The case for which you post images seems like it might be best modeled by using the 0-blinds shadeType_ with shdAngle_ of 90. Or perhaps I am misunderstanding. Is the angle of the shades changing dynamically over time? If so, I know that E+ has the ability to set a blind slat angle schedule but I have not implemented it yet on the component. If you are just requesting that this angle scheudle feature be added, we can create a github issue and I will implement it while I make blinds on the OpenStudio component (this will happen before the next stable release).


Hi Chris,

The blinds on the link i sent are not really “blinds”. They are like a roller shade, where you can control the distance between each slab. The thickness of the slab is just a few milimeters so it is not a regular horizontal element where you can set the angle. It is more like the image of Ernesto but instead a lot of small holes you have a “big” horizontal ones. Which it was my intention when i mentioned this. Like you can set the transmittance of the roller shade.

But anyway, it can be added an as issue. The option you mention will be really nice (scheduling the angle).


Hi @chris!

I’ve been searching the forums to see if honeybee supports airflow through shading devices, I’d noticed that the airflow was not responding strongly to the shading mesh (heavy ember protection mesh) perforations I had specified in the air permeability input. It seems to be because the opening multipliers around the edge of the shade are all preset to 1.0, allowing the air to flow fairly freely. This can be altered directly in IDF Editor, but having trouble feeding that shade object back in as an additional string.
This project is looking at comfort with a few variables on mesh density, glazed opening area and opening type, so would be great to include the mesh properties in the multiparameter exploration.

(I note your comment above that using the shade as an airflow barrier increases simulation time! - is there another method you’d recommend?)

Thanks for any tips or workarounds!