Select the node and run:
1 | m_list = getAllExtraAttributes() |
2 | print ( m_list ) |

01 | import maya.cmds as cmds |
02 | import maya.OpenMaya as OpenMaya |
03 |
04 | def getMObjectFromSelection(): |
05 | m_selectionList = OpenMaya.MSelectionList() |
06 | OpenMaya.MGlobal.getActiveSelectionList( m_selectionList ) |
07 | m_node = OpenMaya.MObject() |
08 | try : |
09 | m_selectionList.getDependNode( 0 , m_node ) |
10 | if ( m_node.isNull() ): return None |
11 | except : |
12 | return None |
13 | return m_node |
14 | |
15 | def getAllExtraAttributes(): |
16 | m_result = [] |
17 | m_obj = getMObjectFromSelection() |
18 | m_workMFnDep = OpenMaya.MFnDependencyNode() |
19 | m_workMDagMod = OpenMaya.MDagModifier() |
20 | if ( m_obj ): |
21 | m_objFn = OpenMaya.MFnDependencyNode() |
22 | m_objFn.setObject( m_obj ) # get function set from MObject |
23 | m_objRef = m_workMFnDep.create( m_objFn.typeName() ) # Create reference MObject of the given type |
24 | # -- get the list -- |
25 | m_result = getAttrListDifference( m_obj,m_objRef ) |
26 | # -- |
27 | m_workMDagMod.deleteNode( m_objRef ) # set node to delete |
28 | m_workMDagMod.doIt() # execute delete operation |
29 | return m_result |
30 | |
31 | def getAttrListDifference( m_obj, m_objRef ): |
32 | m_objFn = OpenMaya.MFnDependencyNode() |
33 | m_objRefFn = OpenMaya.MFnDependencyNode() |
34 | m_objFn.setObject( m_obj ) |
35 | m_objRefFn.setObject( m_objRef ) |
36 | m_result = [] |
37 | if ( m_objFn.attributeCount() > m_objRefFn.attributeCount() ): |
38 | for i in range ( m_objRefFn.attributeCount(), m_objFn.attributeCount() ): |
39 | m_atrr = m_objFn.attribute(i) |
40 | m_fnAttr = OpenMaya.MFnAttribute( m_atrr ) |
41 | m_result.append( m_fnAttr.name() ) |
42 | return m_result |
How you can use it:
1 | m_list = getAllExtraAttributes() |
2 | print ( m_list ) |