Find Coinstances

26 votes
Date Updated: 
Author Name: 
Colin Senner

Find CoInstances works in two ways:

1. With Multiple Objects selected it will find objects that are cloned on top of each other resulting in animation flickering

2. With a Single object selected it will find and select faces that are coinstanced

To select all faces which are coplanar use the list-box to "Select All", or
To select only those faces which are copies of the original, use "Select Only Duplicates"

Additional Info: 

1. Run script

2. In Max goto "Customize->Customize User Interface...->Toolbars tab->Category: ColinScripts" and drag "Find Coinstances" to a toolbar, click to run.

Version Requirement: 
3dsmax 7+
Video URL: 
Find Coinstances v1.01.ms5.82 KB


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
pixeld's picture


What an awesome script. I was pulling out my hair fighting with a very nasty model that had dozens and dozens of overlapping faces but this little beauty found them all in minutes!

zwrtron's picture


Thank you very much, such an amazing tool!

designer3d's picture

great tool, thank you very

great tool, thank you very much

harumscarum's picture

thank you!

works great! but in single mode not always. i guess it need very accurate position co-planar polygons. is it possible to add threshold for shared verticles?

titane357's picture

life and time saver !

just save hours of hard and stupid work !!!!

colinsenner's picture

Thanks Crystal as

Thanks Crystal as always!


crystal3d's picture

another great script

for reducing the everydays hassles and possible harsh times with co-workers

colinsenner's picture

Used and commented your code

Used and commented your code till I think of a more graceful way, thank you, great suggestion. 1.01 is up.

colinsenner's picture

Ah, figured out what you're

Ah, figured out what you're saying, the functionality was built in, that's why there is a list in there allowing the user to select "only duplicates" or "all objects" but for whatever reason it got broken, I'll update and upload the fix today. Thanks for the good eye.


defex's picture

after the script is run on

after the script is run on multiple objects both coincident objects are selected. so say you wanted to find all duplicates and then delete just 1 of them it will still be a chore.

i made a little quick and dirty mod to one of your functions

fn findCoinstancedObjects arr = (
	local dupObjs = #()
	for o in arr do (
		for j in arr where o != j do (
			if ((o.transform as string) == (j.transform as string)) and (o.min == j.min) and (o.max == j.max) and (o.wirecolor ==j.wirecolor)then
				append dupObjs j
				j.wirecolor = red
	trim_dupsArray dupObjs

this way the first duplicate gets selected and the wireframe color is changed, it no longer gets counted as a duplicate because the wireframe color is compared as well as position etc.

of course it wont work if your wireframes are already red! :) could be fixed by using a color nobody would likely use because its not in the color picker.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.