ScriptSpot

Forum topic · Scripts Wanted

select all by selected object(s) layer

By 1rv · 2024-04-10

Description

Surprisingly I couldn't find this very basic subject.
Yes, I can open layer manager and double click the highlighted layer name, but I need it via shortcut. Also, if there are objects in *nested* layers they should also be selected.
Thank you

Comments (2)

miauu · 2024-04-10


(	
	function GetRootLayer layer = 
	(
		while layer.getParent() != undefined do ( layer = layer.getParent() )
		layer
	)	
	
	function CollectLayerNodes layer _recurse:true _objsArr:#() = 
	(
		layer.nodes &nn
		join _objsArr nn
		if _recurse do ( for k=1 to layer.getNumChildren() do CollectLayerNodes (layer.getChild k) _recurse:_recurse _objsArr:_objsArr )
		_objsArr
	)
	
	max create mode
	layersArr = #()
	for obj in selection do ( appendIfUnique layersArr ( GetRootLayer (obj.layer )) )
	objsToSelectArr = #()
	for layer in layersArr do (join objsToSelectArr (CollectLayerNodes layer _recurse:true _objsArr:#()))
	select objsToSelectArr
)