[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