Blender Addon: Scenelayers (python)

Apparently, when Blender doesn’t do what I want it to do, I start abusing it’s flexibility to make it do what I want anyway.
In this case there is the “Blender only has 20 layers” problem.
There are different variants around the web of systems that allow you to have more than 20 layers.
This one is mine though. A word of caution in advance though. This was written to my needs and usage.

Download.zip

Download.zip

Features:

  1. Infinite layers
  2. Layer Locking
  3. Layer Parenting
  4. Layer Duplication
  5. Layer Isolation

Installation Steps:

– Download object_layer_scenes.zip
– Open up Blender 2.76
– File > User Preferences > Add-ons ( ctrl+alt+u )
– Install from File.. ( locate the .zip file )
– Find Object: Scene layers in the add-on list, and tick the checkbox to activate it.
– Done , you should now find it in your Scene properties panel. ( you will need to initialize the scenelayer setup though )

Why I made it:

As projects grew more and more complex, the limitation of only 20 layers was a big problem.
The main problem lie with the idea that projects never stopped changing. A never ending stream of “alternatives or options” had to be created and managed with only 20 layers.
I’m talking about scenes with around a few million objects. Projects ( like a hotel we were visualising both the interior and exterior for ) that were nearly too big to preview at once.
Not only was it impossible to fit all of those updates, tweaks and “alternatives” in 20 layers, it was never an easy task to memorize which combination of blender’s nameless layers were the A , B or C variant. I could’ve probably downloaded one of the other layer setups, but I took on this little challenge, and I’m actually rather impressed at how elegant it actually is.
No heavy modifications were made to blender, I just totally subverted blender’s “Scene” mechanics to serve my needs. Since I never had a real use for different scenes.
I saw possibility and I took it.

The best thing about my system, is that it barely alters the .blend file. Making the file interchangeable with non-modded clients.
Blender users without this addon can work in the “Viewport scene” just fine, they can even make changes to individual layers, though that might be a bit of a hastle.

How it works:

By using blender’s scenes as layers and pooling(linking) them together in a “Viewport” scene,  I create the illusion that there are layers, when actually they are merely scenes mashed together.
When using the plugin, you will first need to “Init!” the scenelayers. This creates a new empty scene called “_Viewport” ( ‘_’ is there for sorting reasons ).

Viewport:
At any time, you can designate a different layer as being the Viewport layer.
This viewport layer will show the combination of all objects in all scenes.
To be specific, it LINKS all scenes together. That means that any change made to an object in the VIEWPORT is also immediatly applied to the object in the source scene.
So keep in mind that the Viewport layer is constantly altered by the add-on.
I recommend never changing this, unless you know what you’re doing.

Active layer:
Another important thing to note is the “active layer” mechanic I’ve added in.
The active layer is marked by an active radial button, to the left of the layer name and has been added to handle the addition of new objects in the VIEWPORT layer since the viewport itself should never own objects.
Any object you create, copy, or import into the VIEWPORT is automatically added to the Active Layer as soon as the script updates.
Script updates happen when hiding/unhiding layers and locking/unlocking them.

Update!:
Forces the add-on to update the Viewport and every object in it.

Deleting objects:
Because I use LINKING to copy items to the VIEWPORT , using the default delete ( X-key ) will only delete the object version in the VIEWPORT and NOT in the original scene.
If you wish to delete an object. Make sure that you use SHIFT+X , this deletes both instances.

Layer Assignment:
You can move selected objects to a specific scenelayer by pressing the ‘+’ next to the layer name

Layer Parenting:
More of a cosmetic feature than anything else. Found by expanding the layer scene item.
Filling in a parent layer in the “Parent Layer” box, allows you to group layers together visually, this has no effect on layer behaviour,except for visibility. If the parent is hidden, so will this layer. It does NOT affect layer locking.
If the parent is locked, the child layer will still be selectable

Deleting layers:
To prevent you from accidentally deleting a layer scene, you have to open up the layer scene item and press the ‘X’. Once a scenelayer is deleted, all items within it will be removed.

Layer Locking:
“Locks” a layer, by making every instance of objects in it UNSELECTABLE.

Layer Isolation:
To ISOLATE a layer, you ALT+CLICK the visibility button of the layer you wish to isolate. The Eye will turn into a globe.
You can isolate any amount of layers that you want, but as soon as you hide/unhide a layer with just your Left Mouse button, you will lose all isolations.
To de-isolate a layer, you ALT+CLICK the same item agian.

Final Thoughts:

Again, I find that my UI design is a bit lacking, too many wires sticking out, and again it’s because I didn’t find the time to write a proper UI. ( I’m also not that big of a fan of blender’s UI structure ). When writing these blender add-ons, more often than not I struggle with the UI system. Although I really have to commend Blender for it’s Anything can be Anything nature.