OpenStudio:model
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
Public Member Functions | List of all members
openstudio::model::Loop Class Reference

#include <Loop.hpp>

+ Inheritance diagram for openstudio::model::Loop:

Public Member Functions

std::vector< AppGFuelType > appGHeatingFuelTypes () const
 
void applySizingValues ()
 
void autosize ()
 
virtual std::vector< ModelObjectchildren () const
 
virtual ModelObject clone (Model model) const
 
virtual boost::optional
< ModelObject
component (openstudio::Handle handle) const
 Returns an optional ModelObject with the given handle. More...
 
virtual std::vector< ModelObjectcomponents (openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) const
 Returns all of the HVAC equipment within the air loop including both the supply and demand sides of the loop. More...
 
std::vector< ModelObjectcomponents (const HVACComponent &inletComp, const HVACComponent &outletComp, openstudio::IddObjectType type=openstudio::IddObjectType("Catchall"))
 Returns supplyComponents() or demandComponents(), depending on if the inlet and outlet component arugments are on the supply or demand side. More...
 
ComponentType componentType () const
 
std::vector< FuelType > coolingFuelTypes () const
 
virtual boost::optional
< ModelObject
demandComponent (openstudio::Handle handle) const
 Returns an optional ModelObject with the given handle. More...
 
virtual std::vector< ModelObjectdemandComponents (const HVACComponent &inletComp, const HVACComponent &outletComp, openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) const
 Returns all of the demand side hvac equipment between inletComps and outletComps. More...
 
virtual std::vector< ModelObjectdemandComponents (openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) const
 Returns all of the demand side HVAC equipment within the air loop. More...
 
virtual Node demandInletNode () const
 
virtual std::vector< NodedemandInletNodes () const
 
Mixer demandMixer () const
 
virtual Node demandOutletNode () const
 
Splitter demandSplitter () const
 
std::vector< FuelType > heatingFuelTypes () const
 
 Loop (const Loop &other)=default
 
 Loop (Loop &&other)=default
 
Loopoperator= (const Loop &)=default
 
Loopoperator= (Loop &&)=default
 
virtual std::vector
< openstudio::IdfObject > 
remove ()
 
virtual boost::optional
< ModelObject
supplyComponent (openstudio::Handle handle) const
 Returns an optional ModelObject with the given handle. More...
 
virtual std::vector< ModelObjectsupplyComponents (const HVACComponent &inletComp, const HVACComponent &outletComp, openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) const
 Returns all of the supply side hvac equipment between inletComps and outletComps. More...
 
virtual std::vector< ModelObjectsupplyComponents (openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) const
 Returns all of the supply side HVAC equipment within the air loop. More...
 
virtual Node supplyInletNode () const
 
virtual Node supplyOutletNode () const
 
virtual std::vector< NodesupplyOutletNodes () const
 
virtual ~Loop ()=default
 
- Public Member Functions inherited from openstudio::model::ParentObject
std::vector< IddObjectType > allowableChildTypes () const
 Returns a vector of allowable children types. More...
 
std::vector< ModelObjectchildren () const
 Return direct child objects in the Model. More...
 
ParentObjectoperator= (const ParentObject &)=default
 
ParentObjectoperator= (ParentObject &&)=default
 
 ParentObject (const ParentObject &other)=default
 
 ParentObject (ParentObject &&other)=default
 
virtual ~ParentObject ()=default
 
- Public Member Functions inherited from openstudio::model::ModelObject
virtual ~ModelObject ()=default
 
 ModelObject (const ModelObject &other)=default
 
 ModelObject (ModelObject &&other)=default
 
ModelObjectoperator= (const ModelObject &)=default
 
ModelObjectoperator= (ModelObject &&)=default
 
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...
 
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< IdfObject > removeLifeCycleCosts ()
 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...
 
AdditionalProperties additionalProperties () const
 Returns this object's additional properties, constructing a new object if necessary. More...
 
bool hasAdditionalProperties () const
 Returns true if this object has additional properties. More...
 
std::vector< IdfObject > removeAdditionalProperties ()
 Removes all additional properties that refer to this object. More...
 
boost::optional< std::string > cadObjectId () const
 
bool setCADObjectId (const std::string &cadObjectId)
 
boost::optional< std::string > gbXMLId () const
 
bool setGBXMLId (const std::string &gbXMLId)
 
boost::optional< std::string > displayName () const
 
bool setDisplayName (const std::string &displayName)
 
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< double > getAutosizedValue (const std::string &valueName, const std::string &units) const
 Gets the autosized component value from the sql file. More...
 
virtual std::vector
< EMSActuatorNames
emsActuatorNames () const
 Return the names of the available ems actuators. More...
 
virtual std::vector< std::string > emsInternalVariableNames () const
 Return the names of the available ems internal variables. More...
 
boost::optional< ModelObjectconnectedObject (unsigned port) const
 
boost::optional< unsigned > connectedObjectPort (unsigned port) const
 

Additional Inherited Members

- Protected Types inherited from openstudio::model::ModelObject
using ImplType = detail::ModelObject_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)
 

Detailed Description

Loop is the base class for HVAC air and water loops.

This class provides basic functionality to traverse a loop and locate components. Currently there are two types of loops AirLoopHVAC and PlantLoop. This interface reflects the commonality between the two. Loops in combination with HVACComponents offer a very simple interface to create new systems in EnergyPlus.

The following is an example of building a new HVAC system composed of an AirLoopHVAC with this c++ interface.

Model model = Model();

AirLoopHVAC airLoop = AirLoopHVAC(model);

AirLoopHVACOutdoorAirSystem oaSystem = AirLoopHVACOutdoorAirSystem(model);

FanConstantVolume fan = FanConstantVolume(model);

CoilCoolingDXSingleSpeed  coolCoil = CoilCoolingDXSingleSpeed(model);

CoilHeatingGas heatingCoil = CoilHeatingGas(model);

oaSystem.addToNode( airLoop.supplyOutletNode() );

fan.addToNode( airLoop.supplyOutletNode() );

coolCoil.addToNode( airLoop.supplyOutletNode() );

heatingCoil.addToNode( airLoop.supplyOutletNode() );

airLoop.addBranchForZone("Zone1");

The interface also allows you to retrieve a ModelObject and clone it into a new model thereby making a new copy. The clone algorithm is intellegent enough to bring along all of the connected pieces as it is appropriate.

Model newModel();
AirLoopHVAC newAirLoop = model.getModelObject(airLoop.handle())->clone(newModel);

The HVACComponent::addToNode function is intellegent. The add routine is context sensitive so for example adding a WaterToAirComponent to an air node will connect the air side ports, adding it to a plant loop node will connect the water side ports.

Model model = Model();

AirLoopHVAC airLoop = AirLoopHVAC(model);

PlantLoop plantLoop = PlantLoop(model);

CoilCoolingWater waterCoolingCoil = CoilCoolingWater(model);

waterCoolingCoil.addToNode( airLoop.supplyOutletNode() );

waterCoolingCoil.addToSplitter( plantLoop.demandSplitter() );

Constructor & Destructor Documentation

virtual openstudio::model::Loop::~Loop ( )
virtualdefault
openstudio::model::Loop::Loop ( const Loop other)
default
openstudio::model::Loop::Loop ( Loop &&  other)
default

Member Function Documentation

std::vector<AppGFuelType> openstudio::model::Loop::appGHeatingFuelTypes ( ) const
void openstudio::model::Loop::applySizingValues ( )
void openstudio::model::Loop::autosize ( )
virtual std::vector<ModelObject> openstudio::model::Loop::children ( ) const
virtual
virtual ModelObject openstudio::model::Loop::clone ( Model  model) const
virtual
virtual boost::optional<ModelObject> openstudio::model::Loop::component ( openstudio::Handle  handle) const
virtual

Returns an optional ModelObject with the given handle.

If the handle is not within the Loop then the optional will be false

virtual std::vector<ModelObject> openstudio::model::Loop::components ( openstudio::IddObjectType  type = openstudio::IddObjectType("Catchall")) const
virtual

Returns all of the HVAC equipment within the air loop including both the supply and demand sides of the loop.

If type is given then the results will be limited to the given IddObjectType.

std::vector<ModelObject> openstudio::model::Loop::components ( const HVACComponent inletComp,
const HVACComponent outletComp,
openstudio::IddObjectType  type = openstudio::IddObjectType("Catchall") 
)

Returns supplyComponents() or demandComponents(), depending on if the inlet and outlet component arugments are on the supply or demand side.

If they are from opposite sides of the loop then an empty vector will be returned.

ComponentType openstudio::model::Loop::componentType ( ) const
std::vector<FuelType> openstudio::model::Loop::coolingFuelTypes ( ) const
virtual boost::optional<ModelObject> openstudio::model::Loop::demandComponent ( openstudio::Handle  handle) const
virtual

Returns an optional ModelObject with the given handle.

If the handle is not within demand side of the Loop then the optional will be false

virtual std::vector<ModelObject> openstudio::model::Loop::demandComponents ( const HVACComponent inletComp,
const HVACComponent outletComp,
openstudio::IddObjectType  type = openstudio::IddObjectType("Catchall") 
) const
virtual

Returns all of the demand side hvac equipment between inletComps and outletComps.

If type is given then the results will be limited to the given IddObjectType. Multiple inlet and outlet nodes can be provided. Returns all of the demand side hvac equipment between inletComp and outletComp. If type is given then the results will be limited to the given IddObjectType. Only one inlet and outlet node can be given.

virtual std::vector<ModelObject> openstudio::model::Loop::demandComponents ( openstudio::IddObjectType  type = openstudio::IddObjectType("Catchall")) const
virtual

Returns all of the demand side HVAC equipment within the air loop.

If type is given then the results will be limited to the given IddObjectType.

virtual Node openstudio::model::Loop::demandInletNode ( ) const
virtual
virtual std::vector<Node> openstudio::model::Loop::demandInletNodes ( ) const
virtual
Mixer openstudio::model::Loop::demandMixer ( ) const
virtual Node openstudio::model::Loop::demandOutletNode ( ) const
virtual
Splitter openstudio::model::Loop::demandSplitter ( ) const
std::vector<FuelType> openstudio::model::Loop::heatingFuelTypes ( ) const
Loop& openstudio::model::Loop::operator= ( const Loop )
default
Loop& openstudio::model::Loop::operator= ( Loop &&  )
default
virtual std::vector<openstudio::IdfObject> openstudio::model::Loop::remove ( )
virtual
virtual boost::optional<ModelObject> openstudio::model::Loop::supplyComponent ( openstudio::Handle  handle) const
virtual

Returns an optional ModelObject with the given handle.

If the handle is not within supply side of the Loop then the optional will be false

virtual std::vector<ModelObject> openstudio::model::Loop::supplyComponents ( const HVACComponent inletComp,
const HVACComponent outletComp,
openstudio::IddObjectType  type = openstudio::IddObjectType("Catchall") 
) const
virtual

Returns all of the supply side hvac equipment between inletComps and outletComps.

If type is given then the results will be limited to the given IddObjectType. Multiple inlet and outlet nodes can be provided. Returns all of the supply side hvac equipment between inletComp and outletComp. If type is given then the results will be limited to the given IddObjectType. Only one inlet and outlet node can be given.

virtual std::vector<ModelObject> openstudio::model::Loop::supplyComponents ( openstudio::IddObjectType  type = openstudio::IddObjectType("Catchall")) const
virtual

Returns all of the supply side HVAC equipment within the air loop.

If type is given then the results will be limited to the given IddObjectType.

virtual Node openstudio::model::Loop::supplyInletNode ( ) const
virtual
virtual Node openstudio::model::Loop::supplyOutletNode ( ) const
virtual
virtual std::vector<Node> openstudio::model::Loop::supplyOutletNodes ( ) const
virtual