Outliner

Revision 07-08-2008: Version 1.5
Revision 09-03-2008: Version 1.4
Revision 31-01-2008: Version 1.3.6
Revision 30-01-2008: Version 1.3.5
Revision 28-01-2008: Version 1.3
Revision 14-01-2008: Again, preference default setting fix. (For problems with the outliner not showing up)
Revision 10-12-2007: Preference default setting fix.
Revision 06-12-2007: Speed improvements, restructured UI and minor changes.
Revision 03-12-2007: New Features, bug fixes and minor changes.
Revision 01-12-2007: Major bug fix. Script should work now...
Description & Features:
I've written this tool mainly because I find the existing selection tools in 3dsmax very poor and rather unpractical. The main goal was to create a tool which gives you a good hierarchic overview of the objects in your scene, and enables you to quickly select objects (with a single click!). Next to that, I wanted to make object parenting/linking more intuitive and easy.
- Tree view display of scene and hierarchy.
- Single click object selection.
- Drag & Drop object linking and grouping.
- Simple object selection within groups.
- Object renaming.
- Filter by object type.
- Select objects by name.
- Visual representation of object type (icons).
- Parent highlighting (green).
- Hidden objects are still shown, in grey text.
- Window can be kept open all the time.
Installation:
- Close 3dsmax.
- (Remove any old version)
- Unzip the contents of the package into the folder [your3dsmaxdirectory]/Scripts/startup/
- Start 3dsmax.
- In the customize user interface dialog, you'll find a Outliner window toggle' command, under the catagory 'Outliner'.
- Assign
it to a hotkey, quad menu, toolbar or whatever you prefer. I personally
have it set under the h key, to replace the standard selection dialog. - Optionally assign the additional macroscripts to keys, for example the hide or freeze toggles.
Known issues:
- The script can not be used in 3dsmax versions lower than 9, because it uses a dotNet treeview object.
- Merging objects that replace existing objects can cause problems.
- Undo-ing a group action leaves the (deleted) group node in the treeview.
- The scrollwheel doesn't work anymore due to the hotkey focus change.
- There
are no callbacks for object colour changes, layer name changes and type
changes. Changing these will have no effect on the outliner sorting
until it is refreshed completely.
If you happen to run into any bugs, be sure to let me know and I'll do my best to fix it.


Wow, this looks extremely
Wow, this looks extremely handy. Thanks!
great tools~! thx for share!
great tools~! thx for share!
ooh wow this is great!! its
ooh wow this is great!! its like maya's outliner :D looks like it :D ill check this one out but i merge a lot of stuff. thanks!!
I don't know why, but I
I don't know why, but I tried the script with Max 9 and didn't worked on 2 different computers. So, is there a known issue?
Could you be a bit more
Could you be a bit more specific?
-How did you install it? (did you follow the instructions?)
-How do you start it? (toolbar, hotkey, menu)
-What is the exact problem you're experiencing? (error, not showing up, etc)
-Which max version, including service packs are you using?
-Which script version are you using?
At one pc I've seen the script starting fine, but not showing anything because of some odd problem with the default size and position settings. What you could try, if the window isn't showing, is locating the file outliner.ini on your harddrive, opening it and setting some values to posx, posy, width and height.
Ok, no problem. 1.) I
Ok, no problem.
1.) I unzipped the files in the /Scripts/startup folder. So I get an extra 'outliner' folder there.
2.) I started max and added the outline script to my menu. It's now under edit.
3.) I selected the menu entry and nothing happend!
I tried it under Max9 SP2 and Max 2008. Running WinXP Sp2 and Vista 64bit.
Ok and started again testing... this time I used a keyboard shortcut.
I had a few objects in the scene and pressed the key 3-4 times not in row, but again.. then I got a very tiny little window in the upper left corner, I rescaled it and now I have it working...
And I really love your
And I really love your script!!!!!!!!!!
Fantastic... and better then Scene Explorer ;)
Ah ok, glad you got it
Ah ok, glad you got it working. So it was actually the default values issue.
I'll see if I can find a solution for it.
Hm, I find your script quite
Hm, I find your script quite fast, indeed it seems faster then Scene Explorer and the very best thing: The herarchy is collapsed on opening it.
Oh and you are hitting the same problem everybody hits in 3dsmax: You can't see if an object is linked to a group or inside a group. This is a 3dsmax limitation I guess.
Hm that's an interesting
Hm that's an interesting point. It can actually be determined with maxscript. The way a group works -from what I've found out so far- is that it's basically a dummy (without a graphic node) which has it's members parented to it.
You can see if an object is a groupmember by executing a simple function.
I guess I could make some kind of change to the way a group member is displayed in the outliner, so that you can distinguish it from a node linked to the group.
very cool script, thank you.
very cool script, thank you. i'm using it on daily basis now. there are a few things that would be nice to have, though:
- list filter type for particle stuff (in a scene with pflow, the outliner gets very crowded)
- special icons for particle stuff
- window even more resizeable (the minimal size is still very broad, i think)
- a "split list function" (as in maya) to make parenting/linking easier in scenes with lots of stuff in it an therefore having a very long outliner-list
- an update button, cause sometimes the outliner doesn't update correctly (not that important, but would be nice)
regards
Hi, got a small problem,
Hi,
got a small problem, where does outliner save it's last position? I have a smaller monitor now :(
Also, I have 2 wishes:
1.) smaller font? As opion maybe... can I do that myself?
2.) refresh button, as sometimes outliner is not up to date with the scene.
3.) order by type (at the moment its only by name)
4.) show all types (at the moment you have to select individual)
Please fix: linking in groups, Characterstudio linking, Updating etc.
Robert, I would like to send
Robert, I would like to send a new version to you, which has a macroscript included to clear the outliner preferences (including window position).
However, your profile says you're not accepting emails through scriptspot. Contact me if you're interested in the new version.
As for your requests:
1) Might be a bit difficult, but you can at least easily change the icon (and thus rowheight) and indent size in the oncoming version.
2) Good idea, might put that in somewhere. Closing and opening the outliner will do the same.
3) That's going to be a drastic thing to change, might implement that somewhere in the future.
4) OK.
As for fixes, linking in groups is fixed for the oncoming 1.3, I'm aware of a CharacterStudio linking problem, so perhaps you could tell me some more about that one.
I changed my profil. Would
I changed my profil.
Would be nice to receive your email..
Updated to version 1.3 New
Updated to version 1.3
New features:
* Dockable window.
* Icon set support. Added two standard sets (maya/max), can be expanded by user.
* Freeze/Unfreeze node.
* Added more shortcuts, hide/unhide, freeze/unfreeze, expand/collapse.
* Group member node style.
* Clear preferences macroscript.
* Particle object icon.
* Made the UI a bit slimmer.
Bug fixes:
* Duplicate object bug fixed.
* Duplicate names bug fixed.
* Renaming bug fixed.
* Group (after 'failed' drag) bug fixed.
* Startup crash fixed.
* Lots of particle flow objects in outliner bug fixed.
Trying to use your script
Trying to use your script with Max 2008 32 bit but on startup it gives me the error:
-- Runtime error: doNet runtime exception: Invalid directory on URL.
What am I doing wrong, I put the outliner directory in scripts/startup as per the install instructions. I have all WinXp updates installed, all the latest windows runtimes etc etc.
My fault, fixed it now.
My fault, fixed it now. Download it again and reinstall.
Love it!!!! Now going to
Love it!!!!
Now going to creat my own icon set :)
All I need to change now are the colors (i can do that directly in the script, but ini file would be cooler) and the font size.
But font size seems not to be changeable, don't know maybe its a limitation in .net.
Question: Can it read png icons too ?
anyhow it's lovely little tool!
You can change the font size
You can change the font size directly in the script as well, lines 644-668 in outliner.ms:
node.NodeFont = (dotNetObject "System.Drawing.Font" nodeFontFamily 8 nodeFontStyle.Regular);
'8' is the font size. Shouldn't be too hard to put that in an ini, but kind of pointless I think.
I'm not sure about png, but you can give it a try, look at lines 49 and 50 in icons.ms.
well, that looks all good
well, that looks all good now!
The only thing I struggle with is the highlight text color. Somehow everywhere in Vista Selected text is white with a blue background color. Do you have an idea how to get rid of it? You haven't wrote any proberty for highlighted text...?
- And it looks like patch geometry isn't taken into account. You have an icon for that...
- convert geometry doesn't upate outliner
Robert, as far as I know,
Robert, as far as I know, there's no simple way to change the selection background and highlight colours. It is possible by rewriting the node draw function of the dotnet control, but that takes more effort than it's worth.
I'll add the two suggestions you made in the next release.
Thanks.
hm, well thats sad, as not
hm, well thats sad, as not only the blue color disturbs me, but the highlight text color is in some grey and I can't really ready the name of a selected object.
So, I have a few more requests:
1. color for froozen and group object text. I changed that here for my own pleasure, but sometimes it doesn't get updated if the child objects are hidden..
2. maybe a secound group of list Type: Visible/Hidden/Froozen. That way you can more easily explore the scene.
oh and thanks for all the other changes, I love the way to distinquish groups and linked objects now. Maybe the best way possible. Your tool becomes more useful then scene explorer or the standard select by name dialog.
1. Yeah the object styles
1. Yeah the object styles could be a bit more elaborate. Right now it's either hidden, frozen, group or normal style, no combinations.
2. Good idea, will add that.
Outliner version 1.35 New
Outliner version 1.35
New features:
* Hidden, Frozen filter.
* Slightly different UI layout: Split 'options' and 'filters'; UI a bit slimmer.
* Reflect filter in viewport. (hideByCategory.)
* All, None, Invert button for filter.
Bug fixes:
* Startup 'windowOpen' bug fixed.
* Clone to object crash fixed.
* Rename bug fixed.
* Unlink bug fixed.
Bugs: * Create Target
Bugs:
* Create Target Camera: The Camera Target appears in the list as 'Target' but not as 'camera.target'
* Hide Object: When hidding an Object the Name stays in the same color. However reopening the dialog, the names of hidden objects get a different color.
* Nurbs Icon apears only after refresh
* Patch Icon not working.
* PowerNurbs show up as geometry not as nurbs.
* PF Source shows up with Particle icon but other Particles with geometry icons
Wishes:
* Still no refresh button (pressing Inverse twice helps a little..)
* Please add: GroupTextColor, FrozenTextColor and FontSize to your script. And if possible add a loader for theses proberties best to the icon.ini, so everyone can change Colors do to the icon set.
* I suggest to take the greyout buttons for froozen objects too.
* The indent of icons is never smaller then the icon size? Is this changeable?
Thanks for your work so far!
regards,
Robert
"* Create Target Camera: The
"* Create Target Camera: The Camera Target appears in the list as 'Target' but not as 'camera.target' "
Fixed in 1.36, was a general renaming problem.
"* Hide Object: When hidding an Object the Name stays in the same color. However reopening the dialog, the names of hidden objects get a different color."
Yeah I noticed this too. Somehow the font colour stuff is very jumpy and strange. Haven't found a reason for this yet.
"* Nurbs Icon apears only after refresh"
If you use 'convert to', yes. This is a maxscript limitation, there is -as far as I know- no callback for object conversion.
"* Patch Icon not working."
Fixed in 1.36.
"* PowerNurbs show up as geometry not as nurbs."
Is this some kind of plugin?
"* PF Source shows up with Particle icon but other Particles with geometry icons"
I have been unable to replicate this, particle icons seem to work fine.
"* Still no refresh button (pressing Inverse twice helps a little..)"
Added in 1.36.
"* Please add: GroupTextColor, FrozenTextColor and FontSize to your script. And if possible add a loader for theses proberties best to the icon.ini, so everyone can change Colors do to the icon set."
I will see what I can do. Probably won't be any time soon though.
"* The indent of icons is never smaller then the icon size? Is this changeable?"
There is a minimum indent value for the dotnet control: http://msdn2.microsoft.com/en-us/library/system.windows.forms.treeview.i...
Setting Indent to a value less than 16 will have no effect on the indentation of the nodes.
>"* PowerNurbs show up as
>"* PowerNurbs show up as geometry not as nurbs."
>Is this some kind of plugin?
Yes it's a plugin... well, you can call it so only way to have cool nurbs in max.. ;-)
>"* Please add: GroupTextColor, FrozenTextColor and FontSize to your
script. And if possible add a loader for theses proberties best to the
icon.ini, so everyone can change Colors do to the icon set."
>I will see what I can do. Probably won't be any time soon though.
I can do that, no problem, its only that I don't want to touch your code everytime you publish it...
* oh and I digged into png file format for the buttons. Well it's supported but not with a 8bit alpha. That's a sad limitation. Strangly MS had different listbox for nearly every application. I remember how often I went into c++ to fix a limitation with a MS Form, but that was 10 years ago. :(
Well, I finish my icon set and send it to you via email, if you like. Anyhow its based on own colours, so I need to add some proberties to the script...
Ah yeah it'd be nice to see
Ah yeah it'd be nice to see the icons. :-)
Many many thanks for this
Many many thanks for this great script. FINALY a good select script. It's great to be able to unhide, unfreeze when viewing all objects in the outliner.
THANK YOU SO MUCH!!!
Greetings from Belgium :-)
I love this script because
I love this script because I'm maya user.
Thank you for your work.
sorry my english. -_-;
There is one anoying bug,
There is one anoying bug, well one which maybe easy to fix:
- If you create an object, it get displayed 2 times in Outliner.
And Wishs:
- Could we get a little macro that refres Ouliner (as long as bugs exist) by pressing a key?
- Could Outliner remember which herachie was opened or closed when doing a refresh? Maybe hard to do, but worth a try.
- For a long term future wish I would like to see some kind of favorits or stick-to-the-top objects (incl. herarchie) to easier control focus on what I work on at the moment.
Else, I have to say after working 2 weeks with Outliner, my way to model i 3dsmax has changed. I work now much more in structures and herarchies. Your tool rooks!
"If you create an object, it
"If you create an object, it get displayed 2 times in Outliner."
That's weird, I can't replicate that bug...
"Could we get a little macro that refres Ouliner (as long as bugs exist) by pressing a key?"
macroScript refreshOutliner category:"Outliner" toolTip:"Outliner Refresh"
(
on execute do (
try (
outliner.fillTree();
) catch ()
)
)
"Could Outliner remember which herachie was opened or closed when doing a refresh? Maybe hard to do, but worth a try."
I'm sure it's possible, and I'd hoped the treeview to do that by itself... unfortunately, it won't be easy.
"For a long term future wish I would like to see some kind of favorits or stick-to-the-top objects (incl. herarchie) to easier control focus on what I work on at the moment."
Nice idea. Might be possible if I ever have the time to put in my of sorting functions.
"Else, I have to say after working 2 weeks with Outliner, my way to model i 3dsmax has changed. I work now much more in structures and herarchies. Your tool rooks!"
Thanks :)
As for powernurbs, you could help me if you did this in the maxscript listener for each type of powernurbs object:
(select the object)
classof $
superclassof $
For Powernurbs: superclass
For Powernurbs:
superclass is always GeometryClass
class is : Pwr_Sketch, Pwr_EditSkt, Pwr_FaceSkt, Pwr_Extrude, Pwr_Surface, Pwr_Revolve, Pwr_Join, Pwr_Boolean, Pwr_EditNRB, Pwr_Fillet, Pwr_Nurbs, Pwr_Planar, Pwr_Shell, Pwr_Skin, Pwr_Pipe, Pwr_Sweep, Pwr_Swung,Pwr_Assembly, Pwr_Cutter, Pwr_2D_Boolean
The duplicate Name Bug: I found out that it happens everytime you reset your scene. So, one reset: 2 Name, two resets: 3 Names and so on...
Thanks, I'll put it the
Thanks, I'll put it the powernurbs classes in the next release.
small bug: If I reset max
small bug:
If I reset max and then open a scene (outliner opens automaticaly), then I get an error message: Unknown property: "nodes" in dotNetControl:tree:(null)
in line 6614
Its where the tree is cleared.
I guess that has to do with the other problems concerning the Max Reset.
Im sorry to say, but this
Im sorry to say, but this script is waaaay to slow to open with just a bit amount of polygons. In my small scene with around 300.000 poly it takes 2-3 seconds to open from hitting the shortcut. If that were the first time only.. fair enough, but its everytime :/
I love it from Maya and it could be awesome in 3dsmax, but it needs more optimization for it to be really useful.
Thanks! keep it up.
@robert: Thanks for letting
@robert: Thanks for letting me know. There seems to be some general problem with callbacks causing problems. I hope I'll be able to look into it somewhere soon.
@thomaskc: Yes, the script can indeed be too slow for moderate to large scenes. This is not due to polycount though, but due to object count.
I am aware of this (and annoyed by it when I use it myself .. :p ). I think the only way to really gain better performance is to transfer the whole thing to the SDK, which is a huge step and takes a lot of time and effort.
Alright, well I hope it gets
Alright, well I hope it gets fixed at some point :) would be a nice addon. However its extremely fast and great when its kept open (just doesnt happend too often due to the space it takes).
It's a wonderful script and
It's a wonderful script and i'm still wondering why autodesk wasn't able to do it as good as you. Especially if you take a look at the new selection manager from autodesk... it is very slow and it doesn't work better than the old one.
Updated the script to
Updated the script to version 1.4
New Features
a selection onto a group will add the selection to the group. Pressing
the Ctrl key while doing this will link them instead of grouping.
Bug Fixes
thanks for the upgrade,
thanks for the upgrade, gonna upgrade right away
Thanks... many issues seem
Thanks... many issues seem to be fixed now!
Love the order by creation time feature!!
Hope next version fix the 'isolate too' issue.
What's the "isolate too"
What's the "isolate too" issue?
Well just create a scene,
Well just create a scene, select an object and open the outliner.
Then use isolate. You will see only the isolated object in the outliner.
Then disable isolate again. You will see that the outliner isn't updated and still you just see the selected object.
ah I see. It only occurs
ah I see. It only occurs with "Show Hidden" off. And it's the same for the "Show Frozen" setting that doesn't update properly.
I'll take a look at it and fix it for the next release.
Thanks for letting me know.
Really love your tool... I
Really love your tool... I have to repeat that!
I have a few new points:
1.) If I hide the toplink with 'show hidden' option off, all child objects vanish. While this is logic, it is also a little disorientating, as the child objects are still invisible. So, I wonder if there is a easy logical work arround, like showing hidden obects, with linked sub objects always, even the obtion is off.
2.) An 'hide object including childs' would be nice in the popup menu.
What impress me most with your tool is that it keeps me from using groups.
Indeed I suggest to autodesk many times to remove groups, but give Objects the feature to lock selection on child objects. So, if you select a child, the toplink including all childs get selected. Indeed thats nothing else then how group works. I wonder if someone could add this feature in general to the max viewport behaivior?
regards, robert
1) The reason for this
1) The reason for this behavior is that it can give problems with the hierarchy. As long as it's the topnode that is hidden, you could still show the childnodes, but just without the topnode. However, let's say you've got this hierarchy:
non-hidden => hidden => non-hidden
If you'd show the third node, which isn't hidden directly under the rootnode, it would not be accurate to the scene. And added to that, drag&drop linking could give some unexpected results.
This too is the reason why I decided not to implement layers in the outliner. Simply because it can break the hierarchy.
2) Good idea!
3) I think it shouldn't be too hard to write a script that can handle this. Although it might become a bit slow when scripted. (that was my experience with doing it in the outliner)
hi there. correct me if i'm
hi there.
correct me if i'm wrong: didn't also "hidden" pflow objects e.g. "birth" showed up in the outliner window in an earlier version? i'm missing this feature, cause this kind of sceneobjects are hard to select/find with standard max tools...
regards
I actually considered it as
I actually considered it as a bug :)
But I can put it back in as an option if you like.
This would be great.
This would be great.