-
Notifications
You must be signed in to change notification settings - Fork 461
Addition of pyExpandObjects to src and documentation #9073
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
|
Is this expected to go in for the release? It's marked as draft but we are trying to get the release buttoned up. If it's ready to go, switch it to ready to review. If not, please change the milestone. |
|
|
||
| Much like the ExpandObjects program in Section~\ref{ExpandObjects}, the pyExpandObjects expands HVACTemplate objects from an input epJSON file into an expanded file that can be directly run in EnergyPlus. However, pyExpandObjects does not process GroundHeatTransfer objects or provide support for the Slab or Basement executables. | ||
|
|
||
| The pyExpandObjects program works as a preprocessor that maps HVACTemplate objects to regular objects in EnergyPlus. This processor reads an epJSON file and generates and expanded epJSON file. No further pre-processing should be required after the conversion has been performed. Unlike ExpandObjects (Section~\ref{ExpandObjects}), a schema validation does occur when the file is read into the program, and error messages will be shown in the usual EnergyPlus error file. By default, an invalid epJSON file will stop the program, but this requirement can be removed via command line options. Please see the documentation (https://epjson-expandobjects.readthedocs.io/) or '--help' command line option for further details. Additionally, the default settings produce two backup files ("<original-file-name>\_hvac\_templates.epJSON", "<original-file-name>\_base.epJSON") as well as an expanded file with an adjusted name ("<original-file-name>\_expanded.epJSON"). If the '--no-backup' option is used in the command line, then only the expanded file will be output. No newline at end of file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The URL does not seem to be an active link in the PDF.
Also, please add the command line documentation from the readthedocs directly into this section.
Change "Please see the documentation" to something more like "Documentation aimed at developers is also available at:"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added the command line documentation into this section, but it is also located in the InputOutputReference document. Let me know if you feel this is redundant
|
|
||
| \subsection{Introduction}\label{pyExpandObjects} | ||
|
|
||
| Much like the ExpandObjects program in Section~\ref{ExpandObjects}, the pyExpandObjects expands HVACTemplate objects from an input epJSON file into an expanded file that can be directly run in EnergyPlus. However, pyExpandObjects does not process GroundHeatTransfer objects or provide support for the Slab or Basement executables. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would probably make sense to say that it is currently not integrated with EP-Launch or from the EnergyPlus command line interface.
| \section{HVACTemplate Processing}\label{hvactemplate-processing} | ||
|
|
||
| \textbf{Unlike other EnergyPlus objects, the HVACTemplate objects are not handled by EnergyPlus directly.} Instead, they are preprocessed by a program called ExpandObjects. If you use EP-Launch or RunEPlus.bat, this preprocessor step is performed automatically using the following sequence: | ||
| \textbf{Unlike other EnergyPlus objects, the HVACTemplate objects are not handled by EnergyPlus directly.} Instead, they are preprocessed by a program called ExpandObjects or pyExpandObjects. If you use EP-Launch or RunEPlus.bat, this preprocessor step is performed automatically using the following sequence: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think just adding pyExpandObjects here works well since most of the next section is about using ExpandObjects with EP-Launch and RunEPlus.bat. You just need to clarify that pyExpandObjects does not use those.
| If there are error messages from EnergyPlus, they will refer to the contents of the expidf file. Specific objects referred to in error messages may exist in the original idf, but they may be objects created by ExpandObjects and only exist in the expidf. Remember that the expidf will be overwritten everytime the original idf is run using EP-Launch or RunEPlus.bat. | ||
| \end{enumerate} | ||
|
|
||
| If you are trying to go beyond the capabilities of the HVACTemplate objects, one strategy you can use is to start your specification using the HVACTemplate objects, run EnergyPlus using EP-Launch and producing an expidf file, rename that file and start making modifications. This approach may help with getting all of the objects needed and the node names set consistently. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Keep this sentence
| Optional - A file with the name "<original-file-name>\_base.epJSON" which has all the HVACTemplate objects removed. | ||
| \end{enumerate} | ||
| \item | ||
| The EnergyPlus simulation proceeds using the expanded file as the input stream. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This needs to be done manually so this sentence is not really accurate right now. Maybe say something about having to specifically run the simulation on the expanded file using the EnergyPlus CLI or EP-Launch 3.
| \item | ||
| The EnergyPlus simulation proceeds using the expanded file as the input stream. | ||
| \item | ||
| If there are error messages from EnergyPlus, they will refer to the contents of the expanded file. Specific objects referred to in error messages may exist in the original epJSON, but they may be objects created by pyExpandObjects and only exist in the expanded file. Remember that the "<original-file-name>\_expanded.epJSON", "<original-file-name>\_hvac\_templates.epJSON", and "<original-file-name>\_base.epJSON" files will be overwritten everytime the original epJSON is run using EP-Launch or RunEPlus.bat. Also note, the "<original-file-name>\_hvac\_templates.epJSON" and "<original-file-name>\_base.epJSON" files can be merged to recreate the original epJSON file. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
change this to running it pyExpandObjects manually and then running EnergyPlus manually.
| If there are error messages from EnergyPlus, they will refer to the contents of the expanded file. Specific objects referred to in error messages may exist in the original epJSON, but they may be objects created by pyExpandObjects and only exist in the expanded file. Remember that the "<original-file-name>\_expanded.epJSON", "<original-file-name>\_hvac\_templates.epJSON", and "<original-file-name>\_base.epJSON" files will be overwritten everytime the original epJSON is run using EP-Launch or RunEPlus.bat. Also note, the "<original-file-name>\_hvac\_templates.epJSON" and "<original-file-name>\_base.epJSON" files can be merged to recreate the original epJSON file. | ||
| \end{enumerate} | ||
| If you are trying to go beyond the capabilities of the HVACTemplate objects, one strategy you can use is to start your specification using the HVACTemplate objects, run EnergyPlus using EP-Launch and producing an expidf or epJSON file, rename that file and start making modifications. This approach may help with getting all of the objects needed and the node names set consistently. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
change this to running it pyExpandObjects manually and then running EnergyPlus manually.
| \begin{itemize} | ||
| \item | ||
| -x --expandobjects : Run ExpandObjects prior to simulation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please make it clear these are CLI options for EnergyPlus.
| \subsubsection*{epJSON Options}\label{pyexpandobjects-cli-epjson-options} | ||
| \begin{itemize} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please make it clear these are pyExpandObjects CLI options. Maybe this belongs in the next section.
| \subsubsection*{epJSON - pyExpandObjects} | ||
| The command line options noted above in section~\ref{pyexpandobjects-cli-epjson-options} for epJSON files are available in this tool (e.g. -nb, -ns). Additionally, the following arugment can be used to specify the file. Values passed to the program with no arguments will be assumed to be a file name. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the pyExpandObjects CLI options belong here.
|
@john-grando @lgentile it has been 28 days since this pull request was last updated. |
|
@john-grando @lgentile it has been 28 days since this pull request was last updated. |
2 similar comments
|
@john-grando @lgentile it has been 28 days since this pull request was last updated. |
|
@john-grando @lgentile it has been 28 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 8 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 7 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 15 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 9 days since this pull request was last updated. |
1 similar comment
|
@Myoldmopar @john-grando it has been 9 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 8 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 14 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 12 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 8 days since this pull request was last updated. |
1 similar comment
|
@Myoldmopar @john-grando it has been 8 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 10 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 12 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 59 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 7 days since this pull request was last updated. |
2 similar comments
|
@Myoldmopar @john-grando it has been 7 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 7 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 7 days since this pull request was last updated. |
12 similar comments
|
@Myoldmopar @john-grando it has been 7 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 7 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 7 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 7 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 7 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 7 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 7 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 7 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 7 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 7 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 7 days since this pull request was last updated. |
|
@Myoldmopar @john-grando it has been 7 days since this pull request was last updated. |
Pull request overview
pyExpandObjects is a support tool for the EnergyPlus simulation program which pre-processes epJSON files containing HVACTemplate objects.
Much like the existing ExpandObjects program that works with IDF files in EnergyPlus, pyExpandObjects expands HVACTemplate objects from a source file into an expanded file that can be directly run in EnergyPlus, but in this case the processed files are in epJSON format. This pull request adds documentation references as outlined in the associated NFP for this project.
This PR is inserting the app as a subdirectory (src/pyExpandObjects) where users can run the program using that location as the root.
Note, an Energy+.schema.epJSON file exists in this sub-directory (src/resources/). However, this file is also created during the EnergyPlus build process, which should be the object referenced by this program. Given that the relative path to the built file may change based on the final location of this subdirectory, this update has not yet been implemented. Once this subdirectory's final location is set, then the edit will be made.
Pull Request Author
Add to this list or remove from it as applicable. This is a simple templated set of guidelines.
Reviewer
This will not be exhaustively relevant to every PR.