Is it possible to create Blender file (.blend) programmatically with Python?

heltonbiker picture heltonbiker · Apr 27, 2014 · Viewed 8.2k times · Source

I know Python is the standard scripting language for use inside Blender, but I didn't find a way to create a .blend file with python.

What I want to do is not to use python inside blender, but rather "use blender (libs?) inside python".

My planned workflow would be the following:

  1. Define some parameters for my model;
  2. Define a "generative recipe" to create appropriate Blender objects that will be saved to file;
  3. Create a python script to store the parameters and procedures. When the script runs, some .blend file is created in the same folder;
  4. Use Blender to visualize the model. If model needs to be changed, make changes to the script, run it again, and open it again.

Answer

sambler picture sambler · Apr 28, 2014

There is an experimental option that allows you to build your own copy of blender as a python module to use like a standard python module. This page is about all the help you will get for it.

I would recommend you write your python script as a blender script to be run inside blender. You can automate saving the file using bpy.ops.wm.save_as_mainfile(filepath="path/to/myfilename")

You can run a script inside blender that generates a blender text block that you can then run as a python script, select all, delete and re-run. You can also easily reload an external file as a text block in blender if you prefer an external text editor for it's features.

You can also use your plan to generate the script yourself which you can then run using blender with blender -b -P myscript.py the -b option tells blender to run in the background without a GUI.