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();