Expressions in a general sense are mathematical formulas that combine numbers, variables, operators, functions and other expressions, do not contain an equal sign (=), and evaluate to a numerical or boolean value, fcurve, or graph.
Expressions in Softimage are a type of DataSource that can be applied to a Parameter or Parameter to drive its value (animate it). At its core is the expression definition, which contains a mathematical formula (an expression in the general sense) stored in a string. Expression definitions can be constructed from the set of functions, operators, variables, and constants available from the Expression Reference. For example, to link object A's Y rotation to object B's X translation, you would set an expression on the A.kine.local.roty parameter using this expression definition:
For a complete listing of all functions and tokens available to use as part of your expression definition, see Expression Reference.
In the UI the animation expression appears as a a special Expression operator nested under its owner's parameter node in the explorer. It acts like a special kind of property which can be inspected and contains a set of parameters which contain data related to the expression (for example, the expression definition is contained in the Definition parameter).
From the perspective of the SDK, an Expression or Expression object is a kind of a stunted Operator or Operator object. You can access the set of parameters affecting the driven parameters using the Operator.InputPorts or Operator::GetInputPorts property, but port groups are not fully supported.
Special Parameters on the Expression Property
Parameters driven by expressions have four extra parameters nested under the Expression or Expression object which are accessible by iterating over the Expression's ParameterCollection or ParameterCollection. These parameters contain this information:
Depending on what kind of expression is controlling the parameter, there may also be other parameters that appear. If the expression defines a linked parameter, you will have access to an FCurve or FCurve via the Parameter.Source or Parameter::GetSource property. For multi-linked parameters, the Interpolation Property or Property is available instead. For more information, see Expression Reference.