API Guide > Manipulators >

# What is a manipulator?

A manipulator is a node that draws itself using 3D graphical elements that respond to user events. Manipulators translate the events into values which are used to modify attribute values of other nodes in a scene. The attribute values are modified directly by the manipulator and not through the standard plug and connection mechanism used by other dependency graph nodes.

You invoke manipulators through the Show Manipulator Tool or a user-defined context. Manipulators exist in the DAG as subclasses of transform nodes, but they only exist while the Show Manipulator Tool or context is active, and the object that they correspond to is selected. Unlike transforms, they are not visible in the Hypergraph or Outliner, and they are not added to the Maya selection list. Additionally, their attributes are not accessible from MEL or the attribute editor and they are not written to file.

Manipulators are designed to operate on data types, ranging from integer and floating point values to matrix data and can operate on one or more attribute values at the same time. Maya defines a set of simple manipulators, called base manipulators. These operate on a range of data types from a single boolean, integer, or floating point value, to vectors of floating point values of different lengths.

More complex manipulators, called container manipulators, can be designed by combining one or more base manipulators. In the API, you construct a manipulator by creating a container manipulator and adding one or more base manipulators to it. The new manipulator can be invokes either through the Show Manipulator Tool or through a user-defined context.