setup form !!pipeflushinglist .lisElement 'Element' width 50 hei 20button .bntAdd 'Add' at xmin.lisElement ymax + 0.1button .bntAddMember 'Add member'button .bntRem 'Remove'button .bntRemall 'Remove All'text .result 'Volume' at xmin.bntAddMember ymax + 0.5 width 25 is stringbutton .Calculate 'Calculate'exitdefine method .pipeflushing()!this.formtitle = 'Flushing Volume'!this.bntAdd.callback = '!this.AddCE()'!this.bntAddMember.callback = '!this.AddMember()'!this.bntRem.callback = '!this.Remove()'!this.bntRemall.callback = '!this.lisElement.dtext = array()'!this.Calculate.callback = '!this.Calculate()'endmethoddefine method .AddCE()!list = !this.lisElement.dtext!name = !!ce.fullnameif(!list.Find(!name).size() gt 0)thenreturnendif!list.append(!name)!this.lisElement.dtext = !listendmethoddefine method .AddMember()!list = !this.lisElement.dtextdo !x value !!ce.member!name = !x.fullnameif(!list.Find(!name).size() gt 0)thenreturnendif!list.append(!name)!this.lisElement.dtext = !listenddoendmethoddefine method .Remove()if(!This.lisElement.val eq 0)thenreturnendif!list = !this.lisElement.dtext!list.Remove(!This.lisElement.val)!this.lisElement.dtext = !listendmethoddefine method .Calculate()!total = 0do !x value !this.lisElement.dtext!element = !x.dbref()handle anyskipendhandlevar !members coll all bran member for $!elementdo !item value !members!element = !item.dbref()if(!element.type eq 'TUBI')then!od = !element.para[2]!Wallthickness = !element.PWALLT[1]!len = !element.ltlength!radius = !od * 0.5 - !Wallthickness!vol = !radius.Power(2) * 3.1415926 * !len!total = !total + !volelse!od = !element.Aodiam!Wallthickness = !element.PWALLT[1]handle (2,244)skipendhandle!len = !element.Fitlength!radius = !od * 0.5 - !Wallthickness!vol = !radius.Power(2) * 3.1415926 * !len!total = !total + !volendifenddoenddo!this.result.val = !total.string('D0')endmethod

