Idfxt

This pull request is for the sake of conversation, not necessarily with the intent to merge.  yet. 
1. can you clarify for me how the IDD is handled?
 - all very good questions... Let's discuss it.

2. Is there a hand edited JSON version of the IDD or is there a conversion
program that takes an IDD and returns a JSON version of it?
 - I've cooked up a quick and dirty Qt utility (well, it wasn't really
quick at all, but it is still dirty) that reads the specifically agreed
upon version of the IDD (8.1.009 ~ 8.2), applies corrections, extracts
extensible objects, logs all the changes, and converts is all to JSON.
This utility was intended to be used just the one time to produce the one
corrected and modified JSON version of the IDD.  Further proper tools
should use this 8.2 JSON version of the IDD to do any additional
programatic changes to the schema in, for example, HVAC and geometry.

3. How will E+ developers work?
 - I expect that E+ developers would continue to work by editing the actual
IDD used by E+.  Which, of course, isn't currently the JSON version.

4. Will there be a period where they add content to the IDD and that gets
ported to the JSON IDD?
-  We are currently in that phase, right now.  There continues to be a high
volume of changes to the active IDD, as you would expect.  So, there will
be a need either to manually merge the applicable changes (which seems
burdensome and prone to error) or, run the new/current IDD file through the
old utility (which will take some time to verify that the new file and
edits are handled correctly).

There is an alarming set of changes to the current IDD in 'develop' that
may be non-trivial to adjust for in this 'one-time' conversion utility and
the translator/validator -- and that is the Field renaming that has been
happening in the IDD since the last release.  I don't yet know how to deal
with these, but I know it'll be a chunk of work to handle these cases - and
I'm not sure it can be handled in a uniform way until an automated way to
execute routines like the IDF version updater to transition the Field names
appropriate for their version.


5. Will there be a period where the IDD is frozen and new content is added
to the JSON IDD directly?
- One day it will be, and the regular flat text IDD will become a static
document.  Or, at least, that was the plan that had been worked out during
these schema conversion meetings.


On Thu, Dec 18, 2014 at 11:10 AM, Dan Macumber <notifications@github.com>
wrote:
>
> In src/idfxt/JSONDataInterface.h
> <https://github.com/NREL/EnergyPlus/pull/4636#discussion-diff-22051079>:
>
> > +#ifndef JSONDATAINTERFACE_H
> > +#define JSONDATAINTERFACE_H
> > +
> > +#include <string>
> > +
> > +extern "C"
> > +{
> > +#include "../../third_party/cJSON/cJSON.h"
> > +}
> > +
> > +namespace idfx {
> > +
> > +class JSONDataInterface
> > +{
> > +public:
> > +    JSONDataInterface() : JSONDataInterface(""){};
>
> @refaqtor <https://github.com/refaqtor> can you clarify for me how the
> IDD is handled? Is there a hand edited JSON version of the IDD or is there
> a conversion program that takes an IDD and returns a JSON version of it?
> How will E+ developers work? Will there be a period where they add content
> to the IDD and that gets ported to the JSON IDD? Will there be a period
> where the IDD is frozen and new content is added to the JSON IDD directly?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/NREL/EnergyPlus/pull/4636/files#r22051079>.
>