[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34968] trunk/blender/doc/python_api: examples for bpy.props
Campbell Barton
ideasman42 at gmail.com
Fri Feb 18 15:27:19 CET 2011
Revision: 34968
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34968
Author: campbellbarton
Date: 2011-02-18 14:27:18 +0000 (Fri, 18 Feb 2011)
Log Message:
-----------
examples for bpy.props
Modified Paths:
--------------
trunk/blender/doc/python_api/examples/bpy.types.Operator.3.py
trunk/blender/doc/python_api/sphinx_doc_gen.py
Added Paths:
-----------
trunk/blender/doc/python_api/examples/bpy.props.1.py
trunk/blender/doc/python_api/examples/bpy.props.2.py
trunk/blender/doc/python_api/examples/bpy.props.3.py
trunk/blender/doc/python_api/examples/bpy.props.py
Added: trunk/blender/doc/python_api/examples/bpy.props.1.py
===================================================================
--- trunk/blender/doc/python_api/examples/bpy.props.1.py (rev 0)
+++ trunk/blender/doc/python_api/examples/bpy.props.1.py 2011-02-18 14:27:18 UTC (rev 34968)
@@ -0,0 +1,31 @@
+"""
+Operator Example
+++++++++++++++++
+
+A common use of custom properties is for python based :class:`Operator` classes.
+"""
+
+import bpy
+
+
+class DialogOperator(bpy.types.Operator):
+ bl_idname = "object.dialog_operator"
+ bl_label = "Property Example"
+
+ my_float = bpy.props.FloatProperty(name="Some Floating Point")
+ my_bool = bpy.props.BoolProperty(name="Toggle Option")
+ my_string = bpy.props.StringProperty(name="String Value")
+
+ def execute(self, context):
+ print("Dialog Runs")
+ return {'FINISHED'}
+
+ def invoke(self, context, event):
+ wm = context.window_manager
+ return wm.invoke_props_dialog(self)
+
+
+bpy.utils.register_class(DialogOperator)
+
+# test call
+bpy.ops.object.dialog_operator('INVOKE_DEFAULT')
Added: trunk/blender/doc/python_api/examples/bpy.props.2.py
===================================================================
--- trunk/blender/doc/python_api/examples/bpy.props.2.py (rev 0)
+++ trunk/blender/doc/python_api/examples/bpy.props.2.py 2011-02-18 14:27:18 UTC (rev 34968)
@@ -0,0 +1,27 @@
+"""
+PropertyGroup Example
++++++++++++++++++++++
+
+PropertyGroups can be used for collecting custom settings into one value
+to avoid many indervidual settings mixed in together.
+"""
+
+import bpy
+
+
+class MaterialSettings(bpy.types.PropertyGroup):
+ my_int = bpy.props.IntProperty()
+ my_float = bpy.props.FloatProperty()
+ my_string = bpy.props.StringProperty()
+
+bpy.utils.register_class(MaterialSettings)
+
+bpy.types.Material.my_settings = \
+ bpy.props.PointerProperty(type=MaterialSettings)
+
+# test the new settings work
+material = bpy.data.materials[0]
+
+material.my_settings.val_int = 5
+material.my_settings.val_float = 3.0
+material.my_settings.my_string = "Foo"
Added: trunk/blender/doc/python_api/examples/bpy.props.3.py
===================================================================
--- trunk/blender/doc/python_api/examples/bpy.props.3.py (rev 0)
+++ trunk/blender/doc/python_api/examples/bpy.props.3.py 2011-02-18 14:27:18 UTC (rev 34968)
@@ -0,0 +1,33 @@
+"""
+Collection Example
+++++++++++++++++++
+
+Custom properties can be added to any subclass of an :class:`ID`,
+:class:`Bone` and :class:`PoseBone`.
+"""
+
+import bpy
+
+# Assign a collection
+class SceneSettingItem(bpy.types.PropertyGroup):
+ name = bpy.props.StringProperty(name="Test Prop", default="Unknown")
+ value = bpy.props.IntProperty(name="Test Prop", default=22)
+
+bpy.utils.register_class(SceneSettingItem)
+
+bpy.types.Scene.my_settings = \
+ bpy.props.CollectionProperty(type=SceneSettingItem)
+
+# Assume an armature object selected
+print("Adding 3 values!")
+
+my_item = bpy.context.scene.my_settings.add()
+my_item.name = "Spam"
+my_item.value = 1000
+
+my_item = bpy.context.scene.my_settings.add()
+my_item.name = "Eggs"
+my_item.value = 30
+
+for my_item in bpy.context.scene.my_settings:
+ print(my_item.name, my_item.value)
Added: trunk/blender/doc/python_api/examples/bpy.props.py
===================================================================
--- trunk/blender/doc/python_api/examples/bpy.props.py (rev 0)
+++ trunk/blender/doc/python_api/examples/bpy.props.py 2011-02-18 14:27:18 UTC (rev 34968)
@@ -0,0 +1,18 @@
+"""
+Assigning to Existing Classes
++++++++++++++++++++++++++++++
+
+Custom properties can be added to any subclass of an :class:`ID`,
+:class:`Bone` and :class:`PoseBone`.
+
+These properties can be animated, accessed by the user interface and python
+like blenders existing properties.
+"""
+
+import bpy
+
+# Assign a custom property to an existing type.
+bpy.types.Material.custom_float = bpy.props.FloatProperty(name="Test Prob")
+
+# Test the property is there.
+bpy.data.materials[0].custom_float = 5.0
Modified: trunk/blender/doc/python_api/examples/bpy.types.Operator.3.py
===================================================================
--- trunk/blender/doc/python_api/examples/bpy.types.Operator.3.py 2011-02-18 14:22:46 UTC (rev 34967)
+++ trunk/blender/doc/python_api/examples/bpy.types.Operator.3.py 2011-02-18 14:27:18 UTC (rev 34968)
@@ -7,8 +7,8 @@
class DialogOperator(bpy.types.Operator):
- bl_idname = "object.modal_operator"
- bl_label = "Simple Modal Operator"
+ bl_idname = "object.dialog_operator"
+ bl_label = "Simple Dialog Operator"
my_float = bpy.props.FloatProperty(name="Some Floating Point")
my_bool = bpy.props.BoolProperty(name="Toggle Option")
@@ -28,4 +28,4 @@
bpy.utils.register_class(DialogOperator)
# test call
-bpy.ops.object.modal_operator('INVOKE_DEFAULT')
+bpy.ops.object.dialog_operator('INVOKE_DEFAULT')
Modified: trunk/blender/doc/python_api/sphinx_doc_gen.py
===================================================================
--- trunk/blender/doc/python_api/sphinx_doc_gen.py 2011-02-18 14:22:46 UTC (rev 34967)
+++ trunk/blender/doc/python_api/sphinx_doc_gen.py 2011-02-18 14:27:18 UTC (rev 34968)
@@ -61,7 +61,7 @@
"bpy.app",
"bpy.path",
"bpy.data",
- # "bpy.props",
+ #"bpy.props",
"bpy.utils",
"bpy.context",
# "bpy.types", # supports filtering
@@ -74,7 +74,7 @@
"mathutils.geometry",
)
- FILTER_BPY_TYPES = ("PropertyGroup", "Panel", "Menu", "Operator") # allow
+ FILTER_BPY_TYPES = ("PropertyGroup", "Panel", "Menu", "Operator", "RenderEngine") # allow
FILTER_BPY_OPS = ("import.scene", ) # allow
# for quick rebuilds
More information about the Bf-blender-cvs
mailing list