 Related help topics:
 Related help topics: #include <MFnContainerNode.h>
container function set
MFnContainerNode is the function set for creating, querying and editing containers.
Maya uses container nodes to bundle sets of related nodes together with a published attribute list that defines the primary interface to those nodes. This class allows you to query information about container nodes in the Maya scene.
 Examples:
 Examples:  Inheritance diagram for MFnContainerNode:
 Inheritance diagram for MFnContainerNode:| Public Types | |
| enum | MPublishNodeType { kParentAnchor, kChildAnchor, kGeneric } | 
| Specify which type of published node.  More... | |
|  Public Types inherited from MFnDependencyNode | |
| enum | MAttrClass { kLocalDynamicAttr = 1, kNormalAttr, kExtensionAttr, kInvalidAttr } | 
| Specifies the scope of the attribute.  More... | |
| enum | MdgTimerState { kTimerOff, kTimerOn, kTimerUninitialized, kTimerInvalidState } | 
| Possible states for the node's timer.  More... | |
| enum | MdgTimerMetric { kTimerMetric_callback, kTimerMetric_compute, kTimerMetric_dirty, kTimerMetric_draw, kTimerMetric_fetch, kTimerMetric_callbackViaAPI, kTimerMetric_callbackNotViaAPI, kTimerMetric_computeDuringCallback, kTimerMetric_computeNotDuringCallback, kTimerMetrics } | 
| The different timer metrics which can be queried.  More... | |
| enum | MdgTimerType { kTimerType_self, kTimerType_inclusive, kTimerType_count, kTimerTypes } | 
| The types of timers which can be queried.  More... | |
| Public Member Functions | |
| virtual MFn::Type | type () const | 
| Function set type.  More... | |
| virtual | ~MFnContainerNode () | 
| Destructor. | |
| MFnContainerNode () | |
| Default constructor. | |
| MFnContainerNode (MObject &object, MStatus *ReturnStatus=NULL) | |
| Constructor.  More... | |
| MStatus | getPublishedPlugs (MPlugArray &publishedPlugs, MStringArray &publishedNames) const | 
| Return two arrays: the first contains the plugs that have been published on this container.  More... | |
| MStatus | getPublishedNames (MStringArray &publishedNames, bool unboundOnly) const | 
| Return a list of published names on the container.  More... | |
| MStatus | getMembers (MObjectArray &members) const | 
| Return an array of the nodes included in this container.  More... | |
| MStatus | getSubcontainers (MObjectArray &members) const | 
| Return an array of the container nodes included in this container.  More... | |
| MStatus | getParentContainer (MObject &parent) const | 
| Return the parent container, if there is one.  More... | |
| MStatus | getRootTransform (MObject &root) const | 
| Return the root transform, if there is one.  More... | |
| MStatus | getPublishedNodes (MPublishNodeType type, MStringArray &publishedNames, MObjectArray &nodes) const | 
| Return a list of the published nodes of a given type.  More... | |
| MFnContainerNode (const MObject &object, MStatus *ReturnStatus=NULL) | |
| Constructor.  More... | |
|  Public Member Functions inherited from MFnDependencyNode | |
| virtual | ~MFnDependencyNode () | 
| Destructor. | |
| MFnDependencyNode () | |
| Default constructor. | |
| MFnDependencyNode (MObject &object, MStatus *ReturnStatus=NULL) | |
| Constructor.  More... | |
| MObject | create (const MTypeId &typeId, MStatus *ReturnStatus=NULL) | 
| Creates a new dependency node with the given type tag.  More... | |
| MObject | create (const MTypeId &typeId, const MString &name, MStatus *ReturnStatus=NULL) | 
| Creates a new dependency node with the given type tag.  More... | |
| MObject | create (const MString &type, MStatus *ReturnStatus=NULL) | 
| Creates a new dependency node with the given type.  More... | |
| MObject | create (const MString &type, const MString &name, MStatus *ReturnStatus=NULL) | 
| Creates a new dependency node with the given type.  More... | |
| MTypeId | typeId (MStatus *ReturnStatus=NULL) const | 
| Returns the type id of this node.  More... | |
| MString | typeName (MStatus *ReturnStatus=NULL) const | 
| Returns the type name of this node.  More... | |
| MString | name (MStatus *ReturnStatus=NULL) const | 
| Returns the name of this node.  More... | |
| MString | pluginName (MStatus *ReturnStatus=NULL) const | 
| Returns the name of the plug-in this MFnDependendencyNode was defined in.  More... | |
| MString | setName (const MString &name, bool createNamespace=false, MStatus *ReturnStatus=NULL) | 
| Sets the name of this node.  More... | |
| MUuid | uuid (MStatus *ReturnStatus=NULL) const | 
| Returns the node's UUID.  More... | |
| void | setUuid (const MUuid &uuid, MStatus *ReturnStatus=NULL) | 
| Sets the node's UUID.  More... | |
| MStatus | getConnections (MPlugArray &array) const | 
| Get all of the current connections to this node as an array of plugs.  More... | |
| unsigned int | attributeCount (MStatus *ReturnStatus=NULL) const | 
| Returns the number of attributes that this node has.  More... | |
| MObject | attribute (unsigned int index, MStatus *ReturnStatus=NULL) const | 
| Finds the attribute of this node at the given index.  More... | |
| MObject | reorderedAttribute (unsigned int index, MStatus *ReturnStatus=NULL) const | 
| Some nodes, such as the various animCurve nodes, require that their attributes be set in a specific order for proper operation.  More... | |
| MObject | attribute (const MString &attrName, MStatus *ReturnStatus=NULL) const | 
| Finds the attribute of this node that has the given name.  More... | |
| MAttrClass | attributeClass (const MObject &attr, MStatus *ReturnStatus=NULL) const | 
| Returns the class (normal, dynamic, extension) of the specified attribute.  More... | |
| MStatus | getAffectedAttributes (const MObject &attr, MObjectArray &affectedAttributes) const | 
| Returns an array of attributes that are affected by the attribute passed in.  More... | |
| MStatus | getAffectedByAttributes (const MObject &attr, MObjectArray &affectedByAttributes) const | 
| Returns an array of attributes that affect the attribute passed in, attr.  More... | |
| MPlug | findPlug (const MObject &attr, bool wantNetworkedPlug, MStatus *ReturnStatus=NULL) const | 
| Attempt to find a plug for the given attribute.  More... | |
| MPlug | findPlug (const MString &attrName, bool wantNetworkedPlug, MStatus *ReturnStatus=NULL) const | 
| Attempt to find a plug for the given attribute.  More... | |
| MPlug | findPlug (const MObject &attr, MStatus *ReturnStatus=NULL) const | 
| This method is obsolete.  More... | |
| MPlug | findPlug (const MString &attrName, MStatus *ReturnStatus=NULL) const | 
| This method is obsolete.  More... | |
| MStatus | addAttribute (const MObject &attr) | 
| Add a new dynamic attibute to this node.  More... | |
| MStatus | removeAttribute (const MObject &attr) | 
| Remove a dynamic attribute from a node.  More... | |
| MPxNode * | userNode (MStatus *ReturnStatus=NULL) const | 
| If the function set's node is a plug-in node, then this method will extract the MPxNode pointer from it.  More... | |
| bool | isFromReferencedFile (MStatus *ReturnStatus=NULL) const | 
| Indicates whether or not this node came from a referenced file.  More... | |
| bool | isShared (MStatus *ReturnStatus=NULL) const | 
| Indicates whether or not this node is shared.  More... | |
| bool | isTrackingEdits (MStatus *ReturnStatus=NULL) const | 
| Returns whether or not edits on the given node are being tracked by the generalized edit system.  More... | |
| bool | hasUniqueName (MStatus *ReturnStatus=NULL) const | 
| Indicates whether or not this node's name is unique within the scene.  More... | |
| MString | parentNamespace (MStatus *ReturnStatus=NULL) const | 
| Returns the name of the namespace in which this node resides.  More... | |
| bool | isLocked (MStatus *ReturnStatus=NULL) const | 
| Indicates whether or not this node is locked.  More... | |
| MStatus | setLocked (bool locked) | 
| Locks or unlocks this node.  More... | |
| bool | isNewAttribute (const MObject &attr, MStatus *ReturnStatus=NULL) const | 
| Indicates whether or not the specified attribute was added to this node within the current scene.  More... | |
| MStatus | setFlag (unsigned int flag, bool state) | 
| Sets the state of the specified flag for the node.  More... | |
| bool | isFlagSet (unsigned int flag, MStatus *ReturnStatus=NULL) const | 
| Retrieves the current state of the specified flag for a node.  More... | |
| bool | isDefaultNode (MStatus *ReturnStatus=NULL) const | 
| Returns true if the node is a default node.  More... | |
| MStatus | setDoNotWrite (bool flag) | 
| Use this method to mark the "do not write" state of this node.  More... | |
| bool | canBeWritten (MStatus *ReturnStatus=NULL) const | 
| Returns the do not write state of the node.  More... | |
| bool | hasAttribute (const MString &name, MStatus *ReturnStatus=NULL) const | 
| Returns true if the node already has an attribute with the given name.  More... | |
| MObject | getAliasAttr (bool force, MStatus *ReturnStatus=NULL) | 
| Returns the node's alias attribute, which is a special attribute used to store information about the node's attribute aliases.  More... | |
| bool | setAlias (const MString &alias, const MString &name, const MPlug &plug, bool add=true, MStatus *ReturnStatus=NULL) | 
| Sets or removes an alias (i.e.  More... | |
| bool | findAlias (const MString &alias, MObject &attrObj, MStatus *ReturnStatus=NULL) const | 
| Retrieves the attribute with the given alias.  More... | |
| bool | getAliasList (MStringArray &strArray, MStatus *ReturnStatus=NULL) | 
| Returns a list of all attribute aliases for this node.  More... | |
| MString | plugsAlias (const MPlug &plug, MStatus *ReturnStatus=NULL) | 
| Returns the alias for the plug's attribute or the empty string if that attribute has no alias.  More... | |
| MStatus | setIcon (const MString &filename) | 
| Associates a custom icon with the node for display in the Maya UI.  More... | |
| MString | icon (MStatus *ReturnStatus=NULL) const | 
| Returns the custom icon filename associated with the node.  More... | |
| MStatus | getExternalContent (MExternalContentInfoTable &table) const | 
| Returns the external content (files) that this node depends on.  More... | |
| MStatus | addExternalContentForFileAttr (MExternalContentInfoTable &table, const MObject &attr) const | 
| Adds content info to the specified table from a file path attribute.  More... | |
| MStatus | setExternalContentForFileAttr (const MObject &attr, const MExternalContentLocationTable &table) | 
| Sets content info in the specified attribute from the table.  More... | |
| MStatus | setExternalContent (const MExternalContentLocationTable &table) | 
| Changes the location of external content.  More... | |
| MString | setName (const MString &name, MStatus *ReturnStatus) | 
| OBSOLETE FUNCTION, NO SCRIPT SUPPORT.  More... | |
| MFnDependencyNode (const MObject &object, MStatus *ReturnStatus=NULL) | |
| NO SCRIPT SUPPORT.  More... | |
| bool | getPlugsAlias (const MPlug &plug, MString &aliasName, MStatus *ReturnStatus=NULL) | 
| NO SCRIPT SUPPORT.  More... | |
| virtual const adsk::Data::Associations * | metadata (MStatus *ReturnStatus=NULL) const | 
| This method is not available in Python.  More... | |
| virtual MStatus | setMetadata (const adsk::Data::Associations &) | 
| This method is not available in Python.  More... | |
| virtual MStatus | deleteMetadata () | 
| This method is not available in Python.  More... | |
| virtual MStatus | validateMetadata (MString &errors) const | 
| This method is not available in Python.  More... | |
| MStatus | dgTimerOn () | 
| Indicates that this node should collect DG timing data whenever DG timing is enabled.  More... | |
| MStatus | dgTimerOff () | 
| Indicates that this node should no longer collect DG timing data when DG timing is enabled.  More... | |
| MdgTimerState | dgTimerQueryState (MStatus *ReturnStatus=NULL) | 
| The function returns the current on/off state of the node's timer.  More... | |
| MStatus | dgTimerReset () | 
| The function resets the dependency graph timers and counters for this node to zero.  More... | |
| double | dgTimer (const MdgTimerMetric timerMetric, const MdgTimerType timerType, MStatus *ReturnStatus=NULL) const | 
| The function returns the specified timer value for the current node.  More... | |
| MStatus | dgCallbacks (const MdgTimerType type, MStringArray &callbackName, MDoubleArray &value) | 
| Node callbacks that occur when timing is enabled get logged with the node and can be queried via this method.  More... | |
| MStatus | dgCallbackIds (const MdgTimerType type, const MString &callbackName, MCallbackIdArray &callbackId, MDoubleArray &value) | 
| This method provides a further breakdown of the per-callback time returned via dgCallbacks() by returning the data on a per-callbackId basis.  More... | |
| MStatus | addAttribute (const MObject &attr, MAttrClass type) | 
| This method is obsolete.  More... | |
| MStatus | removeAttribute (const MObject &attr, MAttrClass type) | 
| This method is obsolete.  More... | |
|  Public Member Functions inherited from MFnBase | |
| virtual | ~MFnBase () | 
| Class Destructor.  More... | |
| bool | hasObj (MFn::Type) const | 
| Determines whether or not the Function Set is compatible with the specified Maya Object within the API RTTI system.  More... | |
| bool | hasObj (const MObject &) const | 
| Determines whether or not the Function Set is compatible with the specified Maya Object within the API RTTI system.  More... | |
| MObject | object (MStatus *ReturnStatus=NULL) const | 
| Returns the MObject that is attached to the Function Set.  More... | |
| virtual MStatus | setObject (MObject &object) | 
| Attaches the Function Set to the specified Maya Object.  More... | |
| virtual MStatus | setObject (const MObject &object) | 
| NO SCRIPT SUPPORT.  More... | |
| Protected Member Functions | |
| virtual const char * | className () const | 
| Class name.  More... | |
| Additional Inherited Members | |
|  Static Public Member Functions inherited from MFnDependencyNode | |
| static MString | classification (const MString &nodeTypeName) | 
| Retrieves the classification string for a node type.  More... | |
| static unsigned int | allocateFlag (const MString pluginName, MStatus *ReturnStatus=NULL) | 
| Allocates a node flag for sole use by the caller.  More... | |
| static MStatus | deallocateFlag (const MString pluginName, unsigned int flag) | 
| Deallocates a node flag which was previously allocated by a call to allocateFlag.  More... | |
| static MStatus | deallocateAllFlags (const MString pluginName) | 
| Deallocates all of the node flags which are currently allocated to the specified plugin.  More... | |
| static void | enableDGTiming (bool enable) | 
| Globally enables or disables the DG node timing mechanism.  More... | |
|  Static Public Member Functions inherited from MFnBase | |
| static const char * | className () | 
| Returns the name of this class.  More... | |
| enum MPublishNodeType | 
| MFnContainerNode | ( | MObject & | object, | 
| MStatus * | ReturnStatus = NULL | ||
| ) | 
Constructor.
Class constructor that initializes the function set to the given MObject.
| [in] | object | The MObject to attach the function set to | 
| [out] | ReturnStatus | the return status | 
| MFnContainerNode | ( | const MObject & | object, | 
| MStatus * | ReturnStatus = NULL | ||
| ) | 
Constructor.
Class constructor that initializes the function set to the given MObject.
| [in] | object | The MObject to attach the function set to | 
| [out] | ReturnStatus | the return status | 
| 
 | virtual | 
Function set type.
Return the class type : MFn::kContainerBase.
Reimplemented from MFnDependencyNode.
| 
 | protectedvirtual | 
| MStatus getPublishedPlugs | ( | MPlugArray & | publishedPlugs, | 
| MStringArray & | publishedNames | ||
| ) | const | 
Return two arrays: the first contains the plugs that have been published on this container.
The second contains that published names for those plugs. There is a one-to-one correspondence between the plugs in the first array and the strings in the second.
| [out] | publishedPlugs | array to store the result plugs | 
| [out] | publishedNames | array to store the result names | 
| MStatus getPublishedNames | ( | MStringArray & | publishedNames, | 
| bool | unboundOnly | ||
| ) | const | 
Return a list of published names on the container.
Depending on the arguments, either all published names or only unbound published names will be returned.
| [out] | publishedNames | array to store the result names | 
| [in] | unboundOnly | if true, only return names that are not associated with a plug | 
| MStatus getMembers | ( | MObjectArray & | members | ) | const | 
Return an array of the nodes included in this container.
| [in] | members | array to store the result nodes | 
| MStatus getSubcontainers | ( | MObjectArray & | subcontainers | ) | const | 
Return an array of the container nodes included in this container.
| [out] | subcontainers | array to store the result nodes | 
Return the parent container, if there is one.
Otherwise return an empty MObject
| [out] | parent | parent container, if found | 
Return the root transform, if there is one.
Otherwise return an empty MObject.
| [out] | root | root transform, if found | 
| MStatus getPublishedNodes | ( | MPublishNodeType | type, | 
| MStringArray & | publishedNames, | ||
| MObjectArray & | nodes | ||
| ) | const | 
Return a list of the published nodes of a given type.
For any names that have assigned nodes, return the node at the corresponding array index. For any names that do not have assigned nodes, a NULL MObject will be at the corresponding array index.
| [in] | type | published node type of interest | 
| [out] | publishedNames | published names of the specified type | 
| [out] | nodes | corresponding published node or a NULL MObject |