## SIObject

Object Hierarchy | Related C++ Class: SIObject

### Introduced

v1.0

### Description

SIObject exposes properties and methods that are supported by practically every object in the Softimage Object Model, such as the name of the object, its type and parent.
Some very basic Softimage objects do not support SIObject, for example GridData, SIVector3 and Image (see the Object Hierarchy for a complete list. For this reason some caution must be used to avoid assuming that all objects support SIObject.Name and SIObject.Type.

### Methods

IsClassOf | IsEqualTo |  |

### Properties

Application | Categories | FullName | Help
Name | NestedObjects | Origin | OriginPath
Parent | Type |  |

### Examples

#### 1. VBScript Example

    '

    '	This example outputs an object's properties

    '

    Option Explicit

    MAIN()

    sub main()

    	On Error Resume Next

    	' Create the scene

    	dim oObj

    	set oObj = ActiveProject.ActiveScene.Root.AddGeometry("Sphere", "NurbsSurface")

    	LogSIObject oObj

    end sub

    '------------------------------------------------------------------------------

    ' NAME:		LogSIObject

    '

    ' INPUT:

    '

    ' DESCRIPTION: logs SIObject properties

    '------------------------------------------------------------------------------

    sub LogSIObject(in_obj)

    	Application.LogMessage "Name: " & in_obj.Name

    	Application.LogMessage "Class: " & typename(in_obj)

    	Application.LogMessage "Type: " & in_obj.Type

    	Application.LogMessage "Fullname: " & in_obj.FullName

    	Application.LogMessage "Parent: " & in_obj.Parent.Name

    	Application.LogMessage "Application : " & in_obj.Application.Name

    	Application.LogMessage "Is Equal To Parent ? " & in_obj.IsEqualTo(in_obj.Parent)

    	Application.LogMessage "Is Equal To Self ? " & in_obj.IsEqualTo(in_obj)

    end sub

#### 2. VBScript Example

    ' These objects all support SIObject

    Application.LogMessage IsSIObject( ActiveSceneRoot )

    Application.LogMessage IsSIObject( Dictionary.GetObject( "Camera" ) )

    Application.LogMessage IsSIObject( CreateObject( "XSI.Application" ) )

    Application.LogMessage IsSIObject( ActiveSceneRoot.AddNull() )

    ' A string cannot be accepted without conversion

    Application.LogMessage IsSIObject( "Camera" )

    ' XSICollection and GridData do not support SIObject

    Application.LogMessage IsSIObject( CreateObject( "XSI.Collection" ) )

    Application.LogMessage IsSIObject( XSIFactory.CreateGridData )

    function IsSIObject( in_obj )

    	' One way to test if an object supports

    	' SIObject is to call a method and see if

    	' there is a scripting error.

    	' Careful use of "on error resume next"

    	' prevents the entire script form halting

    	dim strFullName

    	on error resume next

    	strFullName = in_obj.Fullname

    	if ( err <> 0 ) then

    		IsSIObject = false

    	else

    		IsSIObject = true

    	end if

    	' Turn error checking back on

    	on error goto 0

    end function

    ' The above example logs the following results:

    'INFO : True

    'INFO : True

    'INFO : True

    'INFO : True

    'INFO : False

    'INFO : False

    'INFO : False