DataRepository.GetIdentifier

説明

オブジェクト識別子、モデル識別子、GUID、クラシック ID、または指定されたオブジェクトの SPDL ファイルを戻します。

C#構文

Object DataRepository.GetIdentifier( Object in_varObject, siObjectIdentifierType in_idType );

スクリプト構文

oString = DataRepository.GetIdentifier( Object, [Type] );

戻り値

String または Integer

パラメータ

パラメータ タイプ 説明
Object オブジェクトまたはString 情報を取得する対象のオブジェクト
Type siObjectIdentifierType 戻される識別子のタイプ

デフォルト値:siObjectIdentifier (object id)

1. VBScript の例

NewScene , false

set oDatabase = XSIUtils.DataRepository

set oCube = CreatePrim( "Cube", "MeshSurface" )

Application.LogMessage oDatabase.GetIdentifier( oCube )

Application.LogMessage oDatabase.GetIdentifier( oCube, siObjectGUID )

' Select an object out of model and in a model

SelectObj "Views.ViewA.UserCamera.camera,Cube,Scene_Root"

set oSelection = Application.Selection

for each oItem in oSelection

	Application.LogMessage oItem.name & " has ID " & oDatabase.GetIdentifier( oItem , siModelIdentifier )

	Application.LogMessage oItem.name & " has ID " & oDatabase.GetIdentifier( oItem )

next

'INFO : 60

'INFO : {76BD459D-0C6F-4AC6-8489-1F0AD4E31079}

'INFO : Camera has ID -1

'INFO : Camera has ID 97

'INFO : cube has ID 416

'INFO : cube has ID 60

'INFO : Scene_Root has ID 416

'INFO : Scene_Root has ID 416

2. JScript の例

/*

	Example demonstrating how to determine the Class ID and the SPDL file of an object.

	It also demonstrates how to use the Class ID to find all objects of a particular type in the scene.

*/

NewScene( null, false ) ;

GetPrimLight("Point.Preset", "Point", "");

GetPrimLight("Spot.Preset", "Spot", "");

GetPrimLight("Spot.Preset", "Spot", "");

GetPrimLight("Infinite.Preset", "Infinite", "");

// Get information about about one of the lights

var oDataRep = XSIUtils.DataRepository ;

var oLight = Dictionary.GetObject( "Point.light" )

var classID = oDataRep.GetIdentifier( oLight, siObjectCLSID );

// Now that we know the ClassID from one light we can discover all the 

// lights in the scene

var oLightsXSICollection = FindObjects( null, classID ) ;

Application.LogMessage( "Info about lights in the scene:" ) ;

for ( var i = 0 ; i < oLightsXSICollection.Count ; i++ )

{

	var oLight = oLightsXSICollection.Item(i) ;

	classID = oDataRep.GetIdentifier( oLight, 3 );

	var objectGuid = oDataRep.GetIdentifier( oLight, siObjectGUID );

	var	spdlFile = oDataRep.GetIdentifier( oLight, siSpdlFile ) ;

	// Each light has a different Object GUID but they 

	// all share the same SPDL file and Class ID

	Application.LogMessage( "Name: " + oLight + "\t\tType: " + oLight.Type ) ;

	Application.LogMessage( "ClassID: " + classID ) ;

	Application.LogMessage( "Object GUID: " + objectGuid ) ;

	Application.LogMessage( "SPDL File: " + spdlFile + "\n" ) ;

}

// Output of this example is similar to the following (SPDL path and Object GUID may differ):

// 

//INFO : "Info about lights in the scene:"

//INFO : "Name: Point.light		Type: light"

//INFO : "ClassID: {F3705C30-5204-11D0-8298-00A0243E366B}"

//INFO : "Object GUID: {6AB2367F-1714-4F63-9AD8-334EB405F6FB}"

//INFO : "SPDL File: s:\Application\spdl\C3DLightPoint.spdl

//"

//INFO : "Name: Infinite.light		Type: light"

//INFO : "ClassID: {F3705C30-5204-11D0-8298-00A0243E366B}"

//INFO : "Object GUID: {BC839168-AB8A-4913-B8DE-801A9CD570C7}"

//INFO : "SPDL File: s:\Application\spdl\C3DLightPoint.spdl

//"

//INFO : "Name: light.light		Type: light"

//INFO : "ClassID: {F3705C30-5204-11D0-8298-00A0243E366B}"

//INFO : "Object GUID: {1667B7C6-6347-4FB2-81FC-B91557C9F35D}"

//INFO : "SPDL File: s:\Application\spdl\C3DLightPoint.spdl

//"

//INFO : "Name: Spot1.light		Type: light"

//INFO : "ClassID: {F3705C30-5204-11D0-8298-00A0243E366B}"

//INFO : "Object GUID: {B7E88791-0899-407C-9C13-3E426564136D}"

//INFO : "SPDL File: s:\Application\spdl\C3DLightPoint.spdl

//"

//INFO : "Name: Spot.light		Type: light"

//INFO : "ClassID: {F3705C30-5204-11D0-8298-00A0243E366B}"

//INFO : "Object GUID: {42171148-C315-4D96-AC79-C423AF977B1F}"

//INFO : "SPDL File: s:\Application\spdl\C3DLightPoint.spdl

関連項目

FindObjects