Hey Dave,

Thanks for the info. I'll have to weight the pros and cons if I want
to use this in our pipe or not. The grouping doesn't really seem to
work like I had hoped it would.

Cheers,
Shawn

On May 27, 2:21 am, David Moulder <da...@thirstydevil.co.uk> wrote:
> Compound attrs don't seem to be real attrs at all.  More like a
> grouping system for attributes.  So really all attributes are created
> at the root level.
> See below...
>
> -Dave
>
> import pymel.core as pCore
> Cube = pCore.PyNode("pCube1")
>
> # Compund Attrs are effectively null containers and NOT attributes per say.
> Cube.addAttr('CompoundLevel1', nc=1, at='compound')
> Cube.addAttr('CompoundLevel2', nc=1, at='compound')
> Cube.addAttr('CompoundLevel3', nc=1, at='compound')
>
> # Hence this returns False
> print Cube.hasAttr("CompoundLevel1")
> print Cube.hasAttr("CompoundLevel2")
> print Cube.hasAttr("CompoundLevel3")
>
> # Now add some real attributes
> Cube.addAttr("MessageA",  at='message', parent='CompoundLevel1')
> # Now query if the Compound exists...
> print Cube.hasAttr("CompoundLevel1")
> # >> True
>
> # But all attributes are really at the root level and compound
> # attrs are a fictional grouping mechanism
> print Cube.MessageA.outputs()
> # >> []
>
> # You can also access from the longName
> print Cube.CompoundLevel1.MessageA.outputs()
> # >> []
>
> # Lets see if there is an Error if we try to put a attr onto
> # the Cube with the same name but in a different compound level
> Cube.addAttr("MessageA",  at='message', parent='CompoundLevel2')
>
> # Warning: Name 'MessageA' of new attribute clashes with an existing
> attribute of node 'pCube1'. #
> # Error: Found no valid items to add the attribute to.
> # Traceback (most recent call last):
> #   File "<maya console>", line 1, in <module>
> #   File 
> "C:/ArtPipelines/App/Maya2011-x64/pymel/pymel\pymel\core\nodetypes.py",
> line 436, in addAttr
> #     return general.addAttr( unicode(self), **kwargs )
> #   File "C:/ArtPipelines/App/Maya2011-x64/pymel/pymel\pymel\core\general.py",
> line 619, in addAttr
> #     res = cmds.addAttr( *args, **kwargs )
> #   File 
> "C:/ArtPipelines/App/Maya2011-x64/pymel/pymel\pymel\internal\pmcmds.py",
> line 98, in wrappedCmd
> #     res = new_cmd(*new_args, **new_kwargs)
> # RuntimeError: Found no valid items to add the attribute to. #
>
>
>
> On Thu, May 27, 2010 at 12:33 AM, shawnpatapoff <shawnpatap...@gmail.com> 
> wrote:
> > Just to add to the discussing. I'm have some odd issues with nesting
> > attributes as in they don't seem to get created reliable.
>
> > c1 = polyCube()[0]
> > c1.addAttr('Anim',   nc=1, at='compound')
> > print c1.hasAttr('Anim')
> > #result False
> > c1.addAttr('Attr_A', nc=1 ,at='compound',parent='Anim')
> > print c1.hasAttr('Anim')
> > #result False
> > c1.addAttr('Attr_B', nc=1, at='compound', parent = 'Attr_A')
> > print c1.hasAttr('Anim')
> > #result False
> > c1.addAttr('Attr_C', at='message', parent='Attr_B')
> > print c1.hasAttr('Anim')
> > #result True
>
> > So the the entire structure doesn't exist until 'Attr_C' is added. Is
> > there something wrong in my logic?
>
> > Cheers,
> > Shawn
>
> > On May 25, 12:02 pm, shawnpatapoff <shawnpatap...@gmail.com> wrote:
> >> Hey David,
>
> >> Looks like compound is the way to go, a bit of a pain to manage but it
> >> does what I was looking for. And you can use '.message'
>
> >> Cheers,
> >> Shawn
>
> >> On May 25, 11:00 am, David Moulder <da...@thirstydevil.co.uk> wrote:
>
> >> > I think your after a compound attribute.  I'm not sure if a message
> >> > link can be a compound attribute tho.
>
> >> > FYI
>
> >> >http://www.rtrowbridge.com/blog/2009/03/python-api-compound-attribute/
>
> >> > -Dave
>
> >> > On Tue, May 25, 2010 at 5:37 PM, shawnpatapoff <shawnpatap...@gmail.com> 
> >> > wrote:
> >> > > Anyone know how to make sub attributes at all, or is it possible?
>
> >> > > What I'm trying to do is.
>
> >> > > object.myAttr.subAttr
>
> >> > > I'm using .message for my connections, not sure if it's even possible.
>
> >> > > Cheers,
> >> > > Shawn
>
> >> > > --
> >> > >http://groups.google.com/group/python_inside_maya
>
> >> > --
> >> > David Moulderhttp://www.google.com/profiles/squish3d
>
> >> > --http://groups.google.com/group/python_inside_maya
>
> > --
> >http://groups.google.com/group/python_inside_maya
>
> --
> David Moulderhttp://www.google.com/profiles/squish3d

-- 
http://groups.google.com/group/python_inside_maya

Reply via email to