Real Global Material Replacement, Please, Please Fix : (


I have materials in a Rhino project that I still haven’t been able to locate and change from V4 Flamingo Materials; they are probably in a block somewhere. I can’t seem to get them all. There is no other way to track them down other than trial and error, and I am sorry, but this behavior is broken by design. Users need to be able to swap out materials on a true global basis.

[I’ve resorted to drastically changing each material to a noticeable color, and then visually looking for those blocks that are affected, but I still might have a few unused blocks that have that material.]

Rhino Ecosystem-wise. I am terrified of even experimenting with 3rd party raytracers.

Please fix this.

I think you might be looking to use a model set up with Flamingo materials in a new renderer but I’d like to know for sure. Can you explain more about what you’re doing?

If I’m right, and you’re ultimately looking for a universal material definition that works with all render plugins and programs, it doesn’t exist unfortunately. This is as I understand it due to the way material definitions are constructed and labeled in each render engine out there. There simply isn’t enough consistency to make a universal material. In most cases, the material color, sometimes called Diffuse, will translate but reflectivity and transparency or bump map textures are examples of material qualities that may get missed on translation to another renderers basic material.

What I personally do to deal with this is to save the textures I use in materials and construct new material libraries for any new renderer I choose to use on a project. When it comes to blocks, you have an added layer of complication in that a blocks material needs to be defined when it is created or edited. In Rhino 5, you can double click a block to edit it and at that time assign a new material.

We need global material replacement. Without it, if you even bump a slider on an object’s material, it can create an inconsistency in the drawing that is nearly impossible to locate. Further, the UI element does not do what it says it does; it does not delete materials if they are still being used, which could help in locating dupes, instead of changing them like I have with the delme materals.

I love Rhino, but making people hunt down old materials by trial and error is a user interface atrocity in an otherwise excellent program that I speak well of to several different people a week, in the heart of Silicon Valley.

The “Stainless Steel Delme” and “Bolt Delme” Material, I still haven’t located what they are on.

I have at least 1969 objects in this file : P

Have you tried right clicking the material and choosing “Select Objects”?


Thanks for all the additional information. Can you provide a sample file that shows the problem? Please also provide exact steps to reproduce it and I’ll make sure it’s filed. I’m assuming that the ‘select objects’ option when right clicking a material swatch wasn’t working? Is that correct? If yes, would that have solved the issue for you?

Hi BrianJ,

The big problem is: The semi-global texture replacement does not work within blocks. Respectfully, block editing hundreds of blocks in even a single file is a poor solution.

For now, that’s all I want to do is unify my materials under the stock Rhino V5 renderer. I have dozens of other files to covert, all with old Flamingo materials, which wouldn’t be bad with global material replacement, but we don’t have that.

Fixing the “select objects” by texture, which apparently also doesn’t work inside blocks, would not fix the UI issue.

As far as the sample file, I might decimate my friends non-disclosure file, but I would have to delete hundreds of blocks, and the result would be that would not understand why I need real texture replacement that works within blocks, in the first place.

[The few changes I asked for in Rhino: this issue, an accounting of blocks and non-block objects, a leader callout, as well as this graphic performance thread, all have in common that they are issues related to working on larger projects.]

Can you describe your exact steps in this workflow? I’m not sure what you’re doing and where it fails to work for you.

Can you explain what it means to ‘unify’ exactly? What do you do now, what happens and finally what do you wish happened are the things I’d like to know to try and help.

There isn’t a select object by texture option when right clicking a material swatch but selecting objects which have a certain material applied is working here in the nXt control panel even if the material is assigned to a block. Are you doing a different workflow? Also, what is the UI issue you mention?

I browsed the other posts you referenced and they go pretty deep. I don’t see this material issue as something that is related to the amount of information in the file but I’m still kind of in the dark. So as soon as I can reproduce the exact issue, I’ll get a bug or feature request filed to try and make this easier for you.

I made this simple file to try and reproduce what I thought you might be running into but I’m not having much luck. Here are my steps…

  • Make four different blocks with nXt as the active renderer
  • Edit each block and assign one of the four materials to each
  • Render in nXt
  • Switch the active renderer to Rhino Render
  • Render in Rhino Render

The textures in the nXt materials are translating to Rhino Render here although they are not editable.

nXt_blocks.3dm (421.1 KB)

My workflow is: I have try to delete or replace extra/redundant/old materials. Rhino won’t let me.

Did you try replacing a texture with another that happens to be on a block?

What I mean by unify is: get rid of similar, redundant, and old materials. If you can’t find which block your material is on, you cannot get rid of it–ever.

BTW, my Flamingo was older than NXT.

1.) I want to be able to replace all of one material with another regardless if it is applied to an object that is blocked.
2.) I want to be able to click on any material and select delete, and I want everything that used it returned to a default material. An “Are you sure” box might be good for this, if there is no undo.

Global replacement becomes an issue on a large project because as a project becomes larger block-editing to swap materials becomes impractical.

[As far as my other posts: In larger projects, I need to count objects for purchase and fabrication. In the other thread, someone wanted needed better video performance. I wanted the call out, so I would not have to type redundant information that already exists for blocks and other objects, which becomes an issue with larger projects, where I have to make dozens of drawings to hand to Solid Works snobs, who could have never made what I made in so few hours, while they are constraining and fiddling with parametric things while I am replacing things by generations.]

Hi Brian,
Why are the texture mapping different between the two renderers?


What version of Flamingo was used in the files you’re working with and converting? Any chance you can give me even a file of yours with a few blocks and textures?


Flamingo wasn’t designed for Rhino 5’s texture mapping tools but it can use them if you set the mapping to surface in the nXt mapping properties. In the future, hopefully Flamingo will use all of the Rhino 5 rendering UI. In this particular thread, I think the main issue is editing materials and especially those with textures assigned to blocks.

Well, the mapping of a material is an integrated part of the material assignment imo.

(And you know how I feel about Flamingo NXT not supporting the RDK after years of “development” when you bundle it with Rhino 5.)

Yes, nXt full RDK support is being worked on and we hope to make this better.

If you’d like to know more and ask developer questions, let’s start a new topic so Brenda’s issue doesn’t get overshadowed. I’m not sure yet if this is related to her headaches.


This is a few percent of my project.
I’ve removed dozens of blocks and layers so I could share it. It’s mostly fasteners, but as you may see, even block-editing even this much of the fasteners would be hours in itself, with high probability of introducing even more materials.

Materials cannot be changed.
Objects with materials cannot be selected.
Materials cannot be deleted.

[BrianJ, Thank you for keeping on-topic.]

I took a look at your file. See if this helps:

Use the “-” version of SaveSmall to ditch the plugin data.
You can do it manually or just copy past this string.
It sets all the settings right and goes to file save destination:
(No need to actually SaveSmall as that ditches the rendermesh)

-SaveSmall Version=5 SaveSmall=No GeometryOnly=No SaveTextures=No SavePlugInData=No Browse

And by the way, I recommend giving Neon a try. It supports the RDK…
So here I just turned on “the ground”, “the sun” and “the sky”.
This is 30 passes on an old i5 dual core laptop, so doing that in 1:50 isn’t bad.

BrianJ: I removed the awesome Neon render as Brenda requested

Halo / Ops,

OMG! Please Delete That Pic. I thought I stripped it out enough.
I deleted the uploaded file. Fortunately, there’s not much there, but that’s a big screw up on my part.

Neon cannot handle what I am doing, and will lock my machines. Like I stated, this is a fraction of the files.

Your suggestion helped for some things, but there are still materials I cannot delete.

Also, I am starting to feel a “notabug” victim.

Thank you Halo! : )