Python: documentation about overriding context members.
authorBrecht Van Lommel <brechtvanlommel@pandora.be>
Wed, 2 May 2012 13:28:13 +0000 (13:28 +0000)
committerBrecht Van Lommel <brechtvanlommel@pandora.be>
Wed, 2 May 2012 13:28:13 +0000 (13:28 +0000)
doc/python_api/examples/bpy.ops.2.py [new file with mode: 0644]
doc/python_api/examples/bpy.ops.3.py [new file with mode: 0644]

diff --git a/doc/python_api/examples/bpy.ops.2.py b/doc/python_api/examples/bpy.ops.2.py
new file mode 100644 (file)
index 0000000..86b7438
--- /dev/null
@@ -0,0 +1,18 @@
+"""
+Overriding Context
+++++++++++++++++++
+
+It is possible to override context members that the operator sees, so that they
+act on specified rather than the selected or active data, or to execute an
+operator in the different part of the user interface.
+
+The context overrides are passed as a dictionary, with keys matching the context
+member names in bpy.context. For example to override bpy.context.active_object,
+you would pass {'active_object': object}.
+"""
+
+# remove all objects in scene rather than the selected ones
+import bpy
+override = {'selected_bases': list(bpy.context.scene.object_bases)}
+bpy.ops.object.delete(override)
+
diff --git a/doc/python_api/examples/bpy.ops.3.py b/doc/python_api/examples/bpy.ops.3.py
new file mode 100644 (file)
index 0000000..0b5bcaf
--- /dev/null
@@ -0,0 +1,18 @@
+"""
+It is also possible to run an operator in a particular part of the user
+interface. For this we need to pass the window, screen, area and sometimes
+a region.
+"""
+
+# maximize 3d view in all windows
+import bpy
+
+for window in bpy.context.window_manager.windows:
+    screen = window.screen
+    
+    for area in screen.areas:
+        if area.type == 'VIEW_3D':
+            override = {'window': window, 'screen': screen, 'area': area}
+            bpy.ops.screen.screen_full_area(override)
+            break
+