bool SteamEquipment_Impl::isAbsolute() const { SteamEquipmentDefinition definition = steamEquipmentDefinition(); if (definition.designLevel()) { return true; } return false; }
bool SteamEquipment_Impl::hardSize() { OptionalSpace space = this->space(); if (!space) { return false; } makeUnique(); SteamEquipmentDefinition definition = steamEquipmentDefinition(); for (LifeCycleCost cost : definition.lifeCycleCosts()) { cost.convertToCostPerEach(); } if (definition.designLevel()) { return true; } if (OptionalDouble areaDensity = definition.wattsperSpaceFloorArea()) { return definition.setDesignLevel(*areaDensity * space->floorArea()); } if (OptionalDouble peopleDensity = definition.wattsperPerson()) { return definition.setDesignLevel(*peopleDensity * space->numberOfPeople()); } OS_ASSERT(false); return false; }
boost::optional<IdfObject> ForwardTranslator::translateSteamEquipment( SteamEquipment& modelObject) { IdfObject idfObject(openstudio::IddObjectType::SteamEquipment); m_idfObjects.push_back(idfObject); for (LifeCycleCost lifeCycleCost : modelObject.lifeCycleCosts()){ translateAndMapModelObject(lifeCycleCost); } SteamEquipmentDefinition definition = modelObject.steamEquipmentDefinition(); idfObject.setString(SteamEquipmentFields::Name, modelObject.name().get()); boost::optional<Space> space = modelObject.space(); boost::optional<SpaceType> spaceType = modelObject.spaceType(); if (space){ boost::optional<ThermalZone> thermalZone = space->thermalZone(); if (thermalZone){ idfObject.setString(SteamEquipmentFields::ZoneorZoneListName, thermalZone->name().get()); } }else if(spaceType){ idfObject.setString(SteamEquipmentFields::ZoneorZoneListName, spaceType->name().get()); } boost::optional<Schedule> schedule = modelObject.schedule(); if (schedule){ idfObject.setString(SteamEquipmentFields::ScheduleName, schedule->name().get()); } idfObject.setString(SteamEquipmentFields::DesignLevelCalculationMethod, definition.designLevelCalculationMethod()); double multiplier = modelObject.multiplier(); OptionalDouble d = definition.designLevel(); if (d){ idfObject.setDouble(SteamEquipmentFields::DesignLevel, (*d)*multiplier); } d = definition.wattsperSpaceFloorArea(); if (d){ idfObject.setDouble(SteamEquipmentFields::PowerperZoneFloorArea, (*d)*multiplier); } d = definition.wattsperPerson(); if (d){ idfObject.setDouble(SteamEquipmentFields::PowerperPerson, (*d)*multiplier); } if (!definition.isFractionLatentDefaulted()){ idfObject.setDouble(SteamEquipmentFields::FractionLatent, definition.fractionLatent()); } if (!definition.isFractionRadiantDefaulted()){ idfObject.setDouble(SteamEquipmentFields::FractionRadiant, definition.fractionRadiant()); } if (!definition.isFractionLostDefaulted()){ idfObject.setDouble(SteamEquipmentFields::FractionLost, definition.fractionLost()); } if (!modelObject.isEndUseSubcategoryDefaulted()){ idfObject.setString(SteamEquipmentFields::EndUseSubcategory, modelObject.endUseSubcategory()); } return idfObject; }