Schedule ZoneHVACLowTempRadiantVarFlow_Impl::availabilitySchedule() const 
 {
   boost::optional<Schedule> value = optionalAvailabilitySchedule();
   if (!value) 
   {
     LOG(Error, "Required availability schedule not set, using 'Always On' schedule");
     value = this->model().alwaysOnDiscreteSchedule();
     OS_ASSERT(value);
     const_cast<ZoneHVACLowTempRadiantVarFlow_Impl*>(this)->setAvailabilitySchedule(*value);
     value = optionalAvailabilitySchedule();
   }
   return value.get();
 }
 Schedule FanConstantVolume_Impl::availabilitySchedule() const {
   boost::optional<Schedule> value = optionalAvailabilitySchedule();
   if (!value){
     // it is an error if we get here, however we don't want to crash
     // so we hook up to global always on schedule
     LOG(Error, "Required availability schedule not set, using 'Always On' schedule");
     value = this->model().alwaysOnDiscreteSchedule();
     OS_ASSERT(value);
     const_cast<FanConstantVolume_Impl*>(this)->setAvailabilitySchedule(*value);
     value = optionalAvailabilitySchedule();
   }
   OS_ASSERT(value);
   return value.get();
 }
 Schedule CoilCoolingDXVariableRefrigerantFlow_Impl::availabilitySchedule() const {
   boost::optional<Schedule> value = optionalAvailabilitySchedule();
   if (!value) {
     LOG_AND_THROW(briefDescription() << " does not have an Availability Schedule attached.");
   }
   return value.get();
 }
	Schedule ZoneHVACLowTemperatureRadiantElectric_Impl::availabilitySchedule() const 
	{
		boost::optional<Schedule> value = optionalAvailabilitySchedule();
		if (!value) 
		{
			// it is an error if we get here, however we don't want to crash
			// so we hook up to global always on schedule
			LOG(Error, "Required availability schedule not set, using 'Always On' schedule");
			value = this->model().alwaysOnDiscreteSchedule();
			BOOST_ASSERT(value);
			const_cast<ZoneHVACLowTemperatureRadiantElectric_Impl*>(this)->setAvailabilitySchedule(*value);
			value = optionalAvailabilitySchedule();
		}
		BOOST_ASSERT(value);
		return value.get();
	}
 Schedule ZoneHVACBaseboardConvectiveElectric_Impl::availabilitySchedule() const {
   boost::optional<Schedule> value = optionalAvailabilitySchedule();
   if (!value) {
     LOG_AND_THROW(briefDescription() << " does not have an Availability Schedule attached.");
   }
   return value.get();
 }
 Schedule ControllerMechanicalVentilation_Impl::availabilitySchedule() const {
   boost::optional<Schedule> value = optionalAvailabilitySchedule();
   if (!value) {
     LOG_AND_THROW(briefDescription() << " does not have an Availability Schedule attached.");
   }
   return value.get();
 }
 Schedule ZoneHVACEnergyRecoveryVentilator_Impl::availabilitySchedule() const {
   boost::optional<Schedule> value = optionalAvailabilitySchedule();
   if (!value) {
     LOG_AND_THROW(briefDescription() << " does not have an Availability Schedule attached.");
   }
   return value.get();
 }