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