Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Revision history [back]

It looks like you have assigned the 'Construction Name' input field of the three windows in the model to Exterior Window in withEMS.idf, but your EMS program is trying to change the construction state of CFS_Window. Replacing Exterior Window with CFS_Window in the each window surface 'Construction Name' input field should do the trick.

It looks like you have assigned the 'Construction Name' input field of the three windows in the model to Exterior Window in withEMS.idf, but your EMS program is trying to change the construction state of CFS_Window. Replacing Exterior Window with CFS_Window in the each window surface 'Construction Name' input field should do the trick.

-- UPDATE --

I tried out my suggestion of replacing Exterior Window with CFS_Window for the three window surface, but the simulation terminated with the following fatal error.

**  Fatal  ** WindowComplexManager: Non-Window6 basis type not yet implemented.

Digging through the source code, this appears here in the WindowComplexManager.cc file due to an associated "if" check before this error line.

After more digging, it appears that using EMS to apply a Construction state defined by a Construction:ComplexFenestrationState object is not possible. From the IDD,

EnergyManagementSystem:ConstructionIndexVariable,
   \memo Declares EMS variable that identifies a construction
   \min-fields 2
A1 , \field Name
   \required-field
   \type alpha
   \note This name becomes a variable for use in Erl programs
   \note no spaces allowed in name
A2 ; \field Construction Object Name
   \type object-list
   \object-list ConstructionNames
   \required-field

This means that the second input field for Construction Object Name must be from the list of objects called "ConstructionNames". This list DOES NOT include the Construction:ComplexFenestrationState object, but the list of objects called "ComplexFenestrationStates" does. I did a test by updating the IDD to also reference that object-list.

...
A2 ; \field Construction Object Name
   \type object-list
   \object-list ConstructionNames
   \object-list ComplexFenestrationStates
   \required-field

However, that still didn't change results. This makes me believe that the source code isn't set up to accept complex fenestration window assemblies as viable options to use when changing construction states using EMS. I'll rope in @MJWitte and @vidanovic to get their thoughts on this.

As a short-term alternative, you could try using the Construction:WindowDataFile object to define your CFS_Window assembly instead of the Construction:ComplexFenestrationState. If you are modeling shading devices, this will also require adding WindowProperty:ShadingControl objects to the model.