3
$\begingroup$

I have 10 layers all filled up, and i need content from layer 5-10 to be moved to layers 11-16, as i need more layers in-between.

Is there a shortcut or add-on for this or do i need to go through all layers and move the content one by one?

$\endgroup$
1

3 Answers 3

3
$\begingroup$

I don't know of any add-on that specifically has a bump up by n layers feature, Blender has a massive eco-system for add-ons. Sometimes it's easier to write a small script than to go looking for an add-on.

Here a small script that moves all items that appear in layers {5,6,7,8,9} up by 5 layers to {10,11,12,13,14} respectively. (I think you accidentally gave an example that is off by one)

enter image description here

You may want to test how this works in a small dummy .blend file, so you are confident using it in a production scenario.

paste this directly into the TextEditor and press Run.

import bpy

for obj in bpy.data.objects:

    # let's deal with a simple case: is it only on one layer?
    if obj.layers[:].count(True) == 1:
        found_index = obj.layers[:].index(True)
        if (5 <= found_index <= 9):
            new_index = found_index + 5
            obj.layers[:] = [i==new_index for i in range(20)]
$\endgroup$
2
$\begingroup$

Here is my version of a script to do this:

import bpy


def shift_layers(obj, src, dst):

    for i in range(len(obj.layers)-1, dst-1, -1):
        obj.layers[i] = obj.layers[i-dst+src]
    for i in range(src, dst):
        obj.layers[i] = False


for obj in bpy.data.objects:
    shift_layers(obj, 5, 10)
$\endgroup$
0
$\begingroup$

Since Blender allows objects to be in more than one layer, you could: 1) Activate just layer one 2) Type A (select all visible) 3) Shift right click the layer where you want to move stuff 4) Right click layer one, to remove selection from it.

Repeat steps to other layers...

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .