Notifications
Clear all
[Closed] how to update scene obj material from .mat lib using script
Mar 01, 2012 5:45 pm
If you want to update the material on an object or collection of objects then this should work:
(
loadMaterialLibrary ((getDir #matlib)+"\\YourMaterialLibrary.mat")
for obj in $ do
(
if isProperty obj #material and obj.material != undefined then
(
for mat in currentMaterialLibrary do
(
if obj.material.name == mat.name then obj.material = mat
)
)
)
)
Or if you want to update all scene materials with the same name as one in the library then:
(
loadMaterialLibrary ((getDir #matlib)+"\\YourMaterialLibrary.mat")
sMatN = for sMat in sceneMaterials collect sMat.name
for lMat in currentMaterialLibrary do
(
if findItem sMatN lMat.name != 0 then
(
objs = for obj in geometry where obj.material != undefined and obj.material.name == lMat.name collect obj
objs.material = lMat
)
)
)
Hope this helps…
Mar 01, 2012 5:45 pm
i tried running the script but i get – no “map” function for undefined – error msg
or am i running it wrongly?
Mar 01, 2012 5:45 pm
You must have at least one object selected or supply your own collection of objects instead of the “$”.