OpenStudio:utilities
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
OpenStudio Utilities

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.

BCL

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.

Core

Functionality and typedefs used throughout the OpenStudio project. Please see the associated header files:

Data

Structures for storing data such as vectors, matrices, and time series. The Attribute class is used for reporting measures in particular; class EndUses and the enumeration classes in DataEnums.hpp are also of interest.

Filetypes

Classes representing file types commonly used in building energy simulation.

Geometry

Classes related to geometry, transformations, intersection tests, etc, see especially Geometry.hpp, Point3d, Vector3d, and Transformation.

Idd

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.

Idf

Classes related to the Input Data File (IDF) format used by EnergyPlus and OpenStudio. See OpenStudio Idf for detailed information.

Math

See FloatCompare.hpp, Permutation.hpp, and Primes.hpp.

Plot

Methods used in ResultsViewer for plotting data. Long-term plan is to deprecate this in favor of D3.

Sql

SqlFile provides methods for querying EnergyPlus SQLite databases.

Time

Time, Date, DateTime, and Calendar utilities.

Units

A runtime library for constructing, performing mathematical operations with, and converting quantities between different physical units at runtime (modeled after the boost compiletime library).