Color swatch materials ignoring meta data (name, etc.)

Just noticed this problem in SU 2017. It’s quite simple to replicate.

Create a Color based material (as opposed to a texture based material).
Paint a surface with it.
Duplicate it.
Paint a surface with the duplicate material.

Sketchup uses the first material with the same color and totally ignores the newly created duplicate color with a different name.

This breaks my render engine (Thea Render).

This is also a general organizational nightmare because materials (faces) need to have names (or some kind of meta data) associated with them even if they are the same color to note unique surface properties (like eggshell, gloss, etc.)

Please tell me how this can be fixed!

Doesn’t help on Mac but I tested this on Windows and it works as expected. I’ll try on my Mac when I get home.

I’ve tried following your steps, but I can’t see how you can tell which of the two identical colors is being used. It doesn’t show up in Entity Info.

I tried a variation, where I changed the opacity of the duplicate, and I seem to be able to eye dropper the initial new color, or the changed opacity duplicate color, and the next thing I color in looks correct.

Where is it that you read the name of the material?

I can replicate it on my mac, and I recall it coming up in the past…

I think SU required a color value change before it actually used a duplicate color…

@colin, the name appears when you hover a color in the Color Palette and if you select the renamed duplicate the Highlighting jumps to the original as you apply the duplicate to a new face…

weird things also happen with dup texture, not just colours…

I think something got broke…

john

1 Like

I can tell with a plugin called material replacer, or with Thea render, Thea Tool. But you can see with you go to paint, select the duplicate material and the paint on a surface you see the highlighted material change in the Color dialog.

I see something different. I hover over the duplicate and it has its different name. If I select any color at all in the palette and apply it to a surface, the color I used becomes deselected, and no other color is selected.

I then realized that maybe you meant to create a material that happens to be a flat color, because with materials the swatch does get highlighted. So I selected a flat color surface and made it be a unique texture, and then duplicated that. Now the swatch does highlight as usual with materials. If I select the duplicate and apply it somewhere, the highlight remains on the duplicate, not the original.

But, this only means I haven’t been able to follow your steps. If John managed to get the same results he’s just better at following steps than me!

I just checked the same in v16 and it honours the duplicate material…

I’ll make a gif…
v17…


and v16…

john

1 Like

Colin, you can also see that the duplicate was not used by purging unused

When I do purge unused I have three materials, the default, my material from flat color, and the duplicate of that.

But, if I follow John’s animated gif I get the same results. If I change the duplicate opacity to 99% then the problem doesn’t happen. It’s as it SketchUp is looking through the materials and finding the first one that completely matches, but doesn’t take into account the name.

What is the use case for having an identical material with a different name?

I can even answer that one…

if you add ‘plastic’ or ‘metal’ or ‘wood’, etc… to a colour or textures name, many renderers will apply different settings as presets…

it’s very useful…

but with this it’s also a regression bug, as previous SU versions did honour the change…

john

1 Like

Is there a chance I can get a nightly build where this is fixed?

A “nightly build” of what?

Of SU2017

What makes you think there’s a nightly build?

Did you submit a bug report to SketchUp? It is is a bug and they can fix it, it would show up in a maintenance release. There was a maintenance release late last week so it might be a little while before another comes.

Do you work for Trimble?

No but I’ve been around long enough to know how SketchUp’s bug fixes and maintenance releases work.

I have reported the bug.
You can easily re-create it with a Ruby script:


mats=Sketchup.active_model.materials
mat=mats.add("Test")
mat.alpha=0.5
mats.current=mat
Sketchup.send_action('selectPaintTool:')

The interesting thing is that when alpha not set, everything is fine.
Please note that it is Mac bug only. On Windows the script works as expected.

1 Like