Hi
I modified the above script:
It'll arrange your styles and keep your unused styles at the end of the list. (Keeps the names and colors intact)
code:
script: var gd = moi.geometryDatabase;
var styles = gd.getObjectStyles();
var counts = new Array(styles.length);
var unusedStylesList = {};
unusedStylesList.name=[];
unusedStylesList.color=[];
for (var i = 0; i < counts.length; ++i)
{
counts[i] = 0;
}
var objs = gd.getObjects();
for (var i = 0; i < objs.length; ++i)
{
var obj = objs.item(i);
if (obj.styleIndex < counts.length) ++counts[obj.styleIndex];
var subobjs = obj.getSubObjects();
for (var j = 0; j < subobjs.length; ++j) {
var subobj = subobjs.item(j);
if (subobj.styleIndex < counts.length) ++counts[subobj.styleIndex];
}
}
moi.geometryDatabase.styleEditorOpened();
for (var i = 0; i < styles.length; ++i)
{
if (counts[i] == 0)
{
unusedStylesList.name.push(styles.item(i).name);
unusedStylesList.color.push(styles.item(i).color);
styles.item(i).remove();
}
}
for(i=0;i<unusedStylesList.name.length;i++)
{
var style = moi.geometryDatabase.addStyle();
style.name = unusedStylesList.name[i];
style.color = unusedStylesList.color[i];
}
moi.geometryDatabase.styleEditorClosed();
|