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

Method remove

src/model/AirLoopHVACOutdoorAirSystem.cpp:261–320  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

259 }
260
261 std::vector<IdfObject> AirLoopHVACOutdoorAirSystem_Impl::remove() {
262 // Handle h = this->handle();
263
264 ModelObjectVector modelObjects;
265 ModelObjectVector::iterator it;
266 modelObjects = this->components();
267 for (it = modelObjects.begin(); it != modelObjects.end(); ++it) {
268 if (OptionalHVACComponent comp = it->optionalCast<HVACComponent>()) {
269 if (!it->handle().isNull()) {
270 comp->disconnect();
271 comp->remove();
272 }
273 }
274 }
275
276 //reliefAirModelObject()->remove();
277 //outdoorAirModelObject()->remove();
278 model().disconnect(getObject<ModelObject>(), outdoorAirPort());
279 model().disconnect(getObject<ModelObject>(), reliefAirPort());
280
281 if (auto airLoop_ = this->airLoopHVAC()) {
282 OptionalNode targetModelObject;
283 OptionalNode sourceModelObject;
284 targetModelObject = this->mixedAirModelObject()->optionalCast<Node>();
285 sourceModelObject = this->returnAirModelObject()->optionalCast<Node>();
286 // OptionalUnsigned targetPort = this->connectedObjectPort(openstudio::OS_AirLoopHVAC_OutdoorAirSystemFields::MixedAirNodeName);
287 OptionalUnsigned sourcePort = this->connectedObjectPort(openstudio::OS_AirLoopHVAC_OutdoorAirSystemFields::ReturnAirStreamNodeName);
288
289 OptionalModelObject target2ModelObject = targetModelObject->outletModelObject();
290 OptionalModelObject source2ModelObject = sourceModelObject->inletModelObject();
291 OptionalUnsigned target2Port = targetModelObject->connectedObjectPort(targetModelObject->outletPort());
292 OptionalUnsigned source2Port = sourceModelObject->connectedObjectPort(sourceModelObject->inletPort());
293
294 OptionalNode supplyInletNode = airLoop_->supplyInletNode();
295 OptionalNode supplyOutletNode = OptionalNode(airLoop_->supplyOutletNodes().front());
296
297 model().disconnect(getObject<ModelObject>(), returnAirPort());
298 model().disconnect(getObject<ModelObject>(), mixedAirPort());
299
300 // If the component is stuck directly between the inlet and outlet node.
301 if (supplyInletNode->handle() == sourceModelObject->handle() && supplyOutletNode->handle() == targetModelObject->handle()) {
302 this->model().connect(supplyInletNode.get(), supplyInletNode->outletPort(), supplyOutletNode.get(), supplyOutletNode->inletPort());
303 }
304 // If the component is at the very end of the supply path, but there is another component
305 // preceding this one.
306 else if (supplyOutletNode->handle() == targetModelObject->handle()) {
307 sourceModelObject->remove();
308 this->model().connect(source2ModelObject.get(), source2Port.get(), supplyOutletNode.get(), supplyOutletNode->inletPort());
309 }
310 // else remove the component and the outlet node
311 else {
312 targetModelObject->remove();
313 this->model().connect(sourceModelObject.get(), sourcePort.get(), target2ModelObject.get(), target2Port.get());
314 }
315 }
316
317 getControllerOutdoorAir().remove();
318

Callers

nothing calls this directly

Calls 15

componentsMethod · 0.95
airLoopHVACMethod · 0.95
mixedAirModelObjectMethod · 0.95
returnAirModelObjectMethod · 0.95
beginMethod · 0.80
isNullMethod · 0.80
connectedObjectPortMethod · 0.80
endMethod · 0.45
handleMethod · 0.45
disconnectMethod · 0.45
outletModelObjectMethod · 0.45
inletModelObjectMethod · 0.45

Tested by

no test coverage detected