#include <Model.hpp>
Public Member Functions | |
void | connect (ModelObject sourceObject, unsigned sourcePort, ModelObject targetObject, unsigned targetPort) const |
Connects the sourcePort on the source ModelObject to the targetPort on the target ModelObject. More... | |
void | disconnect (ModelObject object, unsigned port) |
Disconnects the port on the given ModelObject. More... | |
boost::optional< ComponentData > | insertComponent (const Component &component) |
Inserts Component into Model and returns the primary object, if possible. More... | |
std::vector< ModelObject > | modelObjects (bool sorted=false) const |
Get all model objects. More... | |
bool | operator== (const Model &other) const |
Equality test, tests if this Model shares the same implementation object with other. More... | |
std::vector < openstudio::IdfObject > | purgeUnusedResourceObjects () |
Removes all ResourceObjects with nonResourceObjectUseCount() == 0. More... | |
std::vector < openstudio::IdfObject > | purgeUnusedResourceObjects (IddObjectType iddObjectType) |
Removes all ResourceObjects of given IddObjectType with directUseCount() == 0. More... | |
Constructors and Destructors | |
Model () | |
Creates a new, empty Model. More... | |
Model (const openstudio::IdfFile &idfFile) | |
Creates a new Model with one ModelObject for each IdfObject in the given IdfFile. More... | |
Model (const openstudio::Workspace &workspace) | |
Creates a new Model with one ModelObject for each WorkspaceObjects in the given Workspace. More... | |
virtual | ~Model () |
Getters | |
boost::optional< SqlFile > | sqlFile () const |
Returns the EnergyPlus output SqlFile if set. More... | |
boost::optional< Building > | building () const |
Get the Building object if there is one, this implementation uses a cached reference to the Building object which can be significantly faster than calling getOptionalUniqueModelObject<Building>(). More... | |
boost::optional < LifeCycleCostParameters > | lifeCycleCostParameters () const |
Get the LifeCycleCostParameters object if there is one, this implementation uses a cached reference to the LifeCycleCostParameters object which can be significantly faster than calling getOptionalUniqueModelObject<LifeCycleCostParameters>(). More... | |
boost::optional< RunPeriod > | runPeriod () const |
Get the RunPeriod object if there is one, this implementation uses a cached reference to the RunPeriod object which can be significantly faster than calling getOptionalUniqueModelObject<RunPeriod>(). More... | |
boost::optional< YearDescription > | yearDescription () const |
Get the YearDescription object if there is one, this implementation uses a cached reference to the YearDescription object which can be significantly faster than calling getOptionalUniqueModelObject<YearDescription>(). More... | |
boost::optional< WeatherFile > | weatherFile () const |
Get the WeatherFile object if there is one, this implementation uses a cached reference to the WeatherFile object which can be significantly faster than calling getOptionalUniqueModelObject<WeatherFile>(). More... | |
Schedule | alwaysOnDiscreteSchedule () const |
Get an always on schedule with discrete type limits if there is one. More... | |
SpaceType | plenumSpaceType () const |
Get the space type used for plenums if there is one. More... | |
Setters | |
bool | setSqlFile (const SqlFile &sqlFile) |
Sets the EnergyPlus output SqlFile. More... | |
bool | resetSqlFile () |
Resets the EnergyPlus output SqlFile. More... | |
Template Methods | |
template<typename T > | |
boost::optional< T > | getModelObject (const Handle &handle) const |
Returns the ModelObject referenced by handle if it is of type T. More... | |
template<typename T > | |
T | getUniqueModelObject () |
Returns the unique ModelObject of type T, creates a one if none are found. More... | |
template<typename T > | |
boost::optional< T > | getOptionalUniqueModelObject () const |
Returns the unique ModelObject of type T if it is found. More... | |
template<typename T > | |
std::vector< T > | getModelObjects (bool sorted=false) const |
Returns all ModelObjects of type T. More... | |
template<typename T > | |
std::vector< T > | getConcreteModelObjects () const |
Returns all ModelObjects of type T, using T::iddObjectType() to speed up the search. More... | |
template<typename T > | |
std::vector< T > | getModelObjects (const std::vector< openstudio::Handle > &handles) const |
Returns the subset of ModelObjects referenced by handles which are of type T. More... | |
template<typename T > | |
boost::optional< T > | getModelObjectByName (const std::string &name) const |
Returns the ModelObjects of type T with name (exactMatch). More... | |
template<typename T > | |
std::vector< T > | getModelObjectsByName (const std::string &name, bool exactMatch=true) const |
Returns all ModelObjects of type T with given name. More... | |
template<typename T > | |
boost::optional< T > | getConcreteModelObjectByName (const std::string &name) const |
template<typename T > | |
std::vector< T > | getConcreteModelObjectsByName (const std::string &name) const |
Public Member Functions inherited from openstudio::Workspace | |
std::vector< WorkspaceObject > | addAndInsertObjects (const std::vector< IdfObject > &objectsToAdd, const std::vector< IdfObject > &objectsToInsert) |
std::vector< WorkspaceObject > | addAndInsertObjects (const std::vector< WorkspaceObject > &objectsToAdd, const std::vector< WorkspaceObject > &objectsToInsert) |
std::vector< WorkspaceObject > | addAndInsertObjects (const std::vector< WorkspaceObject > &objectsToAdd, const std::vector< std::vector< WorkspaceObject > > &objectsToInsert) |
boost::optional< WorkspaceObject > | addObject (const IdfObject &idfObject) |
std::vector< WorkspaceObject > | addObjects (const std::vector< IdfObject > &idfObjects) |
std::vector< WorkspaceObject > | addObjects (const std::vector< WorkspaceObject > &objects) |
bool | canBeTarget (const Handle &handle, const std::set< std::string > &referenceListNames) const |
T | cast () const |
Workspace | clone (bool keepHandles=false) const |
Workspace | cloneSubset (const std::vector< Handle > &handles, bool keepHandles=false, StrictnessLevel level=StrictnessLevel::Draft) const |
bool | connectProgressBar (const openstudio::ProgressBar &progressBar) const |
bool | disconnectProgressBar (const openstudio::ProgressBar &progressBar) const |
bool | fastNaming () const |
boost::optional< IddObject > | getIddObject (const IddObjectType &type) const |
boost::optional< WorkspaceObject > | getObject (Handle handle) const |
boost::optional< WorkspaceObject > | getObjectByNameAndReference (std::string name, const std::vector< std::string > &referenceNames) const |
boost::optional< WorkspaceObject > | getObjectByTypeAndName (IddObjectType objectType, const std::string &name) const |
std::vector< WorkspaceObject > | getObjects (const std::vector< Handle > &handles) const |
std::vector< WorkspaceObject > | getObjectsByName (const std::string &name, bool exactMatch=true) const |
std::vector< WorkspaceObject > | getObjectsByReference (const std::string &referenceName) const |
std::vector< WorkspaceObject > | getObjectsByReference (const std::vector< std::string > &referenceNames) const |
std::vector< WorkspaceObject > | getObjectsByType (IddObjectType objectType) const |
std::vector< WorkspaceObject > | getObjectsByType (const IddObject &objectType) const |
std::vector< WorkspaceObject > | getObjectsByTypeAndName (IddObjectType objectType, const std::string &name) const |
std::vector< Handle > | handles (bool sorted=false) const |
IddFile | iddFile () const |
IddFileType | iddFileType () const |
boost::optional< WorkspaceObject > | insertObject (const IdfObject &idfObject) |
std::vector< WorkspaceObject > | insertObjects (const std::vector< IdfObject > &idfObjects) |
std::vector< WorkspaceObject > | insertObjects (const std::vector< WorkspaceObject > &objects) |
bool | isInIddFile (IddObjectType type) const |
bool | isMember (const Handle &handle) const |
bool | isValid () const |
bool | isValid (StrictnessLevel level) const |
std::vector< std::pair< QUrl, openstudio::path > > | locateUrls (const std::vector< URLSearchPath > &t_paths, bool t_create_relative_paths, const openstudio::path &t_infile) |
boost::optional< std::string > | name (const Handle &handle) const |
std::string | nextName (const std::string &name, bool fillIn) const |
std::string | nextName (const IddObjectType &iddObjectType, bool fillIn) const |
unsigned | numObjects () const |
unsigned | numObjectsOfType (IddObjectType type) const |
unsigned | numObjectsOfType (const IddObject &objectType) const |
std::vector< WorkspaceObject > | objects (bool sorted=false) const |
std::vector< WorkspaceObject > | objectsWithURLFields () const |
bool | operator!= (const Workspace &other) const |
std::ostream & | operator<< (std::ostream &os, const Workspace &workspace) |
bool | operator== (const Workspace &other) const |
boost::optional< T > | optionalCast () const |
WorkspaceObjectOrder | order () |
const WorkspaceObjectOrder | order () const |
bool | removeObject (const Handle &handle) |
bool | removeObjects (const std::vector< Handle > &handles) |
bool | save (const openstudio::path &p, bool overwrite=false) |
void | setFastNaming (bool fastNaming) |
bool | setStrictnessLevel (StrictnessLevel level) |
std::vector< Handle > | sort (const std::vector< Handle > &handles) const |
std::vector< WorkspaceObject > | sort (const std::vector< WorkspaceObject > &objects) const |
StrictnessLevel | strictnessLevel () const |
bool | swap (WorkspaceObject ¤tObject, IdfObject &newObject, bool keepTargets=false) |
void | swap (Workspace &other) |
IdfFile | toIdfFile () const |
ValidityReport | validityReport () const |
ValidityReport | validityReport (StrictnessLevel level) const |
VersionString | version () const |
boost::optional< WorkspaceObject > | versionObject () const |
Workspace (const Workspace &other) | |
Workspace (StrictnessLevel level) | |
Workspace () | |
Workspace (const IdfFile &idfFile, StrictnessLevel level=StrictnessLevel::None) | |
Workspace (StrictnessLevel level, IddFileType iddFileType) | |
virtual | ~Workspace () |
Static Public Member Functions | |
static boost::optional< Model > | load (const path &p) |
Load Model from file. More... | |
Static Public Member Functions inherited from openstudio::Workspace | |
static boost::optional< Workspace > | load (const openstudio::path &p) |
static boost::optional< Workspace > | load (const openstudio::path &p, const IddFile &iddFile) |
static boost::optional< Workspace > | load (const openstudio::path &p, const IddFileType &iddFileType) |
Related Functions | |
(Note that these are not member functions.) | |
bool | compareInputAndOutput (const ModelObject &object, const std::string &attributeName, double inputResult, double outputResult, double tol, LogLevel logLevel=Debug) |
Compare inputResult to outputResult. More... | |
typedef std::vector< Model > | ModelVector |
typedef boost::optional< Model > | OptionalModel |
Additional Inherited Members | |
Public Types inherited from openstudio::Workspace | |
typedef boost::optional < Workspace > | OptionalWorkspace |
typedef std::vector< Workspace > | WorkspaceVector |
Protected Types inherited from openstudio::Workspace | |
typedef detail::Workspace_Impl | ImplType |
Protected Member Functions inherited from openstudio::Workspace | |
virtual void | addVersionObject () |
std::vector< WorkspaceObject > | allObjects () const |
Workspace (std::shared_ptr< detail::Workspace_Impl > impl) | |
Model derives from Workspace and is a container for ModelObjects as defined by the OpenStudio IDD.
The OpenStudio Model is primarily a container for ModelObjects which together define a complete or partial model of a building for energy simulation. A ModelObject cannot exist outside of a Model which ensures that each ModelObject can access the full Model to search for related ModelObjects. Model also accepts a connection to EnergyPlus simulation output through the SqlFile access to the SQLite output of EnergyPlus. Each ModelObject may then access simulation output in its own context. Connection to simulation data from other simulation engines is planned for the future.
The OpenStudio Model input data model is based on the schema defined by the OpenStudio IDD. Each concrete ModelObject wraps a particular data type in the OpenStudio IDD and Model enforces collection level constraints such as preventing multiple definitions of unique objects, updating reference fields that point from one ModelObject to another when the target's name changes, etc. Most of Model's capabilities for managing data according to an IDD schema are implemented in the Workspace base class. See the Workspace documentation in the utilities sub-project for more information about Workspace.
openstudio::model::Model::Model | ( | ) |
Creates a new, empty Model.
|
explicit |
Creates a new Model with one ModelObject for each IdfObject in the given IdfFile.
Any unwrapped IDD types will be wrapped with GenericModelObject.
|
explicit |
Creates a new Model with one ModelObject for each WorkspaceObjects in the given Workspace.
Any unwrapped IDD types will be wrapped with GenericModelObject.
|
inlinevirtual |
Schedule openstudio::model::Model::alwaysOnDiscreteSchedule | ( | ) | const |
Get an always on schedule with discrete type limits if there is one.
create a new schedule if necessary and add it to the model
boost::optional<Building> openstudio::model::Model::building | ( | ) | const |
Get the Building object if there is one, this implementation uses a cached reference to the Building object which can be significantly faster than calling getOptionalUniqueModelObject<Building>().
void openstudio::model::Model::connect | ( | ModelObject | sourceObject, |
unsigned | sourcePort, | ||
ModelObject | targetObject, | ||
unsigned | targetPort | ||
) | const |
Connects the sourcePort on the source ModelObject to the targetPort on the target ModelObject.
void openstudio::model::Model::disconnect | ( | ModelObject | object, |
unsigned | port | ||
) |
Disconnects the port on the given ModelObject.
|
inline |
|
inline |
Returns all ModelObjects of type T, using T::iddObjectType() to speed up the search.
This method will only work for concrete model objects (leaves in the ModelObject inheritance tree), hence the name.
|
inline |
|
inline |
Returns the ModelObject referenced by handle if it is of type T.
This method can be used with T as a concrete type (e.g. Zone) or as an abstract class (e.g. ParentObject).
|
inline |
Returns the ModelObjects of type T with name (exactMatch).
This method can be used with T as a concrete type (e.g. Zone) or as an abstract class (e.g. ParentObject), but please see getConcreteModelObjectByName if T is concrete.
|
inline |
Returns all ModelObjects of type T.
This method can be used with T as a concrete type (e.g. Zone) or as an abstract class (e.g. ParentObject).
|
inline |
Returns the subset of ModelObjects referenced by handles which are of type T.
This method can be used with T as a concrete type (e.g. Zone) or as an abstract class (e.g. ParentObject).
|
inline |
Returns all ModelObjects of type T with given name.
This method can be used with T as a concrete type (e.g. Zone) or as an abstract class (e.g. ParentObject).
|
inline |
Returns the unique ModelObject of type T if it is found.
|
inline |
Returns the unique ModelObject of type T, creates a one if none are found.
boost::optional<ComponentData> openstudio::model::Model::insertComponent | ( | const Component & | component | ) |
boost::optional<LifeCycleCostParameters> openstudio::model::Model::lifeCycleCostParameters | ( | ) | const |
Get the LifeCycleCostParameters object if there is one, this implementation uses a cached reference to the LifeCycleCostParameters object which can be significantly faster than calling getOptionalUniqueModelObject<LifeCycleCostParameters>().
|
static |
Load Model from file.
std::vector<ModelObject> openstudio::model::Model::modelObjects | ( | bool | sorted = false | ) | const |
Get all model objects.
If sorted, then the objects are returned in the preferred order.
bool openstudio::model::Model::operator== | ( | const Model & | other | ) | const |
Equality test, tests if this Model shares the same implementation object with other.
SpaceType openstudio::model::Model::plenumSpaceType | ( | ) | const |
Get the space type used for plenums if there is one.
Create a new space type if necessary and add it to the model
std::vector<openstudio::IdfObject> openstudio::model::Model::purgeUnusedResourceObjects | ( | ) |
Removes all ResourceObjects with nonResourceObjectUseCount() == 0.
All objects removed in the course of the purge are returned to support undos. Note that ResourceObjects may have children that are not ResourceObjects, and these may be removed as well.
std::vector<openstudio::IdfObject> openstudio::model::Model::purgeUnusedResourceObjects | ( | IddObjectType | iddObjectType | ) |
Removes all ResourceObjects of given IddObjectType with directUseCount() == 0.
All objects removed in the course of the purge are returned to support undos. Note that ResourceObjects may have children that are not ResourceObjects, and these may be removed as well.
bool openstudio::model::Model::resetSqlFile | ( | ) |
Resets the EnergyPlus output SqlFile.
boost::optional<RunPeriod> openstudio::model::Model::runPeriod | ( | ) | const |
Get the RunPeriod object if there is one, this implementation uses a cached reference to the RunPeriod object which can be significantly faster than calling getOptionalUniqueModelObject<RunPeriod>().
bool openstudio::model::Model::setSqlFile | ( | const SqlFile & | sqlFile | ) |
boost::optional<SqlFile> openstudio::model::Model::sqlFile | ( | ) | const |
Returns the EnergyPlus output SqlFile if set.
boost::optional<WeatherFile> openstudio::model::Model::weatherFile | ( | ) | const |
Get the WeatherFile object if there is one, this implementation uses a cached reference to the WeatherFile object which can be significantly faster than calling getOptionalUniqueModelObject<WeatherFile>().
boost::optional<YearDescription> openstudio::model::Model::yearDescription | ( | ) | const |
Get the YearDescription object if there is one, this implementation uses a cached reference to the YearDescription object which can be significantly faster than calling getOptionalUniqueModelObject<YearDescription>().
|
related |
Compare inputResult to outputResult.
The intention is for inputResult to be the value of attributeName calculated using input data, and for outputResult to be the value of attributeName extracted from the Model::sqlFile(). Returns false and logs a message on the Model log channel at logLevel if the (relative) error is greater than tol.
|
related |
|
related |