## ChainRoot.AddBone

### Description

Adds a ChainBone element at the end of this chain.

### C# Syntax

    ChainBone ChainRoot.AddBone( Object in_pNewEffPos, siChainBoneType in_boneType, String in_bstrName );

### Scripting Syntax

    oReturn = ChainRoot.AddBone( NewEffectorPosition, [BoneType], [Name] );

### Return Value

ChainBone

### Parameters

Parameter | Type | Description
--- | --- | ---
NewEffectorPosition | Either a SIVector3 or an array containing x,y,z values. | The new effector position.
BoneType | siChainBoneType | The type of bone to add. Default Value: siChainBonePin
Name | String | Name of new chain

### Examples

#### VBScript Example

    'VBScript example
    'effector for first bone
    set oEff1 = XSIMath.CreateVector3()
    oEff1.x = 3
    oEff1.y = 3
    oEff1.z = 3
    'effector for second bone
    set oEff2 = XSIMath.CreateVector3()
    oEff2.x = 6
    oEff2.y = 0
    oEff2.z = 0
    'construct skeleton
    set oRoot = ActiveProject.ActiveScene.Root
    set oChain = oRoot.Add3dChain()
    set oBone1 = oChain.AddBone(oEff1, siChainBonePin, "TheFirstBone")
    set oBone2 = oChain.AddBone(oEff2, siChainBoneBallJoint)