The utilities library provides common functionality used throughout OpenStudio.OpenStudio's utilities live in the top level OpenStudio namespace, but are broken down into sub-components. Programmers (C++, Ruby and C#) new to OpenStudio should start by looking at the items in Core, Idd, and Idf. BCL, Data, Filetypes, Sql, Time, and Units are also quite fundamental. The code in Plot is to be deprecated in favor of plots generated with the JavaScript charting library D3.
The C++ standard template library (STL) and some boost libraries are used throughout OpenStudio. Please familiarize yourself with std::vector, std::set, and iterators in the STL library (a good online reference), and boost::optional (library documentation).
Moving on to the rest of the OpenStudio libraries, consider browsing the documentation for the model, energyplus, and runmanager subprojects. Once you have that down, the ruleset, analysis, project, and analysisdriver libraries can be used to construct and run multi-model analyses.
Ruby programmers will likely want to move back and forth between the C++ and Ruby documentation. Our handwritten doxygen documentation is only available for C++; the Ruby documentation should mainly be treated as a syntax reference.
Classes for pushing and pulling BCLComponents and BCLMeasures from the online Building Component Library (BCL) and a local BCL. For using components in OpenStudio format (.osc), please see model::Component and osversion::VersionTranslator. Infrastructure for using measures is available in the ruleset (ruleset::UserScript, ruleset::OSArgument, ruleset::OSRunner, ruleset::RubyUserScriptArgumentGetter), runmanager (runmanager::RubyJobBuilder), and analysis (analysis::RubyPerturbation) sub-projects.
Functionality and typedefs used throughout the OpenStudio project. Please see the associated header files:
Structures for storing data such as vectors, matrices, and time series. The Attribute class provides a way for storing data additional values attached to objects, and is useful for reporting measures in particular. EndUses and associated enumeration classes EndUseType, EndUseCategoryType, and EndUseFuelType are helpful to break out energy use in reporting. FuelType, AppGFuelType, and ComponentType are useful to determine fuel and component sources for standards code. These and other enumerations are listed in DataEnums.hpp.
Classes representing file types commonly used in building energy simulation.
Classes related to geometry, transformations, intersection tests, etc, see especially Geometry.hpp, Point3d, Vector3d, and Transformation.
Classes related to the Input Data Dictionary (IDD) format used by EnergyPlus and OpenStudio. The documentation for this sub-project is available on a separate page.
Classes related to the Input Data File (IDF) format used by EnergyPlus and OpenStudio. See OpenStudio Idf for detailed information.
See FloatCompare.hpp, Permutation.hpp, and Primes.hpp.
Methods used in ResultsViewer for plotting data. Long-term plan is to deprecate this in favor of D3.
SqlFile provides methods for querying EnergyPlus SQLite databases.
Time, Date, DateTime, and Calendar utilities.
A runtime library for constructing, performing mathematical operations with, and converting quantities between different physical units at runtime (modeled after the boost compiletime library).