OpenStudioCore:model
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Protected Types | Protected Member Functions | List of all members
openstudio::model::HVACComponent Class Reference

#include <HVACComponent.hpp>

+ Inheritance diagram for openstudio::model::HVACComponent:

Public Member Functions

bool addToNode (Node &node)
 Adds this object to a new system node and returns a boolean indicating if the addition was successful. More...
 
bool addToSplitter (Splitter &splitter)
 Adds this object to a splitter by creating a new branch. More...
 
boost::optional< AirLoopHVACairLoopHVAC () const
 Returns the optional AirLoopHVAC object that the HVAC component is attached to. More...
 
boost::optional
< AirLoopHVACOutdoorAirSystem
airLoopHVACOutdoorAirSystem () const
 Returns the optional AirLoopHVACOutdoorAirSystem that the HVAC component is attached to. More...
 
boost::optional< HVACComponentcontainingHVACComponent () const
 EnergyPlus unitary equipment and air terminals are typically composed of other HVAC components. More...
 
boost::optional
< StraightComponent
containingStraightComponent () const
 
boost::optional
< ZoneHVACComponent
containingZoneHVACComponent () const
 Returns any ZoneHVACComponent that contains this HVACComponent. More...
 
void disconnect ()
 Removes all connections to other HVACComponent objects. More...
 
bool isRemovable () const
 Indicates if the HVACComponent can be removed from the model. More...
 
boost::optional< Looploop () const
 Returns the optional Loop object that the HVAC component is attached to. More...
 
boost::optional< PlantLoopplantLoop () const
 Returns the optional PlantLoop object that the HVAC component is attached to. More...
 
std::vector< IdfObjectremove ()
 Removes the HVACComponent from the model only if isRemovable() return true. More...
 
virtual ~HVACComponent ()
 
- Public Member Functions inherited from openstudio::model::ParentObject
std::vector< IddObjectTypeallowableChildTypes () const
 Returns a vector of allowable children types. More...
 
std::vector< ModelObjectchildren () const
 Return direct child objects in the Model. More...
 
virtual ~ParentObject ()
 
- Public Member Functions inherited from openstudio::model::ModelObject
virtual ~ModelObject ()
 
ModelObject clone () const
 Creates a deep copy of this object, placing it in this object's model(). More...
 
ModelObject clone (Model model) const
 Creates a deep copy of this object, placing it in model. More...
 
Component createComponent () const
 Method for creating sharable Model snippets. More...
 
std::vector< std::string > relationshipNames () const
 Return all valid relationship names. More...
 
std::vector< Relationshiprelationships () const
 Return all relationships for this ModelObject. More...
 
boost::optional< RelationshipgetRelationship (const std::string &name) const
 Get the relationship named name, if it exists. More...
 
bool setRelationship (const std::string &name, boost::optional< ModelObject > relatedModelObject)
 Set this ModelObject's relationship name to point to relatedModelObject (or clear the relationship if relatedModelObject == boost::none). More...
 
bool setRelationship (const std::string &name, const Component &component)
 Inserts component into this model and sets this ModelObject's relationship name to point to component.primaryObject(). More...
 
std::vector< std::string > attributeNames () const
 Return all valid attribute names. More...
 
std::vector
< openstudio::Attribute
attributes () const
 Return all Attributes for this ModelObject. More...
 
boost::optional
< openstudio::Attribute
getAttribute (const std::string &name) const
 Get the attribute named name, if it exists. More...
 
bool isSettableAttribute (const std::string &name) const
 Is the named attribute settable. More...
 
bool isOptionalAttribute (const std::string &name) const
 Is the named attribute optional. More...
 
bool setAttribute (const std::string &name, bool value)
 Set the attribute named name, if it exists. More...
 
bool setAttribute (const std::string &name, int value)
 
bool setAttribute (const std::string &name, unsigned value)
 
bool setAttribute (const std::string &name, double value)
 
bool setAttribute (const std::string &name, const Quantity &value)
 
bool setAttribute (const std::string &name, const std::string &value)
 
bool setAttribute (const std::string &name, const char *value)
 
bool resetAttribute (const std::string &name)
 Reset the attribute named name. More...
 
Model model () const
 Returns the Model that contains this object. More...
 
boost::optional< ParentObjectparent () const
 Return this object's parent in the hierarchy, if it has one. More...
 
std::vector< ResourceObjectresources () const
 Get the resources directly used by this ModelObject. More...
 
template<typename T >
std::vector< T > getModelObjectSources () const
 Get all objects of type T that point to this object. More...
 
template<typename T >
std::vector< T > getModelObjectSources (IddObjectType iddObjectType) const
 Get all objects of type T that point to this object. More...
 
template<typename T >
boost::optional< T > getModelObjectTarget (unsigned index) const
 Get the object of type T pointed to by this object from field index. More...
 
template<typename T >
std::vector< T > getModelObjectTargets () const
 Get all objects of type T to which this object points. More...
 
const std::vector< std::string > & outputVariableNames () const
 Get all output variables names that could be associated with this object. More...
 
std::vector< OutputVariableoutputVariables () const
 Get all output variables associated with this object, must run simulation to generate data. More...
 
boost::optional
< openstudio::TimeSeries
getData (const OutputVariable &variable, const std::string &envPeriod) const
 Get data associated with this output variable and this object. More...
 
std::vector< LifeCycleCostlifeCycleCosts () const
 Returns the list of all LifeCycleCosts that refer to this object. More...
 
std::vector< IdfObjectremoveLifeCycleCosts ()
 Removes all LifeCycleCosts that refer to this object. More...
 
IddObjectType iddObjectType () const
 This is a virtual function that will tell you the type of iddObject you are dealing with. More...
 
bool setParent (ParentObject &newParent)
 set the parent, child may have to call non-const methods on the parent More...
 
bool operator< (const ModelObject &right) const
 
bool operator== (const ModelObject &other) const
 equality test More...
 
bool operator!= (const ModelObject &other) const
 inequality test More...
 
std::vector< ScheduleTypeKeygetScheduleTypeKeys (const Schedule &schedule) const
 Return the ScheduleTypeKeys indicating how schedule is used in this object. More...
 
boost::optional< ModelObjectconnectedObject (unsigned port) const
 
boost::optional< unsigned > connectedObjectPort (unsigned port) const
 
- Public Member Functions inherited from openstudio::WorkspaceObject
bool canBeSource () const
 
bool canBeSource (unsigned index, const std::vector< std::string > &refLists=std::vector< std::string >()) const
 
std::vector< std::string > canBeTarget () const
 
std::vector< unsigned > getSourceIndices (const Handle &targetHandle) const
 
std::vector< WorkspaceObjectgetSources (IddObjectType type) const
 
boost::optional< WorkspaceObjectgetTarget (unsigned index) const
 
IdfObject idfObject ()
 
IdfObject idfObject () const
 
bool initialized () const
 
bool isSource () const
 
bool isTarget () const
 
unsigned numSources () const
 
bool objectListFieldsEqual (const WorkspaceObject &other) const
 
bool objectListFieldsNonConflicting (const WorkspaceObject &other) const
 
bool operator< (const WorkspaceObject &right) const
 
std::ostream & operator<< (std::ostream &os, const WorkspaceObject &workspaceObject)
 
std::vector
< openstudio::IdfObject
remove ()
 
bool setPointer (unsigned index, const Handle &targetHandle)
 
std::vector< WorkspaceObjectsources () const
 
std::vector< WorkspaceObjecttargets () const
 
Workspace workspace () const
 
virtual ~WorkspaceObject ()
 
- Public Member Functions inherited from openstudio::IdfObject
std::string briefDescription () const
 
cast () const
 
std::vector< T > castVector (const std::vector< U > &objects)
 
std::vector< std::vector
< std::string > > 
clearExtensibleGroups ()
 
IdfObject clone (bool keepHandle=false) const
 
std::string comment () const
 
boost::optional< std::string > createName (bool overwrite=true)
 
std::vector< unsigned > dataFields () const
 
bool dataFieldsEqual (const IdfObject &other) const
 
std::vector< std::string > eraseExtensibleGroup (unsigned groupIndex)
 
std::vector< IdfExtensibleGroupextensibleGroups () const
 
boost::optional< std::string > fieldComment (unsigned index, bool returnDefault=false) const
 
boost::optional< double > getDouble (unsigned index, bool returnDefault=false) const
 
IdfExtensibleGroup getExtensibleGroup (unsigned groupIndex) const
 
std::vector< Handle > getHandles (const std::vector< T > &objects)
 
boost::optional< intgetInt (unsigned index, bool returnDefault=false) const
 
OSOptionalQuantity getQuantity (unsigned index, bool returnDefault=false, bool returnIP=false) const
 
boost::optional< std::string > getString (unsigned index, bool returnDefault=false, bool returnUninitializedEmpty=false) const
 
boost::optional< unsigned > getUnsigned (unsigned index, bool returnDefault=false) const
 
boost::optional< QUrl > getURL (unsigned index, bool returnDefault=false) const
 
Handle handle () const
 
IddObject iddObject () const
 
 IdfObject (IddObjectType type, bool fastName=false)
 
 IdfObject (const IddObject &, bool fastName=false)
 
 IdfObject (const IdfObject &other)
 
IdfExtensibleGroup insertExtensibleGroup (unsigned groupIndex)
 
IdfExtensibleGroup insertExtensibleGroup (unsigned groupIndex, const std::vector< std::string > &values)
 
bool isDataField (unsigned index) const
 
bool isEmpty (unsigned index) const
 
bool isObjectListField (unsigned index) const
 
bool isValid (StrictnessLevel level) const
 
boost::optional< unsigned > maxExtensibleGroups () const
 
boost::optional< unsigned > maxFields () const
 
unsigned minExtensibleGroups () const
 
unsigned minFields () const
 
boost::optional< std::string > name (bool returnDefault=false) const
 
unsigned numExtensibleGroups () const
 
unsigned numFields () const
 
unsigned numNonextensibleFields () const
 
std::vector< unsigned > objectListFields () const
 
bool objectListFieldsEqual (const IdfObject &other) const
 
bool objectListFieldsNonConflicting (const IdfObject &other) const
 
bool operator!= (const IdfObject &other) const
 
std::ostream & operator<< (std::ostream &os, const IdfObject &IdfObject)
 
bool operator== (const IdfObject &other) const
 
boost::optional< T > optionalCast () const
 
std::vector< std::string > popExtensibleGroup ()
 
std::ostream & print (std::ostream &os) const
 
std::ostream & printField (std::ostream &os, unsigned index, bool isLastField=false) const
 
std::ostream & printName (std::ostream &os, bool hasFields=true) const
 
IdfExtensibleGroup pushExtensibleGroup (const std::vector< std::string > &values)
 
IdfExtensibleGroup pushExtensibleGroup ()
 
std::vector< unsigned > requiredFields () const
 
void setComment (const std::string &msg)
 
bool setDouble (unsigned index, double value)
 
bool setFieldComment (unsigned index, const std::string &cmnt)
 
bool setInt (unsigned index, int value)
 
boost::optional< std::string > setName (const std::string &newName)
 
bool setQuantity (unsigned index, const Quantity &q)
 
bool setString (unsigned index, const std::string &value)
 
bool setUnsigned (unsigned index, unsigned value)
 
std::vector< T > subsetCastVector (const std::vector< U > &original)
 
ValidityReport validityReport (StrictnessLevel level, bool checkNames=true) const
 
virtual ~IdfObject ()
 

Protected Types

typedef detail::HVACComponent_Impl ImplType
 
- Protected Types inherited from openstudio::model::ModelObject
typedef detail::ModelObject_Impl ImplType
 
- Protected Types inherited from openstudio::WorkspaceObject
typedef
detail::WorkspaceObject_Impl 
ImplType
 
- Protected Types inherited from openstudio::IdfObject
typedef detail::IdfObject_Impl ImplType
 

Protected Member Functions

virtual std::vector< ModelObjectchildren () const
 
 HVACComponent (IddObjectType type, const Model &model)
 Returns the optional ModelObject connected to this object's port. More...
 
 HVACComponent (std::shared_ptr< ImplType > impl)
 
- Protected Member Functions inherited from openstudio::model::ParentObject
 ParentObject (IddObjectType type, const Model &model)
 Constructs a new ParentObject object in the model. More...
 
- Protected Member Functions inherited from openstudio::model::ModelObject
 ModelObject (IddObjectType type, const Model &model, bool fastName=false)
 
 ModelObject (std::shared_ptr< detail::ModelObject_Impl > impl)
 
- Protected Member Functions inherited from openstudio::WorkspaceObject
 WorkspaceObject (std::shared_ptr< detail::WorkspaceObject_Impl > impl)
 
- Protected Member Functions inherited from openstudio::IdfObject
 IdfObject (std::shared_ptr< detail::IdfObject_Impl > impl)
 

Additional Inherited Members

- Public Types inherited from openstudio::WorkspaceObject
typedef boost::optional
< WorkspaceObject
OptionalWorkspaceObject
 
typedef std::vector
< WorkspaceObject
WorkspaceObjectVector
 
- Public Types inherited from openstudio::IdfObject
typedef std::pair< IdfObject,
IdfObject
IdfObjectPair
 
typedef std::vector< IdfObjectIdfObjectVector
 
typedef boost::optional
< IdfObject
OptionalIdfObject
 
- Static Public Member Functions inherited from openstudio::IdfObject
static boost::optional< IdfObjectload (const std::string &text)
 
static boost::optional< IdfObjectload (const std::string &text, const IddObject &iddObject)
 
static int printedFieldSpace ()
 

Detailed Description

HVACComponent is the base class for objects related to HVAC systems.

HVACComponent provides the ability to connect multiple HVACComponents together through ports. Connections are directional and they are created by identifying a source HVACComponent and port as well as a target HVACComponent object and port. Once a connection is made, it is easy to access the HVACComponent connected to a particular port using the member functions of HVACComponent.

New Connections are made using the openstudio::model::Model::connect function.

Connections and ports together form similar functionality as EnergyPlus nodes, however a connection between ports is more general then a node connection in Energyplus. Indeed, in the OpenStudio model connections are used to describe what is a node connection in EnergyPlus, but connections can be applied to other contexts then just EnergyPlus nodes. OpenStudio's connections and ports can be used anytime one "component" can be arbitrarily connected to another "component". For example EnergyPlus EMS sensors and actuaters could be thought of as source and target ports, where a connection can be made between the two.

Member Typedef Documentation

typedef detail::HVACComponent_Impl openstudio::model::HVACComponent::ImplType
protected

Constructor & Destructor Documentation

virtual openstudio::model::HVACComponent::~HVACComponent ( )
inlinevirtual
openstudio::model::HVACComponent::HVACComponent ( IddObjectType  type,
const Model model 
)
protected

Returns the optional ModelObject connected to this object's port.

Returns the optional Port on the connected object through which the connection to this object's port is made.

openstudio::model::HVACComponent::HVACComponent ( std::shared_ptr< ImplType impl)
explicitprotected

Member Function Documentation

bool openstudio::model::HVACComponent::addToNode ( Node node)

Adds this object to a new system node and returns a boolean indicating if the addition was successful.

This method is reimplemented in many of the derived classes to do the right thing based on the context of the node a particular object is added to. For example if a specific HVACComoponent is not allowed on an air loop and this interface is used to attempt to add the HVAC component to a node on an air loop the method will return false and the object will not be added.

Normally, this method will add this HVAC component immediatly after the node specified. There are exceptions, such as when a component is dropped on an outlet node such as the supply outlet node of an air loop. In this case the method will do the only thing possible and add this component before the outlet node.

bool openstudio::model::HVACComponent::addToSplitter ( Splitter splitter)

Adds this object to a splitter by creating a new branch.

Returns true if the operation was succesfull.

This method is reimplemented in many of the derived class to do the right thing based on the context of the splitter a particular object is added to.

boost::optional<AirLoopHVAC> openstudio::model::HVACComponent::airLoopHVAC ( ) const

Returns the optional AirLoopHVAC object that the HVAC component is attached to.

If the component is part of an outdoor air system, the containing AirLoopHVAC will be returned. If the HVAC component is not associated with an air loop then the optional will be false.

boost::optional<AirLoopHVACOutdoorAirSystem> openstudio::model::HVACComponent::airLoopHVACOutdoorAirSystem ( ) const

Returns the optional AirLoopHVACOutdoorAirSystem that the HVAC component is attached to.

If the HVAC component is not associated with an outdoor air system then the optional will be false.

virtual std::vector<ModelObject> openstudio::model::HVACComponent::children ( ) const
protectedvirtual
boost::optional<HVACComponent> openstudio::model::HVACComponent::containingHVACComponent ( ) const

EnergyPlus unitary equipment and air terminals are typically composed of other HVAC components.

This method returns any such component containing this component. In OpenStudio, AirLoopHVAC, PlantLoop, and AirLoopHVACOutdoorAirSystem are treated as systems, not unitary equipment, thus they are not returned by this method. See plantLoop(), airLoop(), and airLoopHVACOutdoorAirSystem() to access those systems.

boost::optional<StraightComponent> openstudio::model::HVACComponent::containingStraightComponent ( ) const
boost::optional<ZoneHVACComponent> openstudio::model::HVACComponent::containingZoneHVACComponent ( ) const

Returns any ZoneHVACComponent that contains this HVACComponent.

void openstudio::model::HVACComponent::disconnect ( )

Removes all connections to other HVACComponent objects.

bool openstudio::model::HVACComponent::isRemovable ( ) const

Indicates if the HVACComponent can be removed from the model.

One reason a component could not be removed is because it is attached to a loop and removing it would destroy the integrity of the loop. Zone splitters and mixers are examples of this, since they are required components of an air loop. In such a case, the HVACComponent must be disconnected before it can be removed.

boost::optional<Loop> openstudio::model::HVACComponent::loop ( ) const

Returns the optional Loop object that the HVAC component is attached to.

If the component is part of an outdoor air system, the containing AirLoopHVAC will be returned. If the component is attached to multiple loops, the optional will be false.

boost::optional<PlantLoop> openstudio::model::HVACComponent::plantLoop ( ) const

Returns the optional PlantLoop object that the HVAC component is attached to.

If the HVAC component is not associated with a plant loop then the optional will be false.

std::vector<IdfObject> openstudio::model::HVACComponent::remove ( )

Removes the HVACComponent from the model only if isRemovable() return true.