boost::optional<IdfObject> ForwardTranslator::translateCoilHeatingDXSingleSpeedWithoutUnitary( CoilHeatingDXSingleSpeed & modelObject ) { boost::optional<std::string> s; boost::optional<double> value; IdfObject idfObject(IddObjectType::Coil_Heating_DX_SingleSpeed); m_idfObjects.push_back(idfObject); // Name s = modelObject.name(); if( s ) { idfObject.setName(*s); } // AvailabilityScheduleName if( boost::optional<Schedule> schedule = modelObject.availabilitySchedule() ) { if( boost::optional<IdfObject> _schedule = translateAndMapModelObject(schedule.get()) ) { idfObject.setString(Coil_Heating_DX_SingleSpeedFields::AvailabilityScheduleName,_schedule->name().get()); } } // AirInletNodeName boost::optional<std::string> airInletNodeName; if( boost::optional<ModelObject> mo = modelObject.inletModelObject() ) { if( boost::optional<Node> node = mo->optionalCast<Node>() ) { if( (s = node->name()) ) { airInletNodeName = s; idfObject.setString(Coil_Heating_DX_SingleSpeedFields::AirInletNodeName,s.get()); } } } // AirOutletNodeName boost::optional<std::string> airOutletNodeName; if( boost::optional<ModelObject> mo = modelObject.outletModelObject() ) { if( boost::optional<Node> node = mo->optionalCast<Node>() ) { if( (s = node->name()) ) { airOutletNodeName = s; idfObject.setString(Coil_Heating_DX_SingleSpeedFields::AirOutletNodeName,s.get()); } } } // RatedTotalHeatingCapacity if( modelObject.isRatedTotalHeatingCapacityAutosized() ) { idfObject.setString(Coil_Heating_DX_SingleSpeedFields::RatedTotalHeatingCapacity,"Autosize"); } else if( (value = modelObject.ratedTotalHeatingCapacity()) ) { idfObject.setDouble(Coil_Heating_DX_SingleSpeedFields::RatedTotalHeatingCapacity,value.get()); } // RatedCOP if( (value = modelObject.ratedCOP()) ) { idfObject.setDouble(Coil_Heating_DX_SingleSpeedFields::RatedCOP,value.get()); } // RatedAirFlowRate if( modelObject.isRatedAirFlowRateAutosized() ) { idfObject.setString(Coil_Heating_DX_SingleSpeedFields::RatedAirFlowRate,"Autosize"); } else if( (value = modelObject.ratedAirFlowRate()) ) { idfObject.setDouble(Coil_Heating_DX_SingleSpeedFields::RatedAirFlowRate,value.get()); } // TotalHeatingCapacityFunctionofTemperatureCurveName ModelObject curve = modelObject.totalHeatingCapacityFunctionofTemperatureCurve(); if( boost::optional<IdfObject> _curve = translateAndMapModelObject(curve) ) { idfObject.setString(Coil_Heating_DX_SingleSpeedFields::TotalHeatingCapacityFunctionofTemperatureCurveName,_curve->name().get()); } // TotalHeatingCapacityFunctionofFlowFractionCurveName curve = modelObject.totalHeatingCapacityFunctionofFlowFractionCurve(); if( boost::optional<IdfObject> _curve = translateAndMapModelObject(curve) ) { idfObject.setString(Coil_Heating_DX_SingleSpeedFields::TotalHeatingCapacityFunctionofFlowFractionCurveName,_curve->name().get()); } // EnergyInputRatioFunctionofTemperatureCurveName curve = modelObject.energyInputRatioFunctionofTemperatureCurve(); if( boost::optional<IdfObject> _curve = translateAndMapModelObject(curve) ) { idfObject.setString(Coil_Heating_DX_SingleSpeedFields::EnergyInputRatioFunctionofTemperatureCurveName,_curve->name().get()); } // EnergyInputRatioFunctionofFlowFractionCurveName curve = modelObject.energyInputRatioFunctionofFlowFractionCurve(); if( boost::optional<IdfObject> _curve = translateAndMapModelObject(curve) ) { idfObject.setString(Coil_Heating_DX_SingleSpeedFields::EnergyInputRatioFunctionofFlowFractionCurveName,_curve->name().get()); } // PartLoadFractionCorrelationCurveName curve = modelObject.partLoadFractionCorrelationCurve(); if( boost::optional<IdfObject> _curve = translateAndMapModelObject(curve) ) { idfObject.setString(Coil_Heating_DX_SingleSpeedFields::PartLoadFractionCorrelationCurveName,_curve->name().get()); } // DefrostEnergyInputRatioFunctionofTemperatureCurveName if( boost::optional<Curve> curve = modelObject.defrostEnergyInputRatioFunctionofTemperatureCurve() ) { if( boost::optional<IdfObject> _curve = translateAndMapModelObject(curve.get()) ) { idfObject.setString(Coil_Heating_DX_SingleSpeedFields::DefrostEnergyInputRatioFunctionofTemperatureCurveName,_curve->name().get()); } } // MinimumOutdoorDryBulbTemperatureforCompressorOperation if( (value = modelObject.minimumOutdoorDryBulbTemperatureforCompressorOperation()) ) { idfObject.setDouble(Coil_Heating_DX_SingleSpeedFields::MinimumOutdoorDryBulbTemperatureforCompressorOperation,value.get()); } // MaximumOutdoorDryBulbTemperatureforDefrostOperation if( (value = modelObject.maximumOutdoorDryBulbTemperatureforDefrostOperation()) ) { idfObject.setDouble(Coil_Heating_DX_SingleSpeedFields::MaximumOutdoorDryBulbTemperatureforDefrostOperation,value.get()); } // CrankcaseHeaterCapacity if( (value = modelObject.crankcaseHeaterCapacity()) ) { idfObject.setDouble(Coil_Heating_DX_SingleSpeedFields::CrankcaseHeaterCapacity,value.get()); } // MaximumOutdoorDryBulbTemperatureforCrankcaseHeaterOperation if( (value = modelObject.maximumOutdoorDryBulbTemperatureforCrankcaseHeaterOperation()) ) { idfObject.setDouble(Coil_Heating_DX_SingleSpeedFields::MaximumOutdoorDryBulbTemperatureforCrankcaseHeaterOperation,value.get()); } // DefrostStrategy if( (s = modelObject.defrostStrategy()) ) { idfObject.setString(Coil_Heating_DX_SingleSpeedFields::DefrostStrategy,s.get()); } // DefrostControl if( (s = modelObject.defrostControl()) ) { idfObject.setString(Coil_Heating_DX_SingleSpeedFields::DefrostControl,s.get()); } // DefrostTimePeriodFraction if( (value = modelObject.defrostTimePeriodFraction()) ) { idfObject.setDouble(Coil_Heating_DX_SingleSpeedFields::DefrostTimePeriodFraction,value.get()); } // ResistiveDefrostHeaterCapacity if( modelObject.isResistiveDefrostHeaterCapacityAutosized() ) { idfObject.setString(Coil_Heating_DX_SingleSpeedFields::ResistiveDefrostHeaterCapacity,"Autosize"); } else if( (value = modelObject.resistiveDefrostHeaterCapacity()) ) { idfObject.setDouble(Coil_Heating_DX_SingleSpeedFields::ResistiveDefrostHeaterCapacity,value.get()); } return idfObject; }