Module Library
[frames | no frames]

Module Library

The Blender.Library submodule.

Library

This module provides access to objects stored in .blend files. With it scripts can append from Blender files to the current scene, like the File->Append menu entry in Blender does. It allows programmers to use .blend files as data files for their scripts.

Warning:

This is a new, still experimental module.

Example:
 import Blender
 from Blender import Library

 def f(name):
   open_library(name)

 def open_library(name):
   Library.Open(name)
   groups = Library.LinkableGroups()

   for db in groups:
     print "DATABLOCK %s:" % db
     for obname in Library.Datablocks(db):
       print obname

   if 'Object' in groups:
     for obname in Library.Datablocks('Object'):
       Library.Load(obname, 'Object', 0) # note the 0...
     Library.Update()

   Library.Close()
   b.Redraw()

 b.Window.FileSelector(f, "Choose Library", "*.blend")

Function Summary
  Close()
Close the currently open library file, if any.
  Datablocks(group)
Get all datablock objects of the given 'group' available in the currently open library file.
string getName()
Get the filename of the currently open library file.
list of strings LinkableGroups()
Get all the linkable group names from the currently open library file.
  Load(datablock, group, update)
Load the given datablock object from the current library file
bool Open(filename)
Open an existing .blend file.
  Update()
Update all links and display lists in Blender.

Function Details

Close()

Close the currently open library file, if any.

Datablocks(group)

Get all datablock objects of the given 'group' available in the currently open library file.
Parameters:
group - datablock group, see LinkableGroups.
           (type=string)

getName()

Get the filename of the currently open library file.
Returns:
The open library filename.
           (type=string)

LinkableGroups()

Get all the linkable group names from the currently open library file. These are the available groups for linking with the current scene. Ex: 'Object', 'Mesh', 'Material', 'Text', etc.
Returns:
the list of linkable groups.
           (type=list of strings)

Load(datablock, group, update=1)

Load the given datablock object from the current library file
Parameters:
datablock - an available object name, as returned by Datablocks.
           (type=string)
group - an available group name, as returned by LinkableGroups.
           (type=string)
update - defines if Blender should be updated after loading this object. This means linking all objects and remaking all display lists, so it is potentially very slow.
           (type=bool)

Warning: If you plan to load more than one object in sequence, it is definitely recommended to set 'update' to 0 in all calls to this function and after them call Update.

Open(filename)

Open an existing .blend file. If there was already one open file, it is closed first.
Parameters:
filename - The filename of a Blender file.
           (type=string)
Returns:
1 if successful, 0 otherwise.
           (type=bool)

Update()

Update all links and display lists in Blender. This function should be called after a series of Load(datablock, group, 0) calls to make everything behave nicely.

Warning: to use this function, remember to set the third Load parameter to zero or each loading will automatically update Blender, which will slow down your script and make you look like a lousy programmer. Enough warnings :)?


Generated by Epydoc 2.1 on Thu Aug 12 21:47:29 2004 http://epydoc.sf.net