## OutputPort.Value

### Description

This property is only available within the Update callback of a Operator. It is either set or read depending whether the output is a Parameter or an object.
When the operator OutputPort is connected to a Parameter, this property lets you set the value of the parameter. (Trying to change the value through Parameter.Value would have no effect).
When the operator OutputPort is connected to an object this property returns the SDK object corresponding to the output.
Note: In the case of an operator with multiple outputs, it is only correct to access this property on the currently evaluated output port.

### C# Syntax

    // get accessor
    Object rtn = OutputPort.Value;
    // set accessor
    OutputPort.Value = Object;

### Examples

#### JScript Example

    /*
            This example illustrates how to use the OutputPort.Value property within
            the context of the _Update function of a runtime scripted operator
    */
    NewScene( null, false );
    var oObject = Application.ActiveSceneRoot.AddGeometry( "Sphere", "MeshSurface" );
    apply_taper( oObject );
    // This is the _Update callback used for the 'MyTaper' runtime operator
    function MyTaper_Update( ctx, Out, InGeom )
    {
            // Get the taper factor.
            var dFactor = ctx.Parameters("Factor").Value
            // Get the array of point positions.
            var aPnts = InGeom.Value.Geometry.Points.PositionArray.toArray();
            // Taper
            for ( var i = 0; i < aPnts.length / 3; i++ )
            {
                    var dTaper = (1 - ( aPnts[1 + (i*3)] * dFactor ))
                    aPnts[0 + (i*3)] = aPnts[0 + (i*3)] * dTaper;
                    aPnts[1 + (i*3)] = aPnts[1 + (i*3)];
                    aPnts[2 + (i*3)] = aPnts[2 + (i*3)] * dTaper;
            }
            // Set the points by accessing the geometry via
            // the OutputPort.Value property
            Out.Value.Geometry.Points.PositionArray = aPnts;
    }
    // This function creates the 'MyTaper' operator on the fly and then connects it
    // immediately to the input object.
    function apply_taper( oObject )
    {
            var op = XSIFactory.CreateScriptedOp( "MyTaper", MyTaper_Update.toString(), "JScript" );
            // Define connections
            var ioport = op.AddIOPort( oObject.ActivePrimitive, "Geom" );
            // Define parameters
            var pdef = XSIFactory.CreateParamDef2( "Factor", siDouble, 0.5, 0, 1 );
            op.AddParameter( pdef );
            // Connect operator
            op.Connect( oObject );
    }

### See Also

Parameter.Value OperatorContext.OutputPort OperatorContext.OutputTarget