I need to create an addon that load and save pieces of armatures and I want to make the addon capable of loading these saved data in any file. Almost like a preset system but with entire objects.

something like:

def when_addon_loads():

    data = load_from_user_settings("c:/file_path.txt")
    snippets = parse_all(data.split("\n"))
    context.scene.armature_snippets = snippets

You can save individual data blocks to blend files using the bpy.data.libraries.write() function:

import bpy

filepath = "//new_library.blend"

# write selected objects and their data to a blend file
data_blocks = set(bpy.context.selected_objects)
bpy.data.libraries.write(filepath, data_blocks)

# write all meshes starting with a capital letter and
# set them with fake-user enabled so they aren't lost on re-saving
data_blocks = {mesh for mesh in bpy.data.meshes if mesh.name[:1].isupper()}
bpy.data.libraries.write(filepath, data_blocks, fake_user=True)

# write all materials, textures and node groups to a library
data_blocks = {*bpy.data.materials, *bpy.data.textures, *bpy.data.node_groups}
bpy.data.libraries.write(filepath, data_blocks)

See the API documentation for more info.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.