| 408 | } |
| 409 | |
| 410 | bool ZoneHVACComponent_Impl::removeFromAirLoopHVAC() { |
| 411 | // Note JM 2018-09-22: |
| 412 | // This calls HVACComponent::airLoopHVACOutdoorAirSystem |
| 413 | // It returns an AirLoopHVACOutdoorAirSystem that this component is ON |
| 414 | // Not to be confused with this->airLoopHVAC()->airLoopHVACOutdoorAirSystem() which returns an |
| 415 | // eventual AirLoopHVACOutdoorAirSystem whether this component is on it or not! |
| 416 | if (auto t_oaSystem = airLoopHVACOutdoorAirSystem()) { |
| 417 | if (t_oaSystem->oaComponent(handle())) { |
| 418 | return HVACComponent_Impl::removeFromLoop(t_oaSystem->outboardOANode().get(), t_oaSystem.get(), inletPort(), outletPort()); |
| 419 | } else if (t_oaSystem->reliefComponent(handle())) { |
| 420 | return HVACComponent_Impl::removeFromLoop(t_oaSystem.get(), t_oaSystem->outboardReliefNode().get(), inletPort(), outletPort()); |
| 421 | } |
| 422 | } else if (auto t_loop = loop()) { |
| 423 | if (t_loop->supplyComponent(handle())) { |
| 424 | return HVACComponent_Impl::removeFromLoop(t_loop->supplyInletNode(), t_loop->supplyOutletNode(), inletPort(), outletPort()); |
| 425 | } |
| 426 | /* |
| 427 | *else if( t_loop->demandComponent(handle()) ) { |
| 428 | * return HVACComponent_Impl::removeFromLoop(t_loop->demandInletNode(), |
| 429 | * t_loop->demandOutletNode(), |
| 430 | * inletPort(), |
| 431 | * outletPort()); |
| 432 | *} |
| 433 | */ |
| 434 | } |
| 435 | return false; |
| 436 | } |
| 437 | |
| 438 | boost::optional<ModelObject> ZoneHVACComponent_Impl::airInletModelObject() const { |
| 439 | auto node = inletNode(); |