## 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)