OpenStudio:model
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
Protected Types | Protected Member Functions | Related Functions | List of all members
openstudio::model::ModelObject Class Reference

#include <ModelObject.hpp>

Inherits WorkspaceObject.

Inherited by openstudio::model::AdditionalProperties, openstudio::model::AirflowNetworkComponent, openstudio::model::AirflowNetworkConstantPressureDrop, openstudio::model::AirflowNetworkDuctViewFactors, openstudio::model::AirflowNetworkLinkage, openstudio::model::AirflowNetworkNode, openstudio::model::AirflowNetworkOccupantVentilationControl, openstudio::model::AirflowNetworkOutdoorAirflow, openstudio::model::AirflowNetworkReferenceCrackConditions, openstudio::model::AirflowNetworkZoneExhaustFan, openstudio::model::AvailabilityManager, openstudio::model::AvailabilityManagerAssignmentList, openstudio::model::BuildingStory, openstudio::model::BuildingUnit, openstudio::model::ClimateZones, openstudio::model::CoilHeatingGasMultiStageStageData, openstudio::model::CoilWaterHeatingAirToWaterHeatPumpWrapped, openstudio::model::ComponentData, openstudio::model::Connection, openstudio::model::ControllerMechanicalVentilation, openstudio::model::ConvergenceLimits, openstudio::model::CoolingTowerPerformanceCoolTools, openstudio::model::CoolingTowerPerformanceYorkCalc, openstudio::model::DaylightingDeviceShelf, openstudio::model::DesignSpecificationZoneAirDistribution, openstudio::model::ElectricLoadCenterTransformer, openstudio::model::EnergyManagementSystemActuator, openstudio::model::EnergyManagementSystemConstructionIndexVariable, openstudio::model::EnergyManagementSystemCurveOrTableIndexVariable, openstudio::model::EnergyManagementSystemGlobalVariable, openstudio::model::EnergyManagementSystemInternalVariable, openstudio::model::EnergyManagementSystemMeteredOutputVariable, openstudio::model::EnergyManagementSystemOutputVariable, openstudio::model::EnergyManagementSystemProgram, openstudio::model::EnergyManagementSystemProgramCallingManager, openstudio::model::EnergyManagementSystemSensor, openstudio::model::EnergyManagementSystemSubroutine, openstudio::model::EnergyManagementSystemTrendVariable, openstudio::model::ExteriorLoadInstance, openstudio::model::ExternalInterface, openstudio::model::ExternalInterfaceActuator, openstudio::model::ExternalInterfaceFunctionalMockupUnitExportFromVariable, openstudio::model::ExternalInterfaceFunctionalMockupUnitExportToActuator, openstudio::model::ExternalInterfaceFunctionalMockupUnitExportToVariable, openstudio::model::ExternalInterfaceFunctionalMockupUnitImport, openstudio::model::ExternalInterfaceFunctionalMockupUnitImportFromVariable, openstudio::model::ExternalInterfaceFunctionalMockupUnitImportToActuator, openstudio::model::ExternalInterfaceFunctionalMockupUnitImportToVariable, openstudio::model::ExternalInterfaceVariable, openstudio::model::FoundationKiva, openstudio::model::FoundationKivaSettings, openstudio::model::GeneratorFuelCellAirSupply, openstudio::model::GeneratorFuelCellAuxiliaryHeater, openstudio::model::GeneratorFuelCellElectricalStorage, openstudio::model::GeneratorFuelCellInverter, openstudio::model::GeneratorFuelCellPowerModule, openstudio::model::GeneratorFuelCellWaterSupply, openstudio::model::GeneratorFuelSupply, openstudio::model::GenericModelObject, openstudio::model::HeatBalanceAlgorithm, openstudio::model::InsideSurfaceConvectionAlgorithm, openstudio::model::LifeCycleCost, openstudio::model::LightingDesignDay, openstudio::model::LightingSimulationControl, openstudio::model::LightingSimulationZone, openstudio::model::MaterialPropertyMoisturePenetrationDepthSettings, openstudio::model::MeterCustom, openstudio::model::MeterCustomDecrement, openstudio::model::ModelObjectList, openstudio::model::OutputControlReportingTolerances, openstudio::model::OutputDebuggingData, openstudio::model::OutputDiagnostics, openstudio::model::OutputEnergyManagementSystem, openstudio::model::OutputJSON, openstudio::model::OutputMeter, openstudio::model::OutputTableSummaryReports, openstudio::model::OutputVariable, openstudio::model::OutsideSurfaceConvectionAlgorithm, openstudio::model::ParentObject, openstudio::model::PerformancePrecisionTradeoffs, openstudio::model::PhotovoltaicPerformance, openstudio::model::PlantEquipmentOperationScheme, openstudio::model::PortList, openstudio::model::ProgramControl, openstudio::model::RadianceParameters, openstudio::model::RefrigerationCondenserCascade, openstudio::model::RefrigerationDefrostCycleParameters, openstudio::model::RefrigerationSubcoolerLiquidSuction, openstudio::model::RefrigerationSubcoolerMechanical, openstudio::model::RefrigerationSystem, openstudio::model::RefrigerationTranscriticalSystem, openstudio::model::RefrigerationWalkIn, openstudio::model::RefrigerationWalkInZoneBoundary, openstudio::model::RunPeriodControlDaylightSavingTime, openstudio::model::RunPeriodControlSpecialDays, openstudio::model::ShadowCalculation, openstudio::model::SiteGroundReflectance, openstudio::model::SiteGroundTemperatureBuildingSurface, openstudio::model::SiteGroundTemperatureDeep, openstudio::model::SiteGroundTemperatureFCfactorMethod, openstudio::model::SiteGroundTemperatureShallow, openstudio::model::SiteWaterMainsTemperature, openstudio::model::SizingParameters, openstudio::model::SizingPlant, openstudio::model::SizingSystem, openstudio::model::SizingZone, openstudio::model::SkyTemperature, openstudio::model::SolarCollectorPerformanceFlatPlate, openstudio::model::SolarCollectorPerformanceIntegralCollectorStorage, openstudio::model::SolarCollectorPerformancePhotovoltaicThermalSimple, openstudio::model::SpaceItem, openstudio::model::StandardsInformationConstruction, openstudio::model::StandardsInformationMaterial, openstudio::model::SurfacePropertyConvectionCoefficients, openstudio::model::SurfacePropertyConvectionCoefficientsMultipleSurface, openstudio::model::SurfacePropertyExposedFoundationPerimeter, openstudio::model::Thermostat, openstudio::model::Timestep, openstudio::model::UnitarySystemPerformanceMultispeed, openstudio::model::UtilityBill, openstudio::model::Version, openstudio::model::WeatherFile, openstudio::model::ZoneAirContaminantBalance, openstudio::model::ZoneAirHeatBalanceAlgorithm, openstudio::model::ZoneAirMassFlowConservation, openstudio::model::ZoneCapacitanceMultiplierResearchSpecial, openstudio::model::ZoneControlContaminantController, openstudio::model::ZoneControlHumidistat, openstudio::model::ZoneHVACEquipmentList, openstudio::model::ZoneMixing, and openstudio::model::ZonePropertyUserViewFactorsBySurfaceName.

Public Member Functions

Constructors and Destructors
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...
 
Components

Once a Component has been created, it can be saved to local and online Building Component Libraries (BCLs) for web-enabled storing and sharing.

(At this time, only select BCL users have permissions to upload, but this capability is to be extended to all users in time.) Components are the preferred method for specifying and swapping out groups of related ModelObjects (e.g. constructions, schedules, etc.) in higher-level libraries such as standardsinterface and analysis.

Component createComponent () const
 Method for creating sharable Model snippets. More...
 
Getters
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...
 
Setters
bool setParent (ParentObject &newParent)
 set the parent, child may have to call non-const methods on the parent More...
 
Queries
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 (std::string valueName, std::string unitString) 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...
 
HVAC System Connections
boost::optional< ModelObjectconnectedObject (unsigned port) const
 
boost::optional< unsigned > connectedObjectPort (unsigned port) const
 

Protected Types

typedef detail::ModelObject_Impl ImplType
 

Protected Member Functions

 ModelObject (IddObjectType type, const Model &model, bool fastName=false)
 
 ModelObject (std::shared_ptr< detail::ModelObject_Impl > impl)
 

Related Functions

(Note that these are not member functions.)

std::vector< ResourceObjectgetRecursiveResources (const ModelObject &object)
 Returns all ResourceObjects accessible by recursively calling .resources() starting from object. More...
 
typedef std::pair< std::string,
std::string > 
ScheduleTypeKey
 Typedef for ScheduleTypeRegistry key. More...
 
typedef std::pair< std::string,
std::string > 
ScheduleTypeKey
 Typedef for ScheduleTypeRegistry key. More...
 

Detailed Description

Base class for the OpenStudio Building Model hierarchy.

Derives from WorkspaceObject, just as Model derives from Workspace. Each concrete class in the hierarchy wraps a specific IddObject. (See the OpenStudio Utilities and Utilities Idd documentation for information on Workspace, WorkspaceObject, and IddObject.)

Member Typedef Documentation

typedef detail::ModelObject_Impl openstudio::model::ModelObject::ImplType
protected

Constructor & Destructor Documentation

virtual openstudio::model::ModelObject::~ModelObject ( )
inlinevirtual
openstudio::model::ModelObject::ModelObject ( IddObjectType  type,
const Model model,
bool  fastName = false 
)
explicitprotected
openstudio::model::ModelObject::ModelObject ( std::shared_ptr< detail::ModelObject_Impl >  impl)
explicitprotected

Member Function Documentation

AdditionalProperties openstudio::model::ModelObject::additionalProperties ( ) const

Returns this object's additional properties, constructing a new object if necessary.

This method will throw if called on an AddditionalProperties object.

ModelObject openstudio::model::ModelObject::clone ( ) const

Creates a deep copy of this object, placing it in this object's model().

Virtual implementation.

ModelObject openstudio::model::ModelObject::clone ( Model  model) const

Creates a deep copy of this object, placing it in model.

Virtual implementation.

boost::optional<ModelObject> openstudio::model::ModelObject::connectedObject ( unsigned  port) const
boost::optional<unsigned> openstudio::model::ModelObject::connectedObjectPort ( unsigned  port) const
Component openstudio::model::ModelObject::createComponent ( ) const

Method for creating sharable Model snippets.

Creates a Component with this ModelObject as the primary object. Uses the clone(Model&) method to select Component contents.

virtual std::vector<EMSActuatorNames> openstudio::model::ModelObject::emsActuatorNames ( ) const
virtual

Return the names of the available ems actuators.

virtual std::vector<std::string> openstudio::model::ModelObject::emsInternalVariableNames ( ) const
virtual

Return the names of the available ems internal variables.

boost::optional<double> openstudio::model::ModelObject::getAutosizedValue ( std::string  valueName,
std::string  unitString 
) const

Gets the autosized component value from the sql file.

boost::optional<openstudio::TimeSeries> openstudio::model::ModelObject::getData ( const OutputVariable variable,
const std::string &  envPeriod 
) const

Get data associated with this output variable and this object.

template<typename T >
std::vector<T> openstudio::model::ModelObject::getModelObjectSources ( ) const
inline

Get all objects of type T that point to this object.

This method is preferred over the WorkspaceObject equivalent, as its use does not require knowledge of the IddObjectType.

template<typename T >
std::vector<T> openstudio::model::ModelObject::getModelObjectSources ( IddObjectType  iddObjectType) const
inline

Get all objects of type T that point to this object.

Preferred usage (do not use with abstract classes):

PeopleVector myZonesPeople = zone.getModelObjectSources<People>(People::iddObjectType());
template<typename T >
boost::optional<T> openstudio::model::ModelObject::getModelObjectTarget ( unsigned  index) const
inline

Get the object of type T pointed to by this object from field index.

template<typename T >
std::vector<T> openstudio::model::ModelObject::getModelObjectTargets ( ) const
inline

Get all objects of type T to which this object points.

This method is preferred over the WorkspaceObject equivalent, as its use does not require knowledge of the IddObjectType.

std::vector<ScheduleTypeKey> openstudio::model::ModelObject::getScheduleTypeKeys ( const Schedule schedule) const

Return the ScheduleTypeKeys indicating how schedule is used in this object.

If schedule is not directly used by this object, return value will be .empty(). Used to maintain compatibility between schedule's ScheduleTypeLimits and how schedule is used by other objects.

bool openstudio::model::ModelObject::hasAdditionalProperties ( ) const

Returns true if this object has additional properties.

IddObjectType openstudio::model::ModelObject::iddObjectType ( ) const

This is a virtual function that will tell you the type of iddObject you are dealing with.

While not labeled virtual here, it IS virtual in the impl.

std::vector<LifeCycleCost> openstudio::model::ModelObject::lifeCycleCosts ( ) const

Returns the list of all LifeCycleCosts that refer to this object.

Model openstudio::model::ModelObject::model ( ) const

Returns the Model that contains this object.

bool openstudio::model::ModelObject::operator!= ( const ModelObject other) const

inequality test

bool openstudio::model::ModelObject::operator< ( const ModelObject right) const
bool openstudio::model::ModelObject::operator== ( const ModelObject other) const

equality test

const std::vector<std::string>& openstudio::model::ModelObject::outputVariableNames ( ) const

Get all output variables names that could be associated with this object.

These variables may or may not be available for each simulation, need to check report variable dictionary to see if the variable is available. Each concrete class should override this method.

std::vector<OutputVariable> openstudio::model::ModelObject::outputVariables ( ) const

Get all output variables associated with this object, must run simulation to generate data.

boost::optional<ParentObject> openstudio::model::ModelObject::parent ( ) const

Return this object's parent in the hierarchy, if it has one.

std::vector<IdfObject> openstudio::model::ModelObject::removeAdditionalProperties ( )

Removes all additional properties that refer to this object.

Returns removed objects.

std::vector<IdfObject> openstudio::model::ModelObject::removeLifeCycleCosts ( )

Removes all LifeCycleCosts that refer to this object.

Returns removed objects.

std::vector<ResourceObject> openstudio::model::ModelObject::resources ( ) const

Get the resources directly used by this ModelObject.

bool openstudio::model::ModelObject::setParent ( ParentObject newParent)

set the parent, child may have to call non-const methods on the parent

Friends And Related Function Documentation

std::vector< ResourceObject > getRecursiveResources ( const ModelObject object)
related

Returns all ResourceObjects accessible by recursively calling .resources() starting from object.

Will not return object even if object is a ResourceObject.

typedef std::pair<std::string,std::string> ScheduleTypeKey
related

Typedef for ScheduleTypeRegistry key.

First is a string representation of the class name. Second is a display name for the schedule.

typedef std::pair<std::string,std::string> ScheduleTypeKey
related

Typedef for ScheduleTypeRegistry key.

First is a string representation of the class name. Second is a display name for the schedule.