question

Eden Exposito avatar image
Eden Exposito asked ·

Select object by shader and override it with Operator

Hello!

I have 3 Arnold Shaders called : red, green, blue.

I'm testing operators and trying to find any object with "blue" shader applied and replace with a "green" shader. But not seems works, maybe I don't write correctly expression:


*.(shader == "blue")


I attach a screenshot.

What I'm doing wrong here?


Maybe with something like that in selection:


/*.(@node == 'polymesh' and shader == 'blue|standard_surface')


But no luck.


Thanks!

operator
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Peter Horvath avatar image
Peter Horvath answered ·

Exactly what Stephen said. Also note that the name of an Arnold shader exported from C4D has the following format:

/[material_name]|[shader_name]

Spaces and other special characters are replaced with '_'.

So assuming you have an Arnold Material named 'blue' with a standard_surface shader as the root using the default name 'standard_surface' you have to write:

*.(@node == 'polymesh' and shader.name == '/blue|standard_surface')
1 comment Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Works like a charm! thank you again!

0 Likes 0 · ·
Stephen Blair avatar image
Stephen Blair answered ·

You have to test a parameter value.

*.(@node == 'polymesh' and shader.name == 'Red')

polymesh.shader is a link to a shader node

and

a shader node has a name parameter

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Welcome to the Arnold Answers community.

This is the place for Arnold renderer users everywhere to ask and answer rendering questions, and share knowledge about using Arnold, Arnold plugins, workflows and developing tools with Arnold.

If you are a new user to Arnold Answers, please first check out our FAQ and User Guide for more information.

When posting questions, please be sure to select the appropriate Space for your Arnold plugin and include the plugin version you are using.

Please include images, scene and log files whenever possible as this helps the community answer your questions.

Instructions for generating full verbosity log files are available for MtoA, MaxtoA, C4DtoA, HtoA, KtoA, and Kick.

If you are looking for Arnold Documentation and Support please visit the Arnold Support site.

To try Arnold please visit the Arnold Trial page.

Bottom No panel present for this section.