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

# Discrepancies when using EMS to assign Construction:ComplexFenestrationState compared to assigning by construction name

Hi

I have set up a EMS that switches between several Construction:ComplexFenestrationState, in order to model dynamic solar shading (drawing inspiration from the example file ThermochromicWindow.idf). To test the validity of the EMS approach I have created a simple comparison:

idf 1) Assigns ONE Construction:ComplexFenestrationState to all windows in the model by Construction Name.

idf 2) Assigns ONE Construction:ComplexFenestrationState to all windows in the model by a EMS that overides the existing constructions.

idf files

(all the relevant objects are at the bottom of the files)

This should in my mind produce the excact same results, however there are some big differences in the output. Does anybody have an idea as to why?

Cheers

+++++ Update +++++

@vidanovic thank you for your reply - tried running the same .idf files only changing the window construction Construction:ComplexFenestrationState named "CFS_Window" with the simple window construction. This yielded exactly the same result for the two files (named "..._simpleWindowConstruction"):

idf files

Also in the same link two files called "..._newCFSconstruction" which employs a different Construction:ComplexFenestrationState than the original files. They also result in discrepancies.

This makes me think that the problem lies in using EMS with Construction:ComplexFenestrationState

@Aaron Boranian thank you for your reply. I have used the same approach for EMS as seen in the example file "EMSThermochromicWindow.idf". As stated in the input/output reference it should be possible to use EMS and Construction:ComplexFenestrationState together:

edit retag close merge delete

Sort by » oldest newest most voted

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.

more

EMS should replace it with CFS_Window and it looks like that is not happening. Will look into this as soon as I catch some time. One good test would be to use standard construction and see if that will return identical results. It will eliminate problem with EMS settings.

( 2018-07-30 12:35:54 -0500 )edit

@Aaron Boranian and everyone else. A side note here about the idd. Object-list specifications are only used by input tools (like IDF Editor) and possibly other interfaces. EnergyPlus does not validate against those. Yes, they should be accurate, but it is possible for an inconsistency to slip in. Also, as of v8.9, the idd is no longer live; EnergyPlus no longer reads the idd at execution. If the idd is edited, EnergyPlus must be rebuilt to incorporate changes into the epJSON schema which is compiled into the EnergyPlus exe.

( 2018-08-06 08:02:19 -0500 )edit

@vidanovic do you have any updates on this ? Cheers Tobias

( 2018-09-07 06:56:44 -0500 )edit