selectlayer3dsmax3ds

Create an Array from list of objects in MaxScript and add them to a new layer


I'm super new to Maxscript and want to automate a process, I've been looking at some tutorials, but I'm running into a issue with selection. What I'm trying to do, is I have a list of strings (that I might have to add to) that represent objects in the max file that I want to select (if they exist in that file) and then add to a new layer.

for instance:

/* I have a big long list of objects I want to mass select, this has to be hardcoded because its a similar list that exists in a ton of max files */
rObj1 = "testObj1"
rObj2 = "sampleObj2"
""
rObj99 = "newObj90"

/*I want to then add it to an array
removeList = #(rObj***)

/* Then run through each entry in the array to make sure it exists and then add it to my selection
for i in removeList do
    (
    if i != undefined then select (i)   
    )

/*Then Add what I have selected to a new layer

newLayer = LayerManager.newLayerFromName "removed_list"
for obj in selection do newLayer.addNode obj

I keep getting an error when it comes to selection, being new to Max I'm not sure what to do.


Solution

  • You are trying to select string where you should be selecting (or adding to the layer) an object:

    newLayer = LayerManager.newLayerFromName "removed_list"
    for objName in removeList where isValidNode (getNodeByName objName) do
        newLayer.addNode (getNodeByName objName)