Was an existing bug,
Bug 33001 - Alembic: Creating an Alembic read via python results in only
one item being imported
On 06/02/14 17:01, Ben Dickson wrote:
> Worth noting that there's a bug where the getAllItems method doesn't
> return anything (useful) until the ReadGeo2's properties panel is displayed.
>
> Meaning this does not work:
>
> rg = nuke.nodes.ReadGeo2(file='/path/to/example.abc')
> print rg['scene_view'].getAllItems()
>
> ..instead it always returns ['------- ']
>
>
> The only workaround I found is this:
>
> readGeo = nuke.createNode('ReadGeo2', 'file {alembicFile.abc}')
> readGeo.hideControlPanel()
> sceneView = readGeo['scene_view']
>
> allItems = sceneView.getAllItems()
> sceneView.setImportedItems(allItems)
> sceneView.setSelectedItems(allItems)
>
> ..which works, but does cause the properties/geo to momentarily appear,
> and uses the old-fashioned way of setting the file knob (with the 'file
> ...' Tcl-string argument)
>
> Just reported this to Foundry support (so I have no Bug# yet, although I
> suspect it's already been reported)
>
> - Ben
>
> On 22/07/13 19:34, Peter Crossley wrote:
>> Hi Paul,
>>
>> The alembic reader has the concept of imported and selected nodes. For
>> example, if an abc file has 10 nodes in total, you could choose to
>> import only 5 of those, and these would be the only nodes that appear in
>> your Scenegraph tab.
>>
>> In your case, only the first item is being imported. To remedy this, you
>> need to look at the python bindings for the node's scene_view knob
>> (which controls the import/selection from the abc file). You need to do
>> the following:
>>
>> readGeo = nuke.createNode('ReadGeo2', 'file {alembicFile.abc}')
>> sceneView = readGeo['scene_view']
>>
>>
>> allItems = sceneView.getAllItems() # get a list of all nodes
>> stored in the abc file
>> sceneView.setImportedItems(allItems) # import all items into the
>> ReadGeo node
>> sceneView.setSelectedItems(allItems) # set everything to selected
>> (i.e. visible)
>>
>> Hope that helps!
>>
>> Cheers,
>>
>> Peter.
>>
>> On 17/07/2013 01:48, [email protected] wrote:
>>> My first attempt to create a ReadGeo node looked like this:
>>>
>>> n = nuke.createNode('ReadGeo2')
>>>
>>> n['file'].setValue('alembicFile.abc')
>>>
>>>
>>> However, when I set the file knob, I would get a popup dialog that
>>> would ask the user if they wanted to "Create all-in-one node" or
>>> "Create parents as separate nodes".
>>>
>>>
>>> Wishing to avoid this pop-up dialog, I then tried:
>>>
>>>
>>> nuke.createNode('ReadGeo2', 'file {alembicFile.abc}')
>>>
>>>
>>> This would, indeed avoid the dialog... but it seems the dialog is
>>> essential, as the ReadGeo node would not show all the nodes contained
>>> in my alembic file (it would only show one of four objects in a
>>> hierarchical structure).
>>>
>>>
>>> So... does anyone know what exactly this popup dialog is doing, or how
>>> to recreate it's effects without requiring user interaction?
>>>
>>>
>>> Thanks,
>>> - Paul
>>>
>>>
>>> _______________________________________________
>>> Nuke-python mailing list
>>> [email protected], http://forums.thefoundry.co.uk/
>>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>>
>>
>>
>> _______________________________________________
>> Nuke-python mailing list
>> [email protected], http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>>
>
--
ben dickson
2D TD | [email protected]
rising sun pictures | www.rsp.com.au
_______________________________________________
Nuke-python mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python