MCPcopy Create free account
hub / github.com/NatLabRockies/OpenStudio / addToNode

Method addToNode

src/model/AirLoopHVACUnitarySystem.cpp:202–261  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 15

isConnectedMethod · 0.80
demandComponentMethod · 0.80
supplyComponentsMethod · 0.80
oaComponentMethod · 0.80
outboardOANodeMethod · 0.80
reliefComponentMethod · 0.80
outboardReliefNodeMethod · 0.80
modelMethod · 0.45
airLoopHVACMethod · 0.45
handleMethod · 0.45
supplyInletNodeMethod · 0.45

Tested by

no test coverage detected