Color by Layer, but only *certain* layers?



Use Case:
We have about 15 scenes we need to export in a model of a city. We have to export each scene twice:

  1. One jpg where the buildings are white, and grass/pavement and trees (complex components) have textures
  2. One jpg where everything’s the same except the floors in each building are colored according to their land use (red, blue, green, orange, etc.)

Basically I’d need an alternate color scheme but only for some objects where everything else stays one color/texture.

We can easily set the color for all land use layers, but things like tree components would need 5 layers of their own to render properly, and even still we’d need to save an image file of the texture since Sketchup won’t allow users to set a layer’s “color” to a texture from the Materials library.

Proposed Solution
Allow users to set a layer’s color to “none” so that when Color By Layer is enabled, layers without a color render using their in-model textures/colors.

Attempted Workarounds
I tried workarounds with dynamic components and it was way too time consuming.

I also tried creating all 15 scenes I need and then a 16th scene that only saves the style (color by layer is on) and layer visibility (stuff with textures is hidden). This way I can pretty easily toggle between my buildings white view and buildings color view at the same camera angles for exporting but then I’d need to combine the exported images on top of each other in Photoshop or something for the colored-view to have the trees show up.

If anyone could help/give me some other ideas that’d be great


If the buildings are the only elements in your model that need color change.
You could have 2 “sets” of them on two layers, and color one building “set” as you would like. If the buildings are components you may have to make them unique depending on how you color them.
Then control the visibility of each set by scene, by layer visibility.

Building “set” number one, without color/white on one layer.
Building “set” number two, with colors as you desire on a seperate layer.



That would bloat the model by doubling hundreds of complex geometries, would take away the utility of bulk changing color by common value (land use=layer), and make editing well over a hundred buildings a nightmare.

I appreciate the thought but this option is no less of a headache


Perhaps you could post an image or two of what you describe, sometimes a picture helps clarify some assumptions. (Mine in this case)

Maybe this could work:
With style set to “color by layer”, Edit each layers color…by using a texture image (solid color/your own library)…tick the box for colorize.

For no color (white buildings) edit the 3 colorized RGB sliders to 255 (white)

When you need to have the buildings colored, click on the colored box to “reset color” on each layers material.

Pretty quick if only a half dozen colors or so.



You might get away with watermarks.
If you just use coloured panels and set them as overlay rather than background.
This is the same scene twice one with a blue overlay watermark.


One last go at this:

Without coloring by layer, but rather color buildings by texture, and “colorize” the texture, then edit the RGB values to 255 (white).

1.) Export the images that require the buildings to be white, and your entourage to maintain their textures.

2.) “Reset” all the colorized textures by either using the eyedropper to select & “reset”, or select the colors via in model window and do the same.
Texture_Color_Reset_07_12_2018.pdf (532.4 KB)

please see .pdf example



Thanks for all the suggestions. For clarification on my specific problem, I uploaded an example image of what the colorized buildings look like. The ground floor might have a different use than the top floors (i.e. apartments on top of a store), and thus one building could have multiple colors.Each building is a group of floors, each floor is a group. Color is applied on the floor group, not inside it directly on the faces. Now imagine that same exact image except all floors in each building are white.

The watermark idea would not work for this purpose. Any suggestion that uses Coloring By Layer as it currently exists in the latest Sketchup removes the aerial photography from the geolocation feature; one would need to get a “textured image” for the aerial photography which defeats half the purpose of using geolocation in the first place). My feature request for selective layer coloring would fix that.

The last suggestion (color buildings by texture + rest colorize) can work for now in the interim. Thanks for your help.


This seems like a good feature request to me. Unless you plan to wait until it is implemented, if ever, to do your projects, you clearly need a work around. How are you presenting the model to clients or whomever it is that needs to see it?

FR: Color By Assigned Layer

This is for a Downtown Vision Plan. Essentially, clients will get an overall broad view of our proposal in the illustrative view (buildings are white) so they can clearly see massing, new streets or open space, etc. It gives us a clear image to do callouts on.

The land use images are for supplimental breakdown pages. I could see others using this feature to show existing/proposed diagrams.

Hopefully some kind of update will make it a little easier for us in the future.


Are you just creating images from the model? Are you using LayOut?

Or maybe you aren’t interested in any other work around ideas which is fine.


All suggestions are welcome, but I think Charlie’s last comment is likely the best possible solution

We’re just exporting images and not using Layout because we create our documents in InDesign. There might be a fairly simple intermediary step using Layout if we layer two viewpoints on top of each other but thats pretty similar to the Photoshop workaround discussed earlier. What were your thoughts?


What you suggest for the layer color options is a very good one, hopefully that will be implemented.

You may try enlisting one of the talented extension writers here for a custom extension that would suit.
I know there was a “grayscale” plug-in some years ago, did as it suggests and converted all colors to grayscale.

Also, I can suggest rather than manually setting all RGB slider values to 255, you could use the “match color on screen” eyedropper and click on open space to accomplish the same.(save at least a few mouse clicks)



It’s usually best to use drawing techniques that are available through the normal Sketchup Interface but on the rare occasion a Ruby Extension will accomplish what is needed with only a few lines of code.

This minimal extension will toggle the color of any material with (flipper) in its name back and forth between White and the Original color. There are two menu options: Flip to white and Unflip back to the original colors. The Undo and Redo commands are also fully functional.

sw_material_flipper.rbz (1.1 KB)

I hope the animated GIF provides enough informaion on how to use the extension.


That looks like exactly what we’d need, thank you!


I’ve started a list of reasons that a custom extension such as this could become unmanageable in the long run.

  1. There is virtually no documentation/instructions.
  2. There’s no one to maintain or modify the code if this becomes part of your work flow.
  3. A year from now no one will remember how to use the extension when they pop open an archived file.
  4. The code depends upon using a specific name for the ‘flipped’ materials. In pure Sketchup material names have no algorithmic side effects. My implementation is a definite no-no because it changes the expected behavior.

But if it works for you, Enjoy!


You’re not in sales are you? :smiley:

You have made an interesting extension. Good work.


Nicely Done!



Setting styles on a per layer basis would allow for this. You could have a Color By Layer style and apply to a bunch of layers, and a Shaded with Textured style applied to the rest. You could even use a monochrome style with a defined default color to override the color of specific layers, e.g. if you want all less relevant layers to just be gray.


Please see the other comments noting why that wony work


There’s nothing in the thread saying different styles for different layers wouldn’t work.