Your Ad Here

SIObject

Object Hierarchy | Related C++ Class: SIObject

Introduced

1.0

Description

SIObject exposes properties and methods that are supported by practically every object in the XSI Object Model, such as the name of the object, its type and parent.

Some very basic XSI 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


SOFTIMAGE|XSI v6.01     

Return to Softimage XSI Index


Your Ad Here