Global Material Replacement

The material editor seems not to allow the user to replace one material with another, nor does it allow me to delete some materials from the tree root. It would be great if I could do those two things.

I still have files from V4, which need new materials. I am assuming that it won’t allow me to globally replace materials used on blocks, but shouldn’t it, because it also won’t select them, so it’s a crapshoot.

Find the material in the material editor list and right click on it, choose “Select Objects”. Once all objects are selected, find another material in the list and right click on it and choose “Assign to selection”.

–Mitch

Yeeeah that works but if you have stuff assigned by layer it means they’re no longer by layer, and anything that’s not visible/unlocked doesn’t get it applied.

You can replace a material with the “change” menu item but that just lets you start from scratch, there is no way to ‘swap out’ a material with an existing one.

The old materials still exists on load-up, but I cannot select the objects that use them, perhaps because they are blocks, but which ones? There is no way of knowing.

We need global material replacement that works, please fix this.

+1 I’m also struggling now to find a way how to replace materials with those saved in another Rhino file. Any possible workaround would be really helpful.

Can you give a blow by blow, for 5 year olds, of what you’d like to do?
-Pascal

Sorry, I’m linking another model as a block, a .3dm file and I’m trying to make changes to its materials, e.g. changing texture mapping, colors, etc. so that they will be reflected in the other file (the one linking that block). However, that doesnt always happen (refreshing the linked block doesnt refkect material changes), not sure what causes the materials not to change, but I was hoping that these changes could be “forced” by manually importing these materials just like you can import named views or named cplanes. I’ve tried saving that material and importing it, but because it already existed the new material didnt override the old settings. That’s why I was hoping that there could be some way to “copy” material settings and “paste” them or “replace” one material for the other. Hope that makes sense…

Hi Daniel - ok, let me reproduce the no-update problem first… maybe a bug in there.

-Pascal

Did you have any luck reproducing this problem by any chance? I’ve noticed that updating blocks (using the sc.doc.InstanceDefinitions.RefreshLinkedBlock method from a Python script) also doesn’t seem to update layer colors. Only purging and reinserting the block works for me now.

I’m not on the latest build though (8.0.22305.12305, 2022-11-01).