Ungroup All / Ungroup Selection

Problem I’m solving

I want to ungroup all or ungroup all in selection via scripting

Solution

I know all these can be done without scripting. This is actually part of a model conversion script, so, if you’re interested to do this via scripting, this is the snippet!

Installation

  1. Simply just drag the script to the viewport to install.
  2. Right-click on the toolbar > Customize…
  3. Choose the tab ‘Toolbars’
  4. In the Category: dropdown, select ‘ManniiCode’
  5. Drag the script to the toolbar where ever you want!

Code

Maxscript

  • Macroscript – Ungroup All (For drag and drop installation)
macroscript UngroupAllObjects
	Category:"ManniiCode"
	toolTip:"Ungroup All Objects"
(

	fn UngroupAll objs toggle= (
		group_arr = for o in objs where isValidNode o AND isGroupHead o collect o
	 
		with redraw off (
			for o in group_arr do (
				try (explodeGroup o) catch()
				-- ungroup o
			) -- end for
		)-- end redraw
	) -- end fn

	UngroupAll objects true
	
)
  • Macroscript – Ungroup Selection (For drag and drop installation)
macroscript UngroupAllObjects
	Category:"ManniiCode"
	toolTip:"Ungroup All Objects"
(

	fn UngroupAll objs toggle= (
		group_arr = for o in objs where isValidNode o AND isGroupHead o collect o
	 
		with redraw off (
			for o in group_arr do (
				try (explodeGroup o) catch()
				-- ungroup o
			) -- end for
		)-- end redraw
	) -- end fn

	UngroupAll (getCurrentSelection()) true
	
)

  • Snippet – Ungroup All (for using as code)
fn UngroupAll objs toggle= (
	group_arr = for o in objs where isValidNode o AND isGroupHead o collect o
 
	with redraw off (
		for o in group_arr do (
			try (explodeGroup o) catch()
			-- ungroup o
		) -- end for
	)-- end redraw
) -- end fn

UngroupAll objects true
  • Snippet – Ungroup Selection (for using as code)
fn UngroupAll objs toggle= (
	group_arr = for o in objs where isValidNode o AND isGroupHead o collect o
 
	with redraw off (
		for o in group_arr do (
			try (explodeGroup o) catch()
			-- ungroup o
		) -- end for
	)-- end redraw
) -- end fn

UngroupAll objects true

Images