## Parameter.Source

### Description

Returns a parameter's DataSource (the object that is driving the parameter's value, such as a Shader or an ActionSource). If no data source is connected then Nothing is returned. If a parameter has both ActionSource and a DataSource, it's the DataSource that is returned. This happens when an animated parameter is connected to a source.
Note: You can Get any type of data source (ActionSource, Constraint, FCurve, ImageClip, Operator, Shader, StaticSource), but you can only Set the shader type of data source. Shader parameters support setting the source to another shader. Note: Shader Compounds and Multi-Output Shaders have multiple output ports that require the Source to be identified by an Output Parameter. In such case, GetSource will return a Parameter and you can access the connected shader by calling Parameter.GetParent.
Tip: In VBScript it is possible to remove a DataSource by assigning "Nothing" to the Source property. In JScript and Python the same effect can be achieved by calling Parameter.Disconnect.
In the case of a ProxyParameter, the source of the master parameter is accessible from this property. For example, if a parameter has an fcurve on it, and there is a proxy parameter to that parameter, then the Source property of both parameter objects will return the same fcurve object.

### C# Syntax

    // get accessor

    DataSource rtn = Parameter.Source;

    // set accessor

    Parameter.Source = DataSource;

### Examples

#### 1. VBScript Example

    '

    ' This example illustrates how to add an FCurve to a parameter and access it afterwards

    ' using the Parameter.Source property.

    '

    NewScene , false

    dim values

    set oCube = Application.ActiveSceneRoot.AddGeometry( "Cube","MeshSurface" )

    arrValues = Array( 0.00, 5.00, 1.00, 6.00, 2.00, 7.00, 3.00, 8.00, 4.00, 9.00, 5.00, 10.00 )

    oCube.posx.AddFCurve2 arrValues

    set oSource = oCube.posx.Source

    Application.LogMessage "The source is : " & TypeName( oSource )

    ' Remove the animation

    set oCube.posx.Source = Nothing

    set oSource = oCube.posx.Source

    Application.LogMessage "The source is : " & TypeName( oSource )

    ' Expected result:

    'INFO : The source is : FCurve

    'INFO : The source is : Nothing

#### 2. JScript Example

    /*

    	See Shader.GetShaderParameterTargets for an example demonstrating how to traverse

    	a shader tree from left to right using the Source property and right to left using the

    	GetShaderParameterTargets method.

    */

### See Also

Parameter.Sources FCurve Parameter.AddFCurve Parameter.AddFCurve2 Parameter.Disconnect ProxyParameter.MasterParameter Expression Constraint Operator Shader Shader.GetShaderParameterTargets