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

Method removeSupplyPlenum

src/model/ThermalZone.cpp:2346–2372  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2344 }
2345
2346 void ThermalZone_Impl::removeSupplyPlenum(const AirLoopHVAC& airloop, unsigned branchIndex) {
2347 Model m = model();
2348
2349 auto zoneSplitters = airloop.zoneSplitters();
2350 if (branchIndex < zoneSplitters.size()) {
2351 auto zoneSplitter = zoneSplitters[branchIndex];
2352
2353 auto modelObjects = airloop.demandComponents(zoneSplitter, getObject<ThermalZone>());
2354 auto plenums = subsetCastVector<AirLoopHVACSupplyPlenum>(modelObjects);
2355 boost::optional<AirLoopHVACSupplyPlenum> plenum;
2356
2357 if (!plenums.empty()) {
2358 auto plenum = plenums.front();
2359
2360 if (plenum.outletModelObjects().size() == 1u) {
2361 plenum.remove();
2362 } else {
2363 auto it = std::find(modelObjects.begin(), modelObjects.end(), plenum);
2364 ModelObject plenumOutletModelObject = *(it + 1);
2365 unsigned branchIndex = plenum.branchIndexForOutletModelObject(plenumOutletModelObject);
2366 unsigned port = plenum.connectedObjectPort(plenum.outletPort(branchIndex)).get();
2367 plenum.removePortForBranch(branchIndex);
2368 m.connect(zoneSplitter, zoneSplitter.nextOutletPort(), plenumOutletModelObject, port);
2369 }
2370 }
2371 }
2372 }
2373
2374 void ThermalZone_Impl::removeSupplyPlenum(unsigned branchIndex) {
2375 auto airloop = airLoopHVAC();

Callers 2

removeBranchForZoneMethod · 0.80
TEST_FFunction · 0.80

Calls 15

zoneSplittersMethod · 0.80
demandComponentsMethod · 0.80
outletModelObjectsMethod · 0.80
beginMethod · 0.80
connectedObjectPortMethod · 0.80
sizeMethod · 0.45
emptyMethod · 0.45
removeMethod · 0.45
endMethod · 0.45
getMethod · 0.45
outletPortMethod · 0.45

Tested by 1

TEST_FFunction · 0.64