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

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

asked 2018-07-28 03:49:52 -0600

Tobias's avatar

updated 2018-08-14 01:14:37 -0600


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?


+++++ 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:

image description

edit retag flag offensive close merge delete


Has there been any update? I have the same problem: changing the CFS in EMS in order to simulate different slat angles. But the CFS_Glz are not listed, only Building Constructions like walls and roof.

Any solution would be helpfull.

julien.brunner's avatar julien.brunner  ( 2021-01-27 08:05:25 -0600 )edit

Maybe the example listed in the dropbox link in this discussion could help.

Samuel de Vries's avatar Samuel de Vries  ( 2021-01-27 08:22:18 -0600 )edit

Thanks for answering that fast. Yes, I have already been working with your shared file. In order to understand how it works, it was very helpful, thanks for sharing! But I recognized that the same problem appeared in your file (CFS cannot be chosen in ConIndexVar). I&O Reference says it's possible but I cannot solve this problem. Have you found any solution to fix this and make it work?

julien.brunner's avatar julien.brunner  ( 2021-01-27 08:33:47 -0600 )edit

Can you explain what you mean by 'CFS cannot be chosen in ConIndexVar' and how you come across this problem (and error message)? With my exmample I do not get the fatal error that Aaron Baronian mentions. Maybe this has since been updated?

Samuel de Vries's avatar Samuel de Vries  ( 2021-01-27 09:30:19 -0600 )edit

Well I'm quite new to EP and I am not sure how to switch the CFS as you and Aaron did. Your file works without errors on my laptop, too. But I am not really able to analyse the parts which are responsible for the switching of the CFS. I hope I am not asking too much, but would it be possible to delete all the CFS and EMS parts which are not related to the switching of the two CFS's you mentioned? This would really help me. I am working on a project for a shading device manufacturer who wants to evaluate his products and I have decided to give him a solution with EP.

julien.brunner's avatar julien.brunner  ( 2021-01-27 10:00:38 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2018-07-30 11:19:58 -0600

updated 2018-08-01 14:13:21 -0600

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 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,

   \memo Declares EMS variable that identifies a construction
   \min-fields 2
A1 , \field Name
   \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

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

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.

edit flag offensive delete link 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.

vidanovic's avatar vidanovic  ( 2018-07-30 12:35:54 -0600 )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.

MJWitte's avatar MJWitte  ( 2018-08-06 08:02:19 -0600 )edit

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

Tobias's avatar Tobias  ( 2018-09-07 06:56:44 -0600 )edit

answered 2020-01-24 17:11:09 -0600

Prompted by a helpdesk ticket (15357) referencing this post...

The user file is attempting to replace a standard window (not complex) with a complex fenestration construction. For windows, the base construction type and all EMS construction variations must be of the same type (standard window, complex fenestration, or equivalent layer).

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Training Workshops

Question Tools



Asked: 2018-07-28 03:49:52 -0600

Seen: 320 times

Last updated: Jan 27 '21