open/close all/selected groups

1 vote
Version: 
v 0.2
Date Updated: 
04/04/2013

open-close-group

This macro-script is meant to use as a shortcut. It can open or close all or all selected groups in the scene.
I use "STRG + SHIFT + G" to open all groups and "STRG + G" to close all groups but you can change it to whatever you prefer.

 

Additional Info: 

Usage:
1) Run the .mcr file
2) Go to "Customize" -> "Customize User Interface" -> "Keyboard" -> "Category" -> "Custom"
3) define your desired shortcuts

You can also make some button if you like.

The credits belong to "Swordslayer" as i used his code for this macro: http://www.scriptspot.com/forums/3ds-max/general-scripting/open-all-groups-and-sub-groups

When i saw the thread i realised  that this macro could be very helpful. At least for my daily work. So i always have all groups closed and just open all groups for editing an object. As soon i am done i close all groups again. A good timesaver.

 

Update version 0.2:

- added two actions "open visible groups" + "close visible groups"
- added messagebox with info with category name of actions

 

Version Requirement: 
works in max design 2011 + 2013 64 bit.
AttachmentSize
openclose-groups_v02.zip675 bytes

Comments

Comment viewing options

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

thx

Hi le1setreter,

thx for having considered the comments and do the update so fast!

Good work!

le1setreter's picture

nicely done :)

nicely done :)

barigazy's picture

My pleasure :)

My pleasure :)

barigazy

tassel's picture

Hehe :) Thank you barigazy :)

Hehe :)

Thank you barigazy :)

Raymond H.Ingebretsen - http://www.homme3d.com

barigazy's picture

;) or even shorter tassel

try (destroyDialog ::rol_OpenCloseGroups) catch()
rollout rol_OpenCloseGroups "Open/Close Groups"
(
	fn groupFIlter grp = isGroupHead grp and not grp.isHidden
	mapped fn openGroups arr toggle: = if groupFIlter arr do setGroupOpen arr toggle
	checkbutton ckb_OpenClose "OPEN GROUP" height:35 width:140 highlightColor:[0,80,255] tooltip:"OPEN / CLOSE GROUPS"	
	on ckb_OpenClose changed state do
	(
		openGroups (helpers as array) toggle:state
		ckb_OpenClose.text = (if state then "CLOSE" else "OPEN") + " GROUP"
	)
)	
createdialog rol_OpenCloseGroups

barigazy

tassel's picture

Hi le1setreter, You snippets

Hi le1setreter,

You snippets are great :)

Here is my approach to do Open and close groups (based on your first code):

-----------------------------------------------------------------
-- Open/Close All Groups (Not hidden Groups)
-----------------------------------------------------------------
try (destroyDialog ::rol_OpenCloseGroups) catch()
 
rollout rol_OpenCloseGroups "Open/Close Groups"
(
    checkbutton ckb_OpenClose "OPEN GROUP" height:35 width:140 highlightColor:[0,80,255] tooltip:"OPEN / CLOSE GROUPS"
 
 
    fn openGroupsAll objs toggle=
    (
        group_arr = for o in objs where isValidNode o AND isGroupHead o collect o
 
        with redraw off
        (
            for o in group_arr where not o.isHidden do
            (
                setGroupOpen o toggle
            ) 
        )
    )
 
    on ckb_OpenClose changed state do
    (
        if not state then 
        (
            openGroupsAll objects false
            ckb_OpenClose.text = "OPEN GROUP"
        )
        else
        (
            openGroupsAll objects true
            ckb_OpenClose.text = "CLOSE GROUP"
        )
    )
)
 
createDialog rol_OpenCloseGroups width:150 height:45

Raymond H.Ingebretsen - http://www.homme3d.com

le1setreter's picture

many thanks for your feedback

many thanks for your feedback :)
i just uploaded the new version (v 0.2)

ninjutsu3D's picture

Thx sir! It's definitely a

Thx sir!

It's definitely a question of workflow, but I think that if it's made so that whats hidden isn't affected is just more clean and powerful and thus can adapt to any workflow.

More logical also no? But yeah why code something you don't use, I understand. :)

But it's just that small little detail thats missing making this script complete I think. :)

Anyway! Thx for considering updating it man, appreciate and thx for your work!

le1setreter's picture

hi fajar, thank you for your

hi fajar,

thank you for your feedback but honestly i do not really understand your question. do you mind try to explain it again?

TIA

le1setreter's picture

"Right now, it opens the

"Right now, it opens the groups of objects that are on hidden layer."

i think it is a question of personal workflow if
a) all groups
b) selected groups
c) all but not hidden groups
should be implemented.

For me i only use open and close ALL groups. As soon i am done editing my desired object i just close all groups.

But i will extend the version with the requested feature open/close all and selected but not hidden groups.

Will post updated version as soon as possible.

Comment viewing options

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