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

sorry for revive this but how can set a custom color for new layer instead of black color?

Hi -

Rhino Options → Appearance → Colors → New layer

-wim

1 Like

this is the unique way to see the drawing line in different color ? I can set the drawing lines with a default colour instead change the layer color?

Hi -

No. In addition to the layer color, you can set individual object’s display color from the properties panel.

No. Overriding the layer color is done after an object is created.
-wim

1 Like

yep but as you said only show the color after the line was drawn, so if my background is dark and I am drawing in a black layer I will have to change first the layer color . Got it thanks

If you are always working with a dark background, you might want to change the default layer colors in your templates (as well as the default new layer color in settings) to colors that suit you better.

1 Like

Yes got it, Curve settings should be global :stuck_out_tongue: thanks

Well, you can make all curves draw in one constant color by creating a custom display mode and setting curves to display as a single specified color. That way all your curves will be the same color (while in that display mode) no matter what layer they are on. I personally wouldn’t recommend this, but YMMV.

1 Like

yep just selecting a default new layer color is enough.