Request: Auto-assign new, different colors to new layers

I’m not sure where to post a request, but I think it would be beneficial to have a new, different color automatically assigned to new layers. After 12 or so new layers are created in a project, I spend too much time trying to find a new color that I haven’t yet used. It doesn’t seem like much, but when it’s multiple projects every day, the time adds up.

This is a function in Cinema4D. The first screenshot is a single layer with a color automatically assigned. The second shows 10 layers with each color automatically assigned. I realize that the colors assigned won’t work with every custom background color, but it’s a good start instead of changing the color from black every time.

I’ve also included a screenshot of what one of my typical files might look like in the layers panel, each color manually assigned. Even if the amount of time isn’t considered because realistically assigning new layer colors in this project may have accumulated to less than 5 minutes, I think this can contribute to design fatigue, which, I’d rather reserve all my decision making to the project itself, not layer colors.

Thanks!



Hi @Marc_Roberts did you try right click when making a new layer? This will assign a random color to the new layer.

1 Like

right clicking on the New Layer icon does nothing… right clicking in the layer window then selecting New Layer created a new layer, but the color is always black.

note: I’m using Rhino 7. is this a new feature in Rhino 8?

You were posting this in Serengeti, so I didn’t think of mentioning that. It’s new in v8

something to look forward to. thanks!

is there a separate suggestions forum? or should it just be posted in the basic Rhino forum?

Regular Rhino is fine, there is no special wish category. I guess posting wishes in Serengeti is also fine, I just forgot to mention it right away that this was a v8 feature.

1 Like

You could randomize your layer colours with a script like this:

import rhinoscriptsyntax as rs
import random
from System.Drawing import Color

def randomizer():
    red = int(255*random.random())
    green = int(255*random.random())
    blue = int(255*random.random())
    return Color.FromArgb(red,green,blue)

def RandomLayerColours():   
    rs.EnableRedraw(False)  
    layerNames = rs.LayerNames()
    if layerNames:
        for name in layerNames:
            rs.LayerColor(name, randomizer())
    rs.EnableRedraw(True)

if __name__ == "__main__":
    RandomLayerColours()
1 Like

I have developed this short script you may find it handy

feel free to try it and let me know what you think