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

Reply via email to