Eric-
You can find the source code on BIG-IP in /usr/share/tcl8.4/iapp/iapp.1.0.0.tcl. I apologize for not having posted documentation yet. The "pool_members" proc will natively support your objective if you pass it a parameter, as shown below. The -fields flag takes a list of name-value pairs: (1) the tmsh parameter and (2) your variable name. You will want your values to reflect the correct tmsh syntax, ie. "user-up" and "user-down" rather than "enabled" and "disabled". Good on you for excellent use and modification of iApps.
-Fred
array set pool_arr {
1,0 { [iapp::conf create ltm pool ${app}_pool \
[iapp::substa pool_ramp_pga_arr($advanced,$do_slow_ramp,$do_pga)] \
[iapp::substa pool_lb_queue_arr($advanced,$is_edge,$tcp_queuing)] \
[iapp::substa monitor_arr($new_pool,$new_monitor,$advanced)] \
[iapp::pool_members -fields { state state } $::pool__members]] }
0,0 { [expr { $::net__server_mode ne "tunnel" ? \
$::pool__pool_to_use : $::pool__pool_to_use_wom }] }
* { none }
}