[Bf-python] Ask for: link/append/import returns object(s) instance(s)

Campbell Barton ideasman42 at gmail.com
Tue May 24 16:05:14 CEST 2011


Take a look at:
bpy.data.libraries.load(...)

Examples in docs:
http://www.blender.org/documentation/blender_python_api_2_57_release/bpy.types.BlendDataLibraries.html#bpy.types.BlendDataLibraries.load

This is intended to be used from python rather then the operator since
it gives a way to inspect whats in the blend and select the data
blocks to add.

Now you come to mention it, it doesn't give you a list of loaded
datablocks which would be useful.

On Tue, May 24, 2011 at 11:27 AM, Martin Poirier <theeth at yahoo.com> wrote:
>
> The link and append operators set the selection to the objects that were added. (the active object isn't changed though, careful with that.)
>
> A complete solution (a low level api call) should return all the added datablocks (dependencies and all, not just top level objects) so you can detect all new items.
>
> Martin
>
> --- On Tue, 5/24/11, Pierrick Koch <pierrick.koch at gmail.com> wrote:
>
> From: Pierrick Koch <pierrick.koch at gmail.com>
> Subject: [Bf-python] Ask for: link/append/import returns object(s) instance(s)
> To: robotics at blender.org, bf-python at blender.org
> Received: Tuesday, May 24, 2011, 12:52 AM
>
> Hi everyone,
> I am looking for a Python method to link/append/import objects in Blender that would give me back some info about what has been appended (in the best case a list of the imported objects instances)...
> For instance: let say that in a .blend file I have a car made of the main structure which contain 4 wheels.
> Code:
> bpy.ops.wm.link_append(directory="/home/pierrick/atrv.blend/Object", link=False,
>   files=[{'name': 'ATRV'}, {'name': 'Wheel.4'}, {'name': 'Wheel.3'}, {'name': 'Wheel.2'}, {'name': 'Wheel.1'}])
> if there was already an object called ATRV, my car will be renamed ATRV.001,
> it would be nice to get an instance of the objects, to avoid pasing by bpy.data.object
> Same with collada: it would be amazing if:
> Code:
> bpy.ops.wm.collada_import(filepath="/home/pierrick/atrv.dae")
> could return something like:
> Code:
> you_just_imported = {
>   'ATRV': [
>     'Wheel1',
>     'Wheel2',
>     'Wheel3',
>     'Wheel4'
>   ]
> }
>
> Where the string are the real-name of the object in the Blender instance.
> With .001 if there was already another object with the same name in the scene.
> ...
> In fact, I'm working on Robotics http://wiki.blender.org/index.php/Robotics:Contents
> https://github.com/pierriko/morse/blob/master/src/morse/builder/morsebuilder.py#L61
> https://github.com/pierriko/morse/blob/master/examples/morse/scenarii/ros_example.py
> http://www.openrobots.org/wiki/morse
> ...
> Any idea? shall I open an issue for that?
> Cheers,
> Pierrick
> = This message is cross-posted on http://www.blender.org/forum/viewtopic.php?t=20112 =
> -----Inline Attachment Follows-----
>
> _______________________________________________
> Bf-python mailing list
> Bf-python at blender.org
> http://lists.blender.org/mailman/listinfo/bf-python
>
> _______________________________________________
> Bf-python mailing list
> Bf-python at blender.org
> http://lists.blender.org/mailman/listinfo/bf-python
>



--
- Campbell



More information about the Bf-python mailing list