// set the parent, child may have to call methods on the parent
 bool InsideSurfaceConvectionAlgorithm_Impl::setParent(ParentObject& newParent)
 {
   if (newParent.optionalCast<SimulationControl>() && (newParent.model() == model())) {
     return true;
   }
   return false;
 }
Пример #2
0
 bool ConvergenceLimits_Impl::setParent(ParentObject& newParent)
 {
   if (newParent.optionalCast<SimulationControl>() && (newParent.model() == model())) {
     return true;
   }
   return false;
 }
Пример #3
0
 // set the parent, child may have to call methods on the parent
 bool RunPeriod_Impl::setParent(ParentObject& newParent)
 {
   if (newParent.optionalCast<SimulationControl>() && (newParent.model() == model())) {
     return true;
   }
   return false;
 }
Пример #4
0
 bool WeatherFile_Impl::setParent(ParentObject& newParent)
 {
   if (newParent.optionalCast<Site>() && (newParent.model() == model())){
     return true;
   }
   return false;
 }
Пример #5
0
 // set the parent, child may have to call methods on the parent
 bool SizingPeriod_Impl::setParent(ParentObject& newParent)
 {
   if (newParent.optionalCast<Site>() && (newParent.model() == model())) {
     return true;
   }
   return false;
 }
Пример #6
0
 // set the parent, child may have to call methods on the parent
 bool HeatBalanceAlgorithm_Impl::setParent(ParentObject& newParent)
 {
   if (newParent.optionalCast<SimulationControl>() && (newParent.model() == model())) {
     return true;
   }
   return false;
 }
// set the parent, child may have to call methods on the parent
bool ZoneAirContaminantBalance_Impl::setParent(ParentObject& newParent)
{
    if (newParent.optionalCast<SimulationControl>() && (newParent.model() == model())) {
        return true;
    }
    return false;
}
 // set the parent, child may have to call methods on the parent
 bool RunPeriodControlSpecialDays_Impl::setParent(ParentObject& newParent)
 {
   if (newParent.optionalCast<YearDescription>() && (newParent.model() == model())) {
     return true;
   }
   return false;
 }
Пример #9
0
 bool ScheduleRule_Impl::setParent(ParentObject& newParent)
 {
   bool result = false;
   if (newParent.optionalCast<ScheduleRuleset>()){
     result = setPointer(OS_Schedule_RuleFields::ScheduleRulesetName, newParent.handle());
   }
   return result;
 }
Пример #10
0
 bool ScheduleDay_Impl::setParent(ParentObject& newParent) {
   if (OptionalScheduleRule scheduleRule = newParent.optionalCast<ScheduleRule>()) {
     if (getObject<ScheduleDay>().getModelObjectSources<ModelObject>().empty()) {
       bool result = newParent.setPointer(OS_Schedule_RuleFields::DayScheduleName, handle());
       OS_ASSERT(result);
       return true;
     }
   }
   return false;
 }
Пример #11
0
std::vector<ModelObject> getRecursiveChildren(const ParentObject& object, bool includeLifeCycleCosts) {
  std::set<Handle> resultSet;
  std::pair<HandleSet::const_iterator,bool> insertResult;
  std::vector<ModelObject> result;
  resultSet.insert(object.handle());
  result.push_back(object);

  if (includeLifeCycleCosts){
    for (const LifeCycleCost& lifeCycleCost : object.lifeCycleCosts()){
      result.push_back(lifeCycleCost);
    }
  }

  std::deque<ParentObject> parents;
  parents.push_back(object);

  while (parents.size() > 0) {
    ParentObject currentParent(parents[0]);
    parents.pop_front();

    // parent's costs have already been added
    
    for (const ModelObject& child : currentParent.children()) {
      insertResult = resultSet.insert(child.handle());
      if (insertResult.second) {
        result.push_back(child);

        if (includeLifeCycleCosts){
          for (const LifeCycleCost& lifeCycleCost : child.lifeCycleCosts()){
            result.push_back(lifeCycleCost);
          }
        }

        OptionalParentObject opo = child.optionalCast<ParentObject>();
        if (opo) { 
          parents.push_back(*opo); 
        }
      }
    }
  }

  return result;
}
Пример #12
0
 bool ClimateZones_Impl::setParent(ParentObject& newParent) {
   if ( newParent.optionalCast<Site>() && (newParent.model() == model()) ){
     return true;
   }
   return false;
 }