## ClipContainer

Object Hierarchy | Related C++ Class: ClipContainer

### Inheritance

SIObject

ProjectItem

Clip

ClipContainer

### Introduced

v4.0

### Description

The ClipContainer object can represent either the Mixer or a compound clip. Both can contain other Clips, Tracks and Transitions.
This object provides access to the basic elements of the mixer: clips, tracks, transitions, and ClipRelations.
You can create a compound clip with the CreateCompound command.

### Methods

AddCustomOp | AddICEAttribute | AddProperty | AddProperty2
AddRelation | AddScriptedOp | AddScriptedOpFromFile | AnimatedParameters2
BelongsTo | EvaluateAt | GetICEAttributeFromName | IsA
IsAnimated2 | IsClassOf | IsEqualTo | IsKindOf
IsLocked | IsSelected | LockOwners | RemoveICEAttribute
SetAsSelected | SetCapabilityFlag | SetLock | TaggedParameters
UnSetLock |  |  |

### Properties

Application | BranchFlag | Capabilities | Categories
Clips | Effect | EvaluationID | Families
FullName | Help | HierarchicalEvaluationID | ICEAttributes
LockLevel | LockMasters | LockType | MappedItems
Model | Name | NestedObjects | NestedRelations
ObjectID | Origin | OriginPath | Owners
PPGLayout | Parameters | Parent | Parent3DObject
Properties | Relations | Selected | Source
TimeControl | Tracks | Transitions | Type

### Examples

#### Python Example

    #
    # This example demonstrates how to create a compound clip from scripting.
    # It also shows that when retrieving clips from the ClipContainer it only
    # returns clips that are on tracks nested directly under it.
    #
    Application.NewScene( "", False )
    oRoot = Application.ActiveSceneRoot
    oCube = oRoot.AddGeometry( "Cube", "MeshSurface")
    # Creating the first animation source
    sParams = "cube.kine.local.posx,cube.kine.local.posy,cube.kine.local.posz"
    oSource = Application.StoreAction(oRoot, sParams, 1, "StoredStaticPose", 1, 1, 5, 0, 0)
    # Creating the first clip
    oClip = Application.AddClip(oRoot, oSource)
    Application.LogMessage("First created clip " + oClip.FullName )
    oCube.Parameters("posx").Value  =  3.0
    # Creating the second animation source
    oSource2 = Application.StoreAction(oRoot, sParams, 1, "StoredStaticPose", 1, 7, 9, 0, 0)
    # Creating the second clip
    oClip2 = Application.AddClip(oRoot, oSource2)
    Application.LogMessage("Second created clip " + oClip2.FullName)
    def PrintClips(oClipCollection):
            "This function print the clip names contained in a clip collection"
            for i in range(oClipCollection.Count):
                    Application.LogMessage("Clip " +  oClipCollection(i).FullName)
    Application.LogMessage(PrintClips.__doc__)
    oMixer = oRoot.Mixer
    Application.LogMessage("List of clips retrieved from the container")
    PrintClips(oMixer.Clips)
    # Creating a compound clip from the clips created earlier
    myClips = [oClip, oClip2]
    oCompound = Application.CreateCompound(oRoot, myClips)
    Application.LogMessage("Compound clip " + oCompound.FullName )
    Application.LogMessage("List of clips retrieved from the compound")
    PrintClips(oCompound.Clips)
    # Now retrieving once again the clips from under the mixer.
    # This should only return the CompoundClip.
    Application.LogMessage("List of clips retrieved from the mixer after the creation of the compound");
    PrintClips(oMixer.Clips)
    # Output of above script:
    #INFO : First created clip Mixer.Mixer_Anim_Track.StoredStaticPose_Clip
    #
    #INFO : Second created clip Mixer.Mixer_Anim_Track1.StoredStaticPose1_Clip
    #INFO : This function print the clip names contained in a clip collection
    #INFO : List of clips retrieved from the container
    #INFO : Clip Mixer.Mixer_Anim_Track.StoredStaticPose_Clip
    #INFO : Clip Mixer.Mixer_Anim_Track1.StoredStaticPose1_Clip
    #
    #INFO : Compound clip Mixer.Mixer_Anim_Track.CompoundAction_Clip
    #INFO : List of clips retrieved from the compound
    #INFO : Clip Mixer.Mixer_Anim_Track.CompoundAction_Clip.Mixer_Anim_Track3.StoredStaticPose_Clip
    #INFO : Clip Mixer.Mixer_Anim_Track.CompoundAction_Clip.Mixer_Anim_Track4.StoredStaticPose1_Clip
    #INFO : List of clips retrieved from the mixer after the creation of the compound
    #INFO : Clip Mixer.Mixer_Anim_Track.CompoundAction_Clip

### See Also

CreateCompound Clip Model.Mixer Track Transition EqualizeAction