| 200 | } |
| 201 | |
| 202 | bool AirLoopHVACUnitarySystem_Impl::addToNode(Node& node) { |
| 203 | bool result = ZoneHVACComponent_Impl::addToNode(node); |
| 204 | |
| 205 | if (!result) { |
| 206 | auto _model = node.model(); |
| 207 | auto thisModelObject = getObject<ModelObject>(); |
| 208 | auto t_airLoop = node.airLoopHVAC(); |
| 209 | auto t_oaSystem = node.airLoopHVACOutdoorAirSystem(); |
| 210 | |
| 211 | boost::optional<unsigned> componentInletPort; |
| 212 | boost::optional<unsigned> componentOutletPort; |
| 213 | |
| 214 | boost::optional<HVACComponent> systemStartComponent; |
| 215 | boost::optional<HVACComponent> systemEndComponent; |
| 216 | |
| 217 | if (node.getImpl<Node_Impl>()->isConnected(thisModelObject)) { |
| 218 | return false; |
| 219 | } |
| 220 | |
| 221 | if (t_airLoop && !t_oaSystem) { |
| 222 | if (t_airLoop->demandComponent(node.handle())) { |
| 223 | return false; |
| 224 | } |
| 225 | |
| 226 | systemStartComponent = t_airLoop->supplyInletNode(); |
| 227 | auto nodes = t_airLoop->supplyOutletNodes(); |
| 228 | OS_ASSERT(!nodes.empty()); |
| 229 | if ((nodes.size() == 2u) && (!t_airLoop->supplyComponents(node, nodes[1]).empty())) { |
| 230 | systemEndComponent = nodes[1]; |
| 231 | } else { |
| 232 | systemEndComponent = nodes[0]; |
| 233 | } |
| 234 | OS_ASSERT(systemEndComponent); |
| 235 | componentInletPort = inletPort(); |
| 236 | componentOutletPort = outletPort(); |
| 237 | |
| 238 | removeFromAirLoopHVAC(); |
| 239 | } else if (t_oaSystem) { |
| 240 | if (t_oaSystem->oaComponent(node.handle())) { |
| 241 | systemStartComponent = t_oaSystem->outboardOANode(); |
| 242 | systemEndComponent = t_oaSystem.get(); |
| 243 | componentInletPort = inletPort(); |
| 244 | componentOutletPort = outletPort(); |
| 245 | } else if (t_oaSystem->reliefComponent(node.handle())) { |
| 246 | systemStartComponent = t_oaSystem.get(); |
| 247 | systemEndComponent = t_oaSystem->outboardReliefNode(); |
| 248 | componentInletPort = inletPort(); |
| 249 | componentOutletPort = outletPort(); |
| 250 | } |
| 251 | removeFromAirLoopHVAC(); |
| 252 | } |
| 253 | |
| 254 | if (systemStartComponent && systemEndComponent && componentOutletPort && componentInletPort) { |
| 255 | result = HVACComponent_Impl::addToNode(node, systemStartComponent.get(), systemEndComponent.get(), componentInletPort.get(), |
| 256 | componentOutletPort.get()); |
| 257 | } |
| 258 | } |
| 259 |
nothing calls this directly
no test coverage detected