Error in window construction dynamic component (LBT1.3.0)

Hi everyone,

I am trying to test the new component “window construction dynamic” in LBT1.3.0. I created a simple dynamic glass with 2 different states, but it can not be identified by the ConstructionSet component. The error said:

  1. Solution exception:Expected WindowConstruction for window. Got <class ‘honeybee_energy.construction.dynamic.WindowConstructionDynamic’>


My OpenStudio and EnergyPlus version are the same as the installation tips recommended, but the Rhino version is 6.31 nor Rhino 7. Is that the reason? Is there anyone got the same problem?

I’m in Rh 7; if you want to upload just the applicable portion of your Gh script: I’ll load it up and see if it works or not

Good catch, @Yang . This is a bug! I just pushed a fix to the development version of the plugin:

You can get the fix on your end now with the LB Versioner. Given that this bug is a bit of an edge case, I think that I will just leave the fix in the development version of the plugin and not change the LBT 1.3 stable release. If you are making a GH definition for someone else who’s using the stable release, you can work around the bug by internalizing the ConstructionSet to a string and then loading it like so:


dynamic_construction_set.gh (28.2 KB)

Thank you @chris, that’s quite helpful. I have updated to LBT 1.3.1, and the subface-subset works fine now.

But I got some new errors in the next step.

  1. My dynamic window has two states making with the “window construction” component. When I connected this construction set to a room and run the simulation, there is an error:

It is weird that when I changed two states to some construction from the library(like your example), the simulation worked.

  1. Another question is, for the component “HB annual loads” and “HB peak loads”, the dynamic window seems also can not be identified.

The GH file is upload here:
dynamic window test.gh (112.7 KB)

Waiting for your advice, many thanks.

Hi @Yang ,

Yep, that’s another bug. It seems that I should have done a better job testing the DynamicConstruction object when it’s in a ConstructionSet. In the event that it gives you a good workaround for now, you can assign the DynamicConstruction directly to the individual Aperture objects using the HB Apply Window Construction component. I tested this patheway pretty well and know that it works.

Still, I’ll aim to push a fix to the development version of the plugin before the end of today.

The second error is intentional and implementing dynamic windows in the direct-to-idf methods used by the Annual Loads component is not currently a priority. If it ends up being a big pain point, I can move it a little higher in the priority list.

Also, FYI. You don’t need to use the WindowConstructionDynamic object in order to model the particular case in your sample file. If you are only modeling something with two states and swapping out a single pane of glass, you can just use the WindowConstructionShade construction instead of WindowConstructionDynamic. Just plug in the dynamic glass material for the _shd_material.

Ok, so the issue happened because you named the individual constructions that make up the dynamic construction 0 and 1. I implemented a fix that will catch this case and still allow the simulation to proceed:

However, I hope I’m not being to critical by saying that 0 and 1 are really not good choices for construction names that are supposed to be unique. Even something like Tint_0 and Tint_1 would be a huge improvement. Or you could just leave the _name_ blank and use the auto-generated one. As a general rule throughout the LBT plugin, if you aren’t willing to come up with a genuinely unique input for _name_, then you really should just leave it blank and take the default. You just open yourself to a lot of weird errors when you use _name_ inputs that might not be unique.

1 Like

Hi @chris
Thank you, maybe I should start to learn something about programming. I really didn’t recognize that name can be a trouble, sorry. Every construction has its unique name in my file now.

BTW, for the use of “Window construction shade”, I also got some problems. I posted that error here: Creating dynamic window error, but there is no one replied. It will be very appreciated if you can test it and give me some guidance.

Anyway, the new component can be used to create dynamic glass now. Many thanks to you and your team again.

Thank you, @Yang .

Sorry that we didn’t answer your issue about the WindowConstructionShade back when you originally asked it. I’ll investigate and post a response over there shortly.

Continuing the discussion from Error in window construction dynamic component (LBT1.3.0):

Hi @chris
I have a similar problem ,
I created some materials and applied them into HB ConstructionSet component , but I had this error :

  1. Solution exception:Expected ConstructionSet. Got <class ‘honeybee_energy.construction.opaque.OpaqueConstruction’>

I don’t know what to do…

Hi @ZahraBehzad

The “cons-str” can not be connected to “constr-set” directly. You need to add some components here. Or if you only want to set this construction, the “HB apply opaque construction” may be more helpful.

1 Like

Hello @Yang and @chris -

I have a similar situation to the one outlined here. I am setting up an energy model of a fabric tent. I created the Opaque Material of the tent, and I want to add it to the Exterior_Wall and exterior_roof of the HB_Exterior_Modifier_Subset, but I am getting the following error:

  1. Solution exception:Expected Modifier for exterior_wall. Got <class ‘honeybee_energy.construction.opaque.OpaqueConstruction’>

I think I a following the script suggestions, and yet I am getting this error.

You can see attached my workflow. I hope it provides clarity.

Linen Tent Study Issue.gh (35.4 KB)

Use the correct component under HB Energy, @Yure .

This worked! Thanks @Chris!