[Bf-committers] ID properties patch ready

Joe Eagar joeedh at gmail.com
Fri Nov 3 04:40:13 CET 2006


Hi, as some of you already know I've been working on ID properties for 
the last little while.

I've posted an initial patch plus a python script that lets you browse 
ID properties attached to materials at:
https://projects.blender.org/tracker/index.php?func=detail&aid=5162&group_id=9&atid=127

Note that the wiki proposal page it links to is in bad need of revision, 
which I'll likely get to tomorrow or the day after; so keep that in 
mind.  Short intro to ID properties: ID properties are properties 
supporting several data types.  They are: Float, Int, Group (which is a 
container for containing other id properties, including other groups), 
String and Array (which gives you the option of a simple one-dimensional 
int or float array).  Currently only materials and objects ID properties 
are accessible by python (and save/load themselves) but its easy to 
extend the system to new ID types.

ID properties is something blender has been needing for a long time.  
People with personal forks (like intrr) need some way to store data that 
won't get chopped away by interoperating with another blender version.  
Virtually every rendering script I've ever heard of needs some way to 
store custom data; Renderman is a case in point; Neqsis (formerly BtoR), 
for example, makes do with storing object data in an XML file inside the 
.blend.  And one day I'd really like to write a script that interfaces 
blender with openal, for rendering 3D audio of animations; being able to 
attach wave file paths etc to objects will be very useful.

The Render API, when it appears, will especially need this.  Though by 
the time the Render API comes around, the goal is to have panels inside 
the buttons window (and as blocktype panels in windows that need them) 
that use a generic UI to edit properties, functioning similar to the 
python script I posted.  The eventual end-goal is to have python-driven 
panels that can frontend for ID properties.

Also, once this gets worked out and approved, a repository will be 
created for defining ID property standards.  The idea is that, for 
example, there'd be one way to make ID properties for RenderMan, which 
any script can use.  Or one way to attach metadata to ID types, such as 
the artist name, copyright, date, comments, etc. 

Joe


More information about the Bf-committers mailing list