[Bf-python] Custom Properties on RenderLayers possible?

Kerim Borchaev kerim.borchaev at gmail.com
Fri Jul 28 13:17:09 CEST 2017


I don't know if it's a bug or limitation of 2.78(I have same results)
but in Blender 2.79 testbuild2 it works!



On Thu, Jul 27, 2017 at 3:03 PM, Simon Rainerson
<simon.rainerson at goodbyekansas.com> wrote:
> Hello
>
> I'm trying to get blender to run on our render farm and I would like to have
> different priorities or frame ranges or other things per render layer. I
> thought it would be practical to store these properties on the render layers
> themselves, but when I tested that I couldn't get it to work.
>
> Is it a known/intended limitation, a bug or just me not knowing what I'm
> doing?
>
> Here is my test code (also attached):
>
>
>>> import bpy
>>>
>>>
>>> class RENDER_UL_my_renderlayers(bpy.types.UIList):
>>>
>>>     def draw_item(self, context, layout, data, item, icon, active_data,
>>> active_propname, index):
>>>
>>>         layer = item
>>>
>>>         row=layout.row()
>>>
>>>         print(dir(layer))
>>>
>>>         row.prop(layer, 'name', text='')
>>>
>>>         row.prop(layer, 'test2', text='')
>>>
>>>         row.prop(layer, 'use', text = '')
>>>
>>>
>>> class TEST_PANEL(bpy.types.Panel):
>>>
>>>     bl_label = "TEST"
>>>
>>>     bl_idname = "RENDER_PT_ui_test"
>>>
>>>     bl_space_type = 'PROPERTIES'
>>>
>>>     bl_region_type = 'WINDOW'
>>>
>>>     bl_context = "render"
>>>
>>>
>>>     def draw(self, context):
>>>
>>>         layout = self.layout
>>>
>>>         col = layout.column()
>>>
>>>         col.prop(context.scene, "test1")
>>>
>>>         col.template_list('RENDER_UL_my_renderlayers', 'RenderLayers',
>>> context.scene.render, 'layers', context.scene, "testindex")
>>>
>>>
>>> def register():
>>>
>>>     bpy.types.Scene.test1 = bpy.props.IntProperty()
>>>
>>>     bpy.types.Scene.testindex = bpy.props.IntProperty()
>>>
>>>     bpy.types.SceneRenderLayer.test2 = bpy.props.IntProperty()
>>>
>>>
>>>
>>>     bpy.utils.register_class(RENDER_UL_my_renderlayers)
>>>
>>>     bpy.utils.register_class(TEST_PANEL)
>>>
>>>
>>> def unregister():
>>>
>>>     bpy.utils.unregister_class(RENDER_UL_my_renderlayers)
>>>
>>>     bpy.utils.unregister_class(TEST_PANEL)
>>>
>>>
>>>     del bpy.types.Scene.test1
>>>
>>>     del bpy.types.Scene.test2
>>>
>>>     del bpy.types.Scene.testindex
>>>
>>>
>>>
>>> if __name__ == "__main__":
>>>
>>>     register()
>
>
> In the console I get
>>
>> rna_uiItemR: property not found: SceneRenderLayer.test2
>
>
> In the print(dir(layer)) test2 shows up but If I do
>>
>> bpy.data.scenes[0].render.layers[0].test2
>
> I get
>>
>> (<built-in function IntProperty>, {})
>
> Instead of a number.
>
> test1 shows up like it should.
>
> Thanks
>
> SIMON RAINERSON
> Techincal Director
>
> GOODBYE KANSAS STUDIOS
> Rosenlundsgatan 40, 4th floor
> 118 53 Stockholm, Sweden
>
> Ph: +46 8 556 990 00
> www.goodbyekansas.com
>
>
> _______________________________________________
> Bf-python mailing list
> Bf-python at blender.org
> https://lists.blender.org/mailman/listinfo/bf-python
>



More information about the Bf-python mailing list