From: noskule
Hi All
Has anyone an idea how to modify the code below to select all objects with the same name but restrict it to the same group?
Thanks for any hints
Nos
/* Extend selection to same names */
var names = new Array();
var objs = moi.geometryDatabase.getSelectedObjects();
for (var i = 0; i < objs.length; ++i) {
var obj = objs.item(i);
if (obj.name != '') {
names[obj.name] = true;
}
}
objs = moi.geometryDatabase.getObjects();
for (var i = 0; i < objs.length; ++i) {
var obj = objs.item(i);
if (obj.name != '' && names[obj.name]) {
obj.selected = true;
}
}
/* Extend selection to same names, show hidden objects */
var names = new Array();
var objs = moi.geometryDatabase.getSelectedObjects();
for (var i = 0; i < objs.length; ++i) {
var obj = objs.item(i);
if (obj.name != '') {
names[obj.name] = true;
}
}
objs = moi.geometryDatabase.getObjects();
for (var i = 0; i < objs.length; ++i) {
var obj = objs.item(i);
if (obj.name != '' && names[obj.name]) {
obj.hidden = false;
obj.selected = true;
}
}
From: pressure (PEER)
Hi Nos,
What should happen if there are objects named "x" in group "a" and also objects named "x" in group "b"?
- Peer
From: Michael Gibson
Hi Nos,
re:
> Has anyone an idea how to modify the code below to select all objects with the same
> name but restrict it to the same group?
Maybe an easy way for this case could be to mark a combination of the object name and the parent group's id instead of just object name. That way only objects with both that name and in the same group would match.
So like this (warning untested code):
code:
/* Extend selection to same names */
var names = new Array();
var objs = moi.geometryDatabase.getSelectedObjects();
for (var i = 0; i < objs.length; ++i) {
var obj = objs.item(i);
if (obj.name != '' && obj.ownerGroup) {
names[obj.name + obj.ownerGroup.id] = true;
}
}
objs = moi.geometryDatabase.getObjects();
for (var i = 0; i < objs.length; ++i) {
var obj = objs.item(i);
if (obj.name != '' && obj.ownerGroup && names[obj.name + ownerGroup.id]) {
obj.selected = true;
}
}
- Michael
From: noskule
If you apply the script to an object in group "a" only objects with the same name in group "a" would be selected.
From: noskule
Thanks, here the modfied code selecting only objects in the same group.
/* Extend selection to same names, check ownerGroup */
var names = new Array();
var objs = moi.geometryDatabase.getSelectedObjects();
for (var i = 0; i < objs.length; ++i) {
var obj = objs.item(i);
if (obj.name != '' && obj.ownerGroup) {
names[obj.name + obj.ownerGroup.id] = true;
}
}
objs = moi.geometryDatabase.getObjects();
for (var i = 0; i < objs.length; ++i) {
var obj = objs.item(i);
if (obj.name != '' && obj.ownerGroup && names[obj.name + obj.ownerGroup.id]) {
obj.selected = true;
}
}
/* Extend selection to same names, show hidden objects, check ownerGroup */
var names = new Array();
var objs = moi.geometryDatabase.getSelectedObjects();
for (var i = 0; i < objs.length; ++i) {
var obj = objs.item(i);
if (obj.name != '' && obj.ownerGroup) {
names[obj.name + obj.ownerGroup.id] = true;
}
}
objs = moi.geometryDatabase.getObjects();
for (var i = 0; i < objs.length; ++i) {
var obj = objs.item(i);
if (obj.name != '' && obj.ownerGroup && names[obj.name + obj.ownerGroup.id]) {
obj.hidden = false;
obj.selected = true;
}
}