Categories (SIObject)

Introduced

4.0

Description

Sets or returns the categories defined for this object. Categories are used to extend the categorization of objects. Categories of SPDL objects are initialized with the values of the Keyword field whereas the categories of custom objects (such as Filter and Command) can be set when plug-in items are registered with PluginRegistrar.

Categories are returned as as an Array of Strings. If no categories are specified, an empty array is returned.

Categories must be set in a comma-separated string. Use PluginRegistrar.Categories to set the categories for all plug-in items defined in a plug-in or use PluginItem.Categories to set the categories of a specific plug-in item. No other interfaces support the 'set' component of this property.

Note: For the deprecated (v1.0) style of creating commands, you can only set the categories by specifying one of the siCommandCategory enum values in the Category parameter of the XSIApplication.CreateCommand method.

C# Syntax

    // get accessor
    Object SIObject.get_Categories();

    // set accessor
    SIObject.set_Categories( String pArrayVal );

Examples

1. VBScript Example

    '
    '  This example shows how to get the categories of a SPDL object
    '
    set cone = ActiveSceneRoot.AddPrimitive( "cone" )
    cat = cone.Categories
    for i=LBound( cat, 1 ) to UBound( cat, 1 )
       LogMessage "category: " & cat(i)
    next

    'the example above will output the following:
    'INFO: category: General
    'INFO: category: Primitive
    'INFO: category: Modeling

2. VBScript Example

    '
    '  This example shows how to set the categories of a plug-in and specific plug-in items
    '
    Function XSILoadPlugin( in_reg )
       ' register plugin information
       in_reg.Author = "Softimage Co."
       in_reg.Name = "Mesh Filter plugin"
       in_reg.URL = "http://www.softimage.com"
       in_reg.Email = "webmaster@softimage.com"
       in_reg.Categories = "Mesh component filter"

       ' set the version number of this plugin
       in_reg.Major = 1
       in_reg.Minor = 0

       ' register filter plugin items

       set item = in_reg.RegisterFilter( "Border Edge", siFilterSubComponentEdge )
       item.Categories = "Mesh,Edge"

       set item = in_reg.RegisterFilter( "Triangle", siFilterSubComponentPolygon )
       item.Categories = "Mesh"

       set item = in_reg.RegisterFilter( "Quad", siFilterSubComponentPolygon )
       item.Categories = "Mesh"

       set item = in_reg.RegisterFilter( "N-gon", siFilterSubComponentPolygon )
       item.Categories = "Mesh"

       set item = in_reg.RegisterFilter( "Border Point", siFilterSubComponentPoint )
       item.Categories = "Point"

       set item = in_reg.RegisterFilter( "Polygon Island", siFilterSubComponentPolygon )
       item.Categories = "Mesh,Polygon"

       in_reg.RegisterFilter "Local Material", siFilterProperty

       XSILoadPlugin = true
    end Function

3. JScript Example

    /*
       This example shows how to get the plug-in items categories
    */

    var items = Application.Plugins("Mesh Filter plugin").Items;
    for (var i=0; i<items.Count; i++)
    {
       LogMessage( items(i).Name + " categories: " );
       var vba = new VBArray(items(i).Categories);
       var categories = vba.toArray();
       for (var j=0; j<categories.length; j++)
       {
           LogMessage( categories[j] );
       }
    }

Autodesk Softimage v7.5