SIObject.Categories

Introduced

v4.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.

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] );            
        } 
}