Thanks to the help of LocutusofBorg i managed to devise a simple way to turn many id's on and off i guess efficient for now.

The following bit of code i used to set 'ranges' of id's i wanted to set all at once.

Code:
 
alias diag_range_set { 
  var %i $gettok($2,1,45)
  var %tmp %i
  var %i = %i + 1
  while (%i <= $gettok($2,2,45)) {
    var %tmp  %tmp $+ , $+ %i
    inc %i
  }
  set %range [ $+ [ $1 ] ]  %tmp
}
 


This left me with somehting like this in variables:

Code:
 
var %range1 = 10
var %range2 = 20,21,22,23,24,25,26,27,28,29
var %range3 = 30
..
var %range10 = 100
var %range11 = 110
var %range12 = 120,121
 


From that on a click of such event i used the following code:

Code:
 
  var %i = 1
  while (%i <= %rang.top) {
    did -h $dname [ %range [ $+ [ %i ] ] ]
    inc %i
  }

  var %i $did($dname,2).sel
  did -v k.so [ %range [ $+ [ %i ] ] ]
 


%rang.top would be set to whatever the highest number of groups of ranges of id's there are

Post and let me know what you think of my outcome.

Cheers Col