std::vector<ModelObject> Splitter_Impl::outletModelObjects() { std::vector<ModelObject> result; int stop = nextBranchIndex(); for( int i = 0; i < stop; i++ ) { result.push_back( this->outletModelObject( i ).get() ); } return result; }
std::vector<ModelObject> Mixer_Impl::inletModelObjects() const { std::vector<ModelObject> result; unsigned stop = nextBranchIndex(); for( unsigned i = 0; i < stop; i++ ) { result.push_back( this->inletModelObject( i ).get() ); } return result; }
std::vector<openstudio::IdfObject> ConnectorSplitter_Impl::remove() { OptionalConnectorSplitter self = model().getModelObject<ConnectorSplitter>(handle()); model().disconnect(*self,inletPort()); for( int i = 0; i < int(nextBranchIndex()) - 1; i++ ) { model().disconnect(*self,outletPort(i)); } return ModelObject_Impl::remove(); }
void Mixer_Impl::removePortForBranch(unsigned branchIndex) { int _nextBranchIndex = nextBranchIndex(); model().disconnect(getObject<ModelObject>(),inletPort(branchIndex)); for(int i = branchIndex + 1; i < _nextBranchIndex; i++ ) { ModelObject mo = inletModelObject(i).get(); unsigned port = connectedObjectPort( inletPort(i) ).get(); model().disconnect(getObject<ModelObject>(),inletPort(i)); model().connect(mo,port,getObject<ModelObject>(),inletPort(i-1)); } }
unsigned Splitter_Impl::branchIndexForOutletModelObject( ModelObject modelObject ) { int stop = nextBranchIndex(); for(int i = 0; i < stop; i++) { if( outletModelObject(i) == modelObject ) { return i; } } return 0; }
unsigned Mixer_Impl::branchIndexForInletModelObject( ModelObject modelObject ) { unsigned stop = nextBranchIndex(); for(unsigned i = 0; i < stop; i++) { if( inletModelObject(i) == modelObject ) { return i; } } return 0; }
void Splitter_Impl::removePortForBranch(unsigned branchIndex) { int _nextBranchIndex = nextBranchIndex(); model().disconnect(getObject<ModelObject>(),outletPort(branchIndex)); //std::vector<ModelObject> modelObjects = outletModelObjects(); for(int i = branchIndex + 1; i < _nextBranchIndex; i++ ) { ModelObject mo = outletModelObject(i).get(); unsigned port = connectedObjectPort( outletPort(i) ).get(); model().disconnect(getObject<ModelObject>(),outletPort(i)); model().connect(getObject<ModelObject>(),outletPort(i-1),mo,port); } }
std::vector<openstudio::IdfObject> AirLoopHVACZoneSplitter_Impl::remove() { if( this->airLoopHVAC() ) { return std::vector<openstudio::IdfObject>(); } else { OptionalAirLoopHVACZoneSplitter self = model().getModelObject<AirLoopHVACZoneSplitter>(handle()); model().disconnect(*self,inletPort()); for( int i = 0; i < int(nextBranchIndex()) - 1; i++ ) { model().disconnect(*self,outletPort(i)); } return HVACComponent_Impl::remove(); } }
unsigned Mixer_Impl::newInletPortAfterBranch(unsigned branchIndex) { //std::vector<ModelObject> modelObjects = inletModelObjects(); unsigned stop = nextBranchIndex(); for(unsigned i = branchIndex; i < stop; i++ ) { ModelObject mo = inletModelObject(i).get(); unsigned port = connectedObjectPort( inletPort(i) ).get(); model().connect(getObject<ModelObject>(),inletPort(i+2),mo,port); } Model _model = model(); Node node( _model ); _model.connect( node,node.outletPort(),getObject<ModelObject>(),inletPort(branchIndex+1) ); return inletPort(branchIndex++); }
unsigned Splitter_Impl::newOutletPortAfterBranch(unsigned branchIndex) { //std::vector<ModelObject> modelObjects = outletModelObjects(); int stop = nextBranchIndex() - 1; for(int i = branchIndex; i < stop; i++ ) { ModelObject mo = outletModelObject(i).get(); unsigned port = connectedObjectPort( outletPort(i) ).get(); model().connect(getObject<ModelObject>(),outletPort(i+2),mo,port); } Model _model = model(); Node node( _model ); _model.connect( getObject<ModelObject>(),outletPort(branchIndex+1),node,node.inletPort() ); return outletPort(branchIndex++); }