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

Method addToNode

src/model/WaterToAirComponent.cpp:110–177  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

108 }
109
110 bool WaterToAirComponent_Impl::addToNode(Node& node) {
111 auto _model = node.model();
112 auto thisModelObject = getObject<ModelObject>();
113 auto t_airLoop = node.airLoopHVAC();
114 auto t_plantLoop = node.plantLoop();
115 auto t_oaSystem = node.airLoopHVACOutdoorAirSystem();
116
117 boost::optional<unsigned> componentInletPort;
118 boost::optional<unsigned> componentOutletPort;
119
120 boost::optional<HVACComponent> systemStartComponent;
121 boost::optional<HVACComponent> systemEndComponent;
122
123 if (node.getImpl<Node_Impl>()->isConnected(thisModelObject)) {
124 return false;
125 }
126
127 if (t_airLoop && !t_oaSystem) {
128 if (t_airLoop->demandComponent(node.handle())) {
129 return false;
130 }
131
132 systemStartComponent = t_airLoop->supplyInletNode();
133 auto nodes = t_airLoop->supplyOutletNodes();
134 OS_ASSERT(!nodes.empty());
135 if ((nodes.size() == 2u) && (!t_airLoop->supplyComponents(node, nodes[1]).empty())) {
136 systemEndComponent = nodes[1];
137 } else {
138 systemEndComponent = nodes[0];
139 }
140 OS_ASSERT(systemEndComponent);
141 componentInletPort = airInletPort();
142 componentOutletPort = airOutletPort();
143
144 removeFromAirLoopHVAC();
145 } else if (t_oaSystem) {
146 if (t_oaSystem->oaComponent(node.handle())) {
147 systemStartComponent = t_oaSystem->outboardOANode();
148 systemEndComponent = t_oaSystem.get();
149 componentInletPort = airInletPort();
150 componentOutletPort = airOutletPort();
151 } else if (t_oaSystem->reliefComponent(node.handle())) {
152 systemStartComponent = t_oaSystem.get();
153 systemEndComponent = t_oaSystem->outboardReliefNode();
154 componentInletPort = airInletPort();
155 componentOutletPort = airOutletPort();
156 }
157 removeFromAirLoopHVAC();
158 } else if (t_plantLoop) {
159 if (!t_plantLoop->demandComponent(node.handle())) {
160 return false;
161 }
162
163 systemStartComponent = t_plantLoop->demandInletNode();
164 systemEndComponent = t_plantLoop->demandOutletNode();
165 componentInletPort = waterInletPort();
166 componentOutletPort = waterOutletPort();
167

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
plantLoopMethod · 0.45
handleMethod · 0.45

Tested by

no test coverage detected