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:
Solution exception:Expected WindowConstruction for window. Got <class ‘honeybee_energy.construction.dynamic.WindowConstructionDynamic’>
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:
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.
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.
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.
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:
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.