OpenStudioCore:model
 AllClasses Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages

#include "Relationship.hpp"

Public Member Functions

bool clearRelatedModelObjects ()
bool isSettable () const
bool isSingular () const
ModelObject modelObject () const
std::string name () const
boost::optional< ModelObjectrelatedModelObject () const
std::vector< ModelObjectrelatedModelObjects () const
bool resetRelatedModelObject ()
bool setRelatedModelObject (boost::optional< ModelObject > relatedModelObject)
bool setRelatedModelObject (const Component &component)
bool setRelatedModelObjects (std::vector< ModelObject > relatedModelObjects)

Protected Member Functions

 Relationship (const ModelObject &object, const std::string &name)

Related Functions

typedef boost::optional
< Relationship
OptionalRelationship
typedef std::vector< RelationshipRelationshipVector

Detailed Description

Relationship describes relationships that a ModelObject may have with other ModelObjects .

Relationships of a ModelObject are similar to Attributes of a ModelObject, they provide named access to object methods through the QObject Q_PROPERTY system. However, while Attributes of a ModelObject return simple data types (e.g. PlanarSurface has an Attribute named 'netArea' that returns a double), Relationships return related ModelObjects. A Relationship is constructed with a primary ModelObject and describes relationships that the primary ModelObject may have with other ModelObjects. A Relationship can be singular (e.g. a Surface object relates to 0 or 1 Construction objects) or plural (e.g. a Zone relates to any number of Lights objects). A Relationship object can be used to get these related ModelObjects by name.

Constructor & Destructor Documentation

openstudio::model::Relationship::Relationship ( const ModelObject object,
const std::string &  name 
)
protected

Creates a Relationship object to access the named relationships of the given ModelObject.

Member Function Documentation

bool openstudio::model::Relationship::clearRelatedModelObjects ( )

Clears all related ModelObjects, throws if Relationship is singular.

Equivalent to setRelatedModelObject(std::vector<ModelObject>())

bool openstudio::model::Relationship::isSettable ( ) const

Returns true if there is a write method for this relationship.

bool openstudio::model::Relationship::isSingular ( ) const

Returns true if this Relationship concerns 0-1 other ModelObjects, otherwise this Relationship can access an unlimited number of other ModelObjects.

ModelObject openstudio::model::Relationship::modelObject ( ) const

Returns the primary ModelObject.

std::string openstudio::model::Relationship::name ( ) const

Returns the name of the relationship.

boost::optional<ModelObject> openstudio::model::Relationship::relatedModelObject ( ) const

Return the related ModelObject if available, will throw if Relationship is not singular.

std::vector<ModelObject> openstudio::model::Relationship::relatedModelObjects ( ) const

Return all related ModelObjects, will throw if Relationship is singular.

bool openstudio::model::Relationship::resetRelatedModelObject ( )

Resets the related ModelObject, throws if Relationship is not singular.

Equivalent to setRelatedModelObject(boost::none)

bool openstudio::model::Relationship::setRelatedModelObject ( boost::optional< ModelObject relatedModelObject)

Resets the related ModelObject and forms relationship with the new ModelObject, throws if Relationship is not singular.

bool openstudio::model::Relationship::setRelatedModelObject ( const Component component)

Inserts component into Model and sets related model object on the primary object.

bool openstudio::model::Relationship::setRelatedModelObjects ( std::vector< ModelObject relatedModelObjects)

Clears all related ModelObjects and then forms relationships with the new ModelObjects, throws if Relationship is singular.

Friends And Related Function Documentation

typedef boost::optional<Relationship> OptionalRelationship
related
typedef std::vector<Relationship> RelationshipVector
related