examples for bpy.props
authorCampbell Barton <ideasman42@gmail.com>
Fri, 18 Feb 2011 14:27:18 +0000 (14:27 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Fri, 18 Feb 2011 14:27:18 +0000 (14:27 +0000)
doc/python_api/examples/bpy.props.1.py [new file with mode: 0644]
doc/python_api/examples/bpy.props.2.py [new file with mode: 0644]
doc/python_api/examples/bpy.props.3.py [new file with mode: 0644]
doc/python_api/examples/bpy.props.py [new file with mode: 0644]
doc/python_api/examples/bpy.types.Operator.3.py
doc/python_api/sphinx_doc_gen.py

diff --git a/doc/python_api/examples/bpy.props.1.py b/doc/python_api/examples/bpy.props.1.py
new file mode 100644 (file)
index 0000000..5153462
--- /dev/null
@@ -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')
diff --git a/doc/python_api/examples/bpy.props.2.py b/doc/python_api/examples/bpy.props.2.py
new file mode 100644 (file)
index 0000000..e27e622
--- /dev/null
@@ -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"
diff --git a/doc/python_api/examples/bpy.props.3.py b/doc/python_api/examples/bpy.props.3.py
new file mode 100644 (file)
index 0000000..e4964c3
--- /dev/null
@@ -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)
diff --git a/doc/python_api/examples/bpy.props.py b/doc/python_api/examples/bpy.props.py
new file mode 100644 (file)
index 0000000..f6bc55d
--- /dev/null
@@ -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
index 887657bec7a9854439d1bd2fcd70f6403c61d369..7fdccd81379479f2f7febbeb7b6a25852eb5bdca 100644 (file)
@@ -7,8 +7,8 @@ import bpy
 
 
 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 @@ class DialogOperator(bpy.types.Operator):
 bpy.utils.register_class(DialogOperator)
 
 # test call
-bpy.ops.object.modal_operator('INVOKE_DEFAULT')
+bpy.ops.object.dialog_operator('INVOKE_DEFAULT')
index 5f9505a7ea30653b51812c85d2e0b6032c3fc24f..4112e24d6e0d045ab5a189e44545255d44fc7d72 100644 (file)
@@ -61,7 +61,7 @@ else:
         "bpy.app",
         "bpy.path",
         "bpy.data",
-        # "bpy.props",
+        #"bpy.props",
         "bpy.utils",
         "bpy.context",
         # "bpy.types",  # supports filtering
@@ -74,7 +74,7 @@ else:
         "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