## SetSelFilter

### Introduced

v1.0

### Description

Sets the selection filter and activates the selection tool.

### Scripting Syntax

    SetSelFilter( [SelFilter] );

### Parameters

Parameter | Type | Description
--- | --- | ---
SelFilter | FilterConstant | Selection filter that specifies what type of elements to select. Default Value: Current selection filter

### Examples

#### 1. VBScript Example

    '
    ' This example demonstrates how to set the Edge filter
    ' with the SetSelFilter command using the string value.
    '
    SetSelFilter "Edge"
    ' Alternatively you could use the matching string constant:
    SetSelFilter siEdgeFilter

#### 2. JScript Example

    //
    // This example demonstrates how to set the Polygon filter
    // with the SetSelFilter command using the string constant.
    //
    SetSelFilter(siPolygonFilter);
    // Alternatively you could use the matching string value:
    SetSelFilter("Polygon");

#### 3. Python Example

    #
    # This example demonstrates how to set the Polygon filter
    # with the SetSelFilter command using the string constant.
    #
    from win32com.client import constants
    Application.SetSelFilter(constants.siCameraFilter)
    # Alternatively you could use the matching string value:
    Application.SetSelFilter("Camera")

#### 4. C# Example

    //
    // This example demonstrates how to use the SetSelFilter command in C# to change
    // the selection filter to limit selection to scene objects. Depending on the
    // value of the inUseString input argument, either the string itself (true) or
    // the string constant representing the string (false) will be used to call SetSelFilter.
    //
    // Tip: You need to compile the generated code before you can load the plug-in.
    // After you compile the plug-in, you can load it by clicking Update All in the Plugin Manager.
    //
    using System;
    using Softimage.XSIOM; // Softimage object model
    using Softimage.XSIMath;
    using Softimage.XSIUtil;
    public class Base
    {
            CXSIApplicationClass m_xsi;
            CXSIFactoryClass m_fact;
            CXSIUtilsClass m_utils;
            protected Base()
            {
                    m_xsi = new CXSIApplicationClass();
                    m_fact = new CXSIFactoryClass();
                    m_utils = new CXSIUtilsClass();
            }
            protected XSIApplication GetXSI()
            {
                    return m_xsi;
            }
    }
    public class XSIPlugin : Base
    {
            public bool Load( PluginRegistrar in_reg )
            {
                    in_reg.Author = "SDK Documentation";
                    in_reg.Name = "SetSceneObjectSelFilterPlugin";
                    in_reg.Major = 1;
                    in_reg.Minor = 0;
                    in_reg.RegisterCommand("SetSceneObjectSelFilter", "SetSceneObjectSelFilter");
                    return true;
            }
            public bool Unload( PluginRegistrar in_reg )
            {
                    String strPluginName = null;
                    strPluginName = in_reg.Name;
                    return true;
            }
    }
    public class SetSceneObjectSelFilter : Base
    {
            public bool Init( Context in_ctxt )
            {
                    Command oCmd = null;
                    oCmd = (Command)in_ctxt.Source;
                    oCmd.Description = "Demonstrates how to set the Selection Filter in Softimage to Scene Object";
                    oCmd.Tooltip = "Set Selection Filter to SceneObject";
                    oCmd.SetFlag((int)siCommandCapabilities.siCannotBeUsedInBatch, true);
                    oCmd.ReturnValue = false;
                    ArgumentCollection oArgs = oCmd.Arguments;
                    oArgs.Add("inUseString", siArgumentFlags.siArgumentInput, false, siVariantType.siBool);
                    return true;
            }
            // In C# you have to use the XSIApplication.ExecuteCommand method to invoke
            // a command, so we are just implementing a command stub to simplify the call
            // in the Execute function.
            public void SetSelFilter(String SelFilter)
            {
                    XSIApplication app = this.GetXSI();
                    // The SetSelFilter command takes only one argument: 'SelFilter', which
                    // can be either the siObjectFilter string constant or the string to
                    // which it refers: 'sceneobject'
                    object[] oCmdArgs = new object[1];
                    oCmdArgs[0] = SelFilter;
                    app.ExecuteCommand("SetSelFilter", oCmdArgs);
            }
            public bool Execute(Context in_ctxt)
            {
                    Command oCmd = null;
                    oCmd = (Command)in_ctxt.Source;
                    // Set the selection filter to scene object. Whether we use the string
                    // constant or the actual string depends on the value of inUseString.
                    ArgumentCollection oArgs = oCmd.Arguments;
                    if ((bool)oArgs[0].Value == true)
                    {
                            SetSelFilter("SceneObject");
                    }
                    else
                    {
                            // All string constants are members of the StringModule
                            SetSelFilter(StringModule.siObjectFilter);
                    }
                    return true;
            }
    }

### See Also

ActivatePolygonSelTool ActivatePolygonSelToolWithNoObjStateChange ActivateVertexSelTool ActivateVertexSelToolWithNoObjStateChange ActivateSampledPointSelTool ActivateSampledPointSelToolWithNoObjStateChange ActivateObjectSelTool ActivateObjectSelToolWithNoObjStateChange SelectObjectFilter SelectVertexFilter SelectSampledPointFilter SelectPolygonFilter SelectEdgeFilter