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

Method addToNode

src/model/StraightComponent.cpp:103–150  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

101 }
102
103 bool StraightComponent_Impl::addToNode(Node& node) {
104 Model _model = node.model();
105 auto thisModelObject = getObject<ModelObject>();
106 auto t_loop = node.loop();
107 auto t_oaSystem = node.airLoopHVACOutdoorAirSystem();
108
109 auto componentInletPort = inletPort();
110 auto componentOutletPort = outletPort();
111
112 boost::optional<HVACComponent> systemStartComponent;
113 boost::optional<HVACComponent> systemEndComponent;
114
115 if (node.getImpl<Node_Impl>()->isConnected(thisModelObject)) {
116 return false;
117 }
118
119 if (t_loop && !t_oaSystem) {
120 if (t_loop->supplyComponent(node.handle())) {
121 systemStartComponent = t_loop->supplyInletNode();
122 auto nodes = t_loop->supplyOutletNodes();
123 OS_ASSERT(!nodes.empty());
124 if ((nodes.size() == 2u) && (!t_loop->supplyComponents(node, nodes[1]).empty())) {
125 systemEndComponent = nodes[1];
126 } else {
127 systemEndComponent = nodes[0];
128 }
129 OS_ASSERT(systemEndComponent);
130 } else if (t_loop->demandComponent(node.handle())) {
131 systemStartComponent = t_loop->demandInletNode();
132 systemEndComponent = t_loop->demandOutletNode();
133 }
134 } else if (t_oaSystem) {
135 if (t_oaSystem->oaComponent(node.handle())) {
136 systemStartComponent = t_oaSystem->outboardOANode();
137 systemEndComponent = t_oaSystem.get();
138 } else if (t_oaSystem->reliefComponent(node.handle())) {
139 systemStartComponent = t_oaSystem.get();
140 systemEndComponent = t_oaSystem->outboardReliefNode();
141 }
142 }
143
144 if (systemStartComponent && systemEndComponent) {
145 removeFromLoop();
146 return HVACComponent_Impl::addToNode(node, systemStartComponent.get(), systemEndComponent.get(), componentInletPort, componentOutletPort);
147 } else {
148 return false;
149 }
150 }
151
152 ModelObject StraightComponent_Impl::clone(Model model) const {
153 auto mo = HVACComponent_Impl::clone(model).cast<StraightComponent>();

Callers

nothing calls this directly

Calls 15

isConnectedMethod · 0.80
supplyComponentMethod · 0.80
supplyComponentsMethod · 0.80
demandComponentMethod · 0.80
oaComponentMethod · 0.80
outboardOANodeMethod · 0.80
reliefComponentMethod · 0.80
outboardReliefNodeMethod · 0.80
modelMethod · 0.45
loopMethod · 0.45
handleMethod · 0.45

Tested by

no test coverage detected