## ActionDelta

Object Hierarchy | Related C++ Class: ActionDelta

### Inheritance

###

SIObject

ActionDelta

### Introduced

v6.0

### Description

The ActionDelta object tracks changes made on a parameter that is part of a reference model. Every ActionDelta contains one or more ActionDeltaItems, each of which represents a single change, or modification, to a referenced parameter. Each ActionDelta object has a specific type (see siModificationDeltaType) and each ActionDeltaItem it contains is of the same type.
ActionDeltas are stored in the Delta (ActionDeltaCollection) and are accessible via the Delta.ActionDeltas property. To add a new ActionDelta to an existing Delta object, use the Delta.AddAction method.

### Methods

AddConstraintItem | AddExpressionItem | AddFCurveItem | AddStaticValueItem
IsClassOf | IsEqualTo | RemoveAllItems | RemoveItem

### Properties

Application | Categories | FullName | Help
Items | Name | NestedObjects | Origin
OriginPath | Parent | Type |

### Examples

#### 1. JScript Example

    /*

    	This example demonstrates how to add an ActionDeltaItem of type siModificationDeltaConstraint to a ActionDelta.

    */

    NewScene (null, false);

    // Create a reference model from a cube

    var oRoot = Application.ActiveProject.ActiveScene.Root;

    var oCube = oRoot.AddGeometry("Cube","MeshSurface");

    var emdlFileRefModel = XSIUtils.BuildPath(Application.InstallationPath(siProjectPath), "Models", "MyModel.emdl");

    CreateModelAndConvertToRef(oCube, emdlFileRefModel );

    // Create a cone

    var oCone = oRoot.AddGeometry("Cone","MeshSurface");

    Translate(oCone, 3.20, 0.00, 1.65, siRelative, siView, siObj, siXYZ, null, null, null, null, null, null, null, null, null, 0, null);

    // Add the Delta object

    var oDelta = AddDelta(oCube.Model);

    // Add an action of type siModificationDeltaConstraint

    var oActionDelta = oDelta.AddAction(siModificationDeltaConstraint);

    // Add the fcurve item

    var oActionDeltaItems = oActionDelta.AddConstraintItem("Position",oCube,oCone);

    for(var i=0; i<oActionDeltaItems.Count; i++) {

    	Application.LogMessage ( " The item " +  oActionDeltaItems(i).Name + " is active: " + oActionDeltaItems(i).Mute );

    }

    // Apply modification

    oDelta.Apply();

    // Output of above script:

    //INFO :  The item cube.kine.global.sclx is active: true

    //INFO :  The item cube.kine.global.scly is active: true

    //INFO :  The item cube.kine.global.sclz is active: true

    //INFO :  The item cube.kine.global.rotx is active: true

    //INFO :  The item cube.kine.global.roty is active: true

    //INFO :  The item cube.kine.global.rotz is active: true

    //INFO :  The item cube.kine.global.posx is active: false

    //INFO :  The item cube.kine.global.posy is active: false

    //INFO :  The item cube.kine.global.posz is active: false

#### 2. JScript Example

    /*

    	This example demonstrates how to get the type of the item.

    */

    NewScene (null, false);

    // Create a reference model from a cube

    var oRoot = Application.ActiveProject.ActiveScene.Root;

    var oCube = oRoot.AddGeometry("Cube","MeshSurface");

    var emdlFileRefModel = XSIUtils.BuildPath(Application.InstallationPath(siProjectPath), "Models", "MyModel.emdl");

    CreateModelAndConvertToRef(oCube, emdlFileRefModel );

    // Add the Delta object

    var oDelta = AddDelta(oCube.Model);

    // Add an action of type siModificationDeltaStaticValue

    var oDeltaAction = oDelta.AddAction(siModificationDeltaStaticValue)

    // Add a static value item

    oDeltaAction.AddStaticValueItem ( oCube + ".kine.global.posx",  10 );

    // Get the first ActionDeltaItem in the first ActionDelta

    var oActionDelta = oDelta.ActionDeltas(0);

    // Print the type

    Application.LogMessage(oActionDelta.Type);

    // Output of above script:

    //INFO : siModificationDeltaStaticValue