blender/doc/python_api/examples
Brecht Van Lommel 17bd5c9d4b Collections and groups unification
OVERVIEW

* In 2.7 terminology, all layers and groups are now collection datablocks.
* These collections are nestable, linkable, instanceable, overrideable, ..
  which opens up new ways to set up scenes and link + override data.
* Viewport/render visibility and selectability are now a part of the collection
  and shared across all view layers and linkable.
* View layers define which subset of the scene collection hierarchy is excluded
  for each. For many workflows one view layer can be used, these are more of an
  advanced feature now.

OUTLINER

* The outliner now has a "View Layer" display mode instead of "Collections",
  which can display the collections and/or objects in the view layer.
* In this display mode, collections can be excluded with the right click menu.
  These will then be greyed out and their objects will be excluded.
* To view collections not linked to any scene, the "Blender File" display mode
  can be used, with the new filtering option to just see Colleciton datablocks.
* The outliner right click menus for collections and objects were reorganized.
* Drag and drop still needs to be improved. Like before, dragging the icon or
  text gives different results, we'll unify this later.

LINKING AND OVERRIDES

* Collections can now be linked into the scene without creating an instance,
  with the link/append operator or from the collections view in the outliner.
* Collections can get static overrides with the right click menu in the outliner,
  but this is rather unreliable and not clearly communicated at the moment.
* We still need to improve the make override operator to turn collection instances
  into collections with overrides directly in the scene.

PERFORMANCE

* We tried to make performance not worse than before and improve it in some
  cases. The main thing that's still a bit slower is multiple scenes, we have to
  change the layer syncing to only updated affected scenes.
* Collections keep a list of their parent collections for faster incremental
  updates in syncing and caching.
* View layer bases are now in a object -> base hash to avoid quadratic time
  lookups internally and in API functions like visible_get().

VERSIONING

* Compatibility with 2.7 files should be improved due to the new visibility
  controls. Of course users may not want to set up their scenes differently
  now to avoid having separate layers and groups.
* Compatibility with 2.8 is mostly there, and was tested on Eevee demo and Hero
  files. There's a few things which are know to be not quite compatible, like
  nested layer collections inside groups.
* The versioning code for 2.8 files is quite complicated, and isolated behind
  #ifdef so it can be removed at the end of the release cycle.

KNOWN ISSUES

* The G-key group operators in the 3D viewport were left mostly as is, they
  need to be modified still to fit better.
* Same for the groups panel in the object properties. This needs to be updated
  still, or perhaps replaced by something better.
* Collections must all have a unique name. Less restrictive namespacing is to
  be done later, we'll have to see how important this is as all objects within
  the collections must also have a unique name anyway.
* Full scene copy and delete scene are exactly doing the right thing yet.

Differential Revision: https://developer.blender.org/D3383

https://code.blender.org/2018/05/collections-and-groups/
2018-05-18 13:34:24 +02:00
..
aud.py Cleanup: API docs 2015-09-08 19:42:58 +10:00
blf.py bpy blf api example update 2018-04-17 12:25:51 +02:00
bmesh.ops.1.py Fix T52923: Circle diameter is in fact radius 2017-10-04 18:01:53 +11:00
bpy.app.handlers.1.py BPY Docs: Correct spelling (Addon --> Add-on) 2016-10-14 01:25:05 +02:00
bpy.app.handlers.py Cleanup: API docs 2015-09-08 19:42:58 +10:00
bpy.app.translations.py Fix T51810: Add minimal example of usage of translation API for non-official addons. 2017-06-16 16:43:46 +02:00
bpy.data.py optparse module is deprecated, use new argparse module in background job template. 2011-03-26 03:42:59 +00:00
bpy.ops.1.py Cleanup: rst style 2016-02-15 19:43:08 +11:00
bpy.ops.2.py Collections and groups unification 2018-05-18 13:34:24 +02:00
bpy.ops.3.py style cleanup 2012-06-19 22:17:19 +00:00
bpy.ops.py Cleanup: API docs 2015-09-08 19:42:58 +10:00
bpy.props.1.py Fix T54286: bpy.props operator example misses property access 2018-03-14 11:31:14 +01:00
bpy.props.2.py correcting typos in python api docs 2015-04-24 14:08:31 +01:00
bpy.props.3.py Fix T48212: Typos in bpy enum props examples. 2016-04-21 12:16:32 +02:00
bpy.props.4.py pep8 compliance 2011-06-21 17:17:51 +00:00
bpy.props.5.py Updated bpy.props getter/setter example 2018-03-14 11:42:36 +01:00
bpy.props.py correcting typos in python api docs 2015-04-24 14:08:31 +01:00
bpy.types.AddonPreferences.1.py BPY Docs: Correct spelling (Addon --> Add-on) 2016-10-14 01:25:05 +02:00
bpy.types.BlendDataLibraries.load.py picky style edits with screen/view/drawing, also remove own bad example doc. 2011-08-25 15:49:52 +00:00
bpy.types.BlendDataLibraries.write.py Docs: example for writing blend file libraries 2016-03-04 07:56:04 +11:00
bpy.types.bpy_prop_collection.foreach_get.py Cleanup: pep8 2014-09-17 18:36:17 +10:00
bpy.types.bpy_prop_collection.foreach_set.py Code cleanup: style 2014-02-13 08:52:12 +11:00
bpy.types.bpy_struct.keyframe_insert.1.py Doc fix: rather then -> rather than 2015-08-05 12:48:04 +02:00
bpy.types.bpy_struct.keyframe_insert.py can't include titles in function examples. 2011-04-08 05:03:02 +00:00
bpy.types.ID.user_clear.1.py - include enum names and descriptions in sphinx generated documentation 2011-09-15 16:15:24 +00:00
bpy.types.Menu.1.py Cleanup: API docs 2015-09-08 19:42:58 +10:00
bpy.types.Menu.2.py BPY Docs: Correct spelling (Addon --> Add-on) 2016-10-14 01:25:05 +02:00
bpy.types.Menu.3.py Docs: add preset menu example 2016-01-31 18:08:01 +11:00
bpy.types.Menu.4.py Cleanup: menu example 2017-04-29 16:20:06 +10:00
bpy.types.Menu.py Cleanup: rst style 2016-02-15 19:43:08 +11:00
bpy.types.Mesh.py Cleanup: API docs 2015-09-08 19:42:58 +10:00
bpy.types.NodeTree.py Cleanup: API docs 2015-09-08 19:42:58 +10:00
bpy.types.Object.py Cleanup: API docs 2015-09-08 19:42:58 +10:00
bpy.types.Operator.1.py Cleanup: API docs 2015-09-08 19:42:58 +10:00
bpy.types.Operator.2.py Cleanup: API docs 2015-09-08 19:42:58 +10:00
bpy.types.Operator.3.py Cleanup: API docs 2015-09-08 19:42:58 +10:00
bpy.types.Operator.4.py Cleanup: API docs 2015-09-08 19:42:58 +10:00
bpy.types.Operator.5.py PyAPI: update to bpy.types.Operator.5.py 2017-06-01 21:59:51 -04:00
bpy.types.Operator.6.py Docs: invoke_search_popup uses bl_property 2018-01-26 11:52:01 +11:00
bpy.types.Operator.py Cleanup: API docs 2015-09-08 19:42:58 +10:00
bpy.types.Panel.1.py Cleanup: API docs 2015-09-08 19:42:58 +10:00
bpy.types.Panel.2.py cleanup: pep8 2015-01-29 15:35:06 +11:00
bpy.types.Panel.py Cleanup: API docs 2015-09-08 19:42:58 +10:00
bpy.types.PropertyGroup.py BPY Docs: Correct spelling (Addon --> Add-on) 2016-10-14 01:25:05 +02:00
bpy.types.RenderEngine.py Cleanup: use relative imports in bl_ui 2017-10-21 12:41:42 +11:00
bpy.types.UIList.1.py Add ctrl-click rename to most lists in Blender UI and templates/examples. 2013-11-23 20:54:32 +01:00
bpy.types.UIList.2.py Cleanup: API docs 2015-09-08 19:42:58 +10:00
bpy.types.WindowManager.popup_menu.py sphinx docgen wasn't including example scripts for python methods of RNA types. 2013-10-15 05:55:51 +00:00
gpu.offscreen.1.py Remove all instances of OBACT from drawobject.c and related changes 2017-03-02 17:09:24 +01:00
mathutils.Color.py docs / clenup (no functional code changes) 2011-10-17 02:20:53 +00:00
mathutils.Euler.py Fix example 2014-06-25 03:04:53 +10:00
mathutils.kdtree.py Code cleanup: style 2014-02-13 08:52:12 +11:00
mathutils.Matrix.py docs / clenup (no functional code changes) 2011-10-17 02:20:53 +00:00
mathutils.py [#26768] 2.57 - sys.path not initialized properly 2011-04-04 05:47:04 +00:00
mathutils.Quaternion.py mathutils: added exponential map to Quaternion 2015-02-01 13:06:00 +01:00
mathutils.Vector.py API: Fix Links 2016-10-25 17:34:01 +02:00