I have now made the parent property writeable in the RNA. http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53685
* It will perform a sanity check internally when setting, to avoid infinite recursion when setting a node as its own ancestor (i.e. the supposed parent frame is already attached to the child frame on some level). * It also checks for the Frame node type, which is currently the only node allowing attachment (in the future there may be more node types using this feature). * If the node was attached to another frame before it will be detached safely and then reattached to the new frame On Sun, Jan 6, 2013 at 10:00 PM, Bartek Skorupa (priv) <[email protected]> wrote: > I was dealing with this issue when working on "Nodes Efficiency Tools": > http://projects.blender.org/tracker/index.php?func=detail&aid=33543&group_id=153&atid=467 > In the current version I don't set parents, but I certainly will want to be > able to do it. > > The workaround I came up with is as follows: > > Say you have a node 'frame'. It has children. Say we have a list of them and > it's a list called 'children'. > Now we want some node outside this frame to be "parented" to it. (Let's call > it 'my_node') > What I'd do would be: > Remove 'frame', but first I'd store it's name, label and maybe some other > parameters, then select all of it's children (for node in children: > node.select = True), plus 'my_none' (my_node.select = True) and use > bpy.ops.node.join() operator. > This will create new FRAME node and all of the selected nodes will become its > children. Then you may set some previously stored parameters of removed > 'frame'. > When using operators for nodes you have to mind the context, so it will not > work from the console level or simple scripts run from text editor. > > This is however a workaround and I'd really appreciate if it was possible to > simply say node.parent = frame > > Bartek Skorupa > > www.bartekskorupa.com > > On 6 sty 2013, at 19:25, Fabio Russo <[email protected]> wrote: > >> Excellent! : D >> But this only allows me to read the relationship, if I instead want to set >> up the relationship? How do I? Parent is read only >> >> >> 2013/1/6 Lukas Tönne <[email protected]> >> >>> Nodes have a "parent" pointer that defines the hierarchy. When you >>> have a frame node called "frame", the list of attached nodes consists >>> of all nodes whose parent is "frame": >>> >>> node_tree = frame.id_data >>> children = [node for node in node_tree.nodes if node.parent == frame] >>> >>> On Sun, Jan 6, 2013 at 1:17 PM, Fabio Russo <[email protected]> wrote: >>>> I'm back with some more questions regarding the nodes! >>>> I'm trying to improve the addon Compositing Presets, so do not call me >>>> annoying :P >>>> My new question is how do I know which nodes are located above the frame >>>> node via API? >>>> >>>> Thank you very much, >>>> ruesp83 >>>> _______________________________________________ >>>> Bf-committers mailing list >>>> [email protected] >>>> http://lists.blender.org/mailman/listinfo/bf-committers >>> _______________________________________________ >>> Bf-committers mailing list >>> [email protected] >>> http://lists.blender.org/mailman/listinfo/bf-committers >>> >> _______________________________________________ >> Bf-committers mailing list >> [email protected] >> http://lists.blender.org/mailman/listinfo/bf-committers > > _______________________________________________ > Bf-committers mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-committers _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
