--- /dev/null
+"""
+Keying Nested Properties
+++++++++++++++++++++++++
+
+Note that when keying data paths which contain nested properties this must be
+done from the :class:`ID` subclass, in this case the :class:`Armature` rather
+then the bone.
+"""
+
+import bpy
+from bpy.props import PointerProperty
+
+
+# define a nested property
+class MyPropGroup(bpy.types.PropertyGroup):
+ nested = bpy.props.FloatProperty(name="Nested", default=0.0)
+
+# register it so its available for all bones
+bpy.utils.register_class(MyPropGroup)
+bpy.types.Bone.my_prop = PointerProperty(type=MyPropGroup,
+ name="MyProp")
+
+# get a bone
+obj = bpy.data.objects["Armature"]
+arm = obj.data
+
+# set the keyframe at frame 1
+arm.bones["Bone"].my_prop_group.nested = 10
+arm.keyframe_insert(data_path='bones["Bone"].my_prop.nested',
+ frame=1,
+ group="Nested Group")
--- /dev/null
+"""
+Basic Keyframing
+++++++++++++++++
+
+This is the most simple example of inserting a keyframe from python.
+"""
+
+import bpy
+
+obj = bpy.context.object
+
+# set the keyframe at frame 1
+obj.location = 3.0, 4.0, 10.0
+obj.keyframe_insert(data_path="location", frame=1)
-------------------
- Run this script from blenders root path once you have compiled blender
- ./blender.bin -b -P doc/python_api/sphinx_doc_gen.py
+ ./blender.bin --background --python doc/python_api/sphinx_doc_gen.py
This will generate python files in doc/python_api/sphinx-in/,
assuming that ./blender.bin is or links to the blender executable
"mathutils.geometry",
)
- FILTER_BPY_TYPES = ("PropertyGroup", "Panel", "Menu", "Operator", "RenderEngine") # allow
+ FILTER_BPY_TYPES = ("bpy_struct", "Panel", "Menu", "Operator", "RenderEngine") # allow
FILTER_BPY_OPS = ("import.scene", ) # allow
# for quick rebuilds
else:
raise TypeError("type was not GetSetDescriptorType, MethodDescriptorType or ClassMethodDescriptorType")
- write_example_ref(ident, fw, module_name + "." + type_name + "." + identifier)
+ write_example_ref(ident + " ", fw, module_name + "." + type_name + "." + identifier)
fw("\n")