function DoSaveSelectToStyle()
{
    var gd = moi.geometryDatabase; 
    var activstyleidx = moi.geometryDatabase.activeStyle;
    var objects = gd.getObjects(); 
    var styles = gd.getObjectStyles(); 
    var si = -1; 
    var savedobjsnum = 0;
    
    for ( var i = 0; i < styles.length; ++i ) 
    { 
        if ( styles.item(i).name.search( /selectset/i ) != -1 )
            si = i; 
    } 
    // if we do not have style called 'selectset'
    if ( si == -1 ) 
    { 
        var style = gd.addStyle(); 
        style.name = 'selectset'; 
        si = style.index; 
    }
    
    // reselect all selectset objs
    for ( var i = 0; i < objects.length; ++i )
    { 
        var obj = objects.item(i); 
        if(obj.styleIndex == si)
        {
            obj.styleIndex=activstyleidx; 
            obj.selected=true;
            savedobjsnum +=1;
        }
        else
        {
            if(obj.type = 7)
            {
                var subs = obj.getSubObjects();
                for ( var j = 0; j < subs.length; ++j ) 
                { 
                    var sub = subs.item(j); 
                    if(sub.styleIndex == si)
                    {
                        sub.styleIndex=activstyleidx; 
                        sub.selected=true;
                        savedobjsnum +=1;
                    }
                }
            }
        }
    }
    
    // if no objs in style selectset
    if(savedobjsnum == 0)
    {
        var selobjects = gd.getSelectedObjects(); 
        selobjects.setProperty( 'styleIndex', si ); 
    }
}
DoSaveSelectToStyle();

Add a code snippet to your website: www.paste.org