Application.ClassName

説明

Softimage オブジェクトのクラス名を戻します。戻される名前は、そのオブジェクトがサポートしている most-derived クラスです。

たとえば、階層情報に表示されているように、ClusterPropertyは、SIObjectProjectItemおよび、Propertyをサポートします。ClusterProperty はリストに表示される最後のクラスであるため(leaf または most-derived)、このメソッドにより戻される名前となります。

このメソッドは、オブジェクトタイプ、およいそのオブジェクトタイプで使用できるオブジェクトモデルメソッドとプロパティを決定する非常に重要なメソッドです。

SIObject.Typeとは異なり、このメソッドはすべてのオブジェクトで使用できます。この中には、SIVector3ImageおよびPPGのような非 SIObject も含まれています。

このメソッドを呼び出しても、オブジェクトのタイプを区別するのに十分な情報が得られない場合があります。たとえば、ジオメトリ、ラティス、フォースの ClassName はすべてX3DObjectになります。

このメソッドは、VBScript の TypeName(obj)と同じ情報を戻すので、TypeName ()関数をサポートしていない言語で使用できます。ただし、VBScript の TypeName ()とは異なり、文字列、数値、およびその他の標準日付書式を渡すとこのメソッドは失敗します。このメソッドは実際の Softimage オブジェクトでしか機能しません。

注:Softimage の各リリースではオブジェクトモデルに新しいオブジェクトが追加され、それによって新しいクラスが階層に追加されています。このことは、このメソッドによって戻される値が新しい ClassName を戻し、ハードコーディングされている既存のスクリプトを壊す可能性があります。

スクリプト 構文

oString = Application.ClassName( Object );

戻り値

String

パラメータ

パラメータ タイプ 詳細
オブジェクト Object クラス名を述べるオブジェクト

1. JScript の例

/*
        This example displays the class name of an object
*/
var oObj = ActiveProject.ActiveScene.Root.AddGeometry("Sphere", "NurbsSurface");
LogMessage( "Object typename = " + Application.ClassName(oObj) );

2. Python の例

#
#       This is a basic demonstration using Application.ClassName to
#       test the type of an object
#
def IsModel( in_obj )  :
        # There are no classes which derive from model so this is
        # a safe way to test the object 
        try:
                return ( Application.ClassName( in_obj ) == "Model" )
        except:
                #Exception will occur if in_obj isn't really an COM object
                return False
oSceneRoot = Application.ActiveSceneRoot 
oNull = oSceneRoot.AddNull()
oModel = oSceneRoot.AddModel()
# This is a model (prints "True")
Application.LogMessage( IsModel( oSceneRoot ) ) 
Application.LogMessage( IsModel( oModel ) ) 
# These are not models (prints "False")
Application.LogMessage( IsModel( Application ) ) 
Application.LogMessage( IsModel( oNull ) ) 
# These are not even Softimage objects (prints "False")
Application.LogMessage( IsModel( "not even an object" ) ) 
Application.LogMessage( IsModel( 22 ) )

関連項目

SIObject.Type Dictionary.GetObject