CreateUserDataMap

カテゴリ

property

詳細

ユーザデータを保持する UserDataMap クラスタプロパティを作成します。

スクリプト構文

oReturn = CreateUserDataMap( [InputObj], [PropertyName], [Template] );

戻り値

新規に作成されたプロパティのコレクションを戻します。 InputObjs 引数にクラスタを指定しない場合、戻されるコレクションは空です。

パラメータ

パラメータ タイプ 詳細
InputObj 文字列 ユーザ データの作成先クラスタまたはクラスタのリスト

デフォルト値: 現在選択されている値

PropertyName 文字列 ユーザ データ プロパティの名前。 プロパティを明確に特定し、他のプラグインとの競合を回避するために、プラグインまたはその作成者がわかるような名前を付けることをお勧めします。

デフォルト値: "UserData"

Template CustomProperty ユーザ データ マップの内容でテンプレートとして機能するカスタム プロパティの名前。 バイナリ データの保存にユーザ データ マップを使用する場合、この引数は不要です。

1. VBScript の例

'This vbscript example demonstrates how you can create user data maps on seperate 
        'clusters with a single call to CreateUserDataMap
        dim oRoot, oCircle, oCluster1, oCluster2, oCluster3, l_ClusterList, oUserDataMapList, oUserDataMap
        set oRoot = Application.ActiveProject.ActiveScene.Root
        set oCircle = oRoot.AddGeometry("Circle","NurbsCurve")
        set oCluster1 = oCircle.ActivePrimitive.Geometry.AddCluster( siIsoPointCluster )                
        set oCluster2 = oCircle.ActivePrimitive.Geometry.AddCluster( siVertexCluster,"PntCluster",Array(1,4,7,10,13,16) )               
        set oCluster3 = oCircle.ActivePrimitive.Geometry.AddCluster( siKnotCluster )
        'Build a list of clusters, similar to what happens is you select multiple clusters
        '(the duplicates will be filtered out)
        set l_ClusterList = CreateObject("XSI.Collection")
        l_ClusterList.Add oCluster1
        l_ClusterList.Add oCluster2
        l_ClusterList.Add oCluster3
        l_ClusterList.Add oCluster1     
        set oUserDataMapList = CreateUserDataMap( l_ClusterList, "MultiCreatedUserData" )       
        'We can get at the individual object in the collection
        'by iterating like this:        
        for each oUserDataMap in oUserDataMapList
                logmessage oUserDataMap.FullName
        next
        'Output of this script is something like:
        'INFO : "circle1.crvlist.cls.Isopoint.MultiCreatedUserData"
        'INFO : "circle1.crvlist.cls.PntCluster.MultiCreatedUserData"
        'INFO : "circle1.crvlist.cls.knot.clslist.Knot.MultiCreatedUserData"

2. VBScript の例

'This vbscript example demonstrates creating a templated User Data Map using CreateUserDataMap
        option explicit
        dim oRoot, oObj, oCluster, oPSet, oUserDataMap
        set oRoot = Application.ActiveProject.ActiveScene.Root
        set oObj = oRoot.AddGeometry("Grid","MeshSurface")
        set oCluster = oObj.ActivePrimitive.Geometry.AddCluster( siPolygonCluster, "UserDataCls" )      
        'Create a custom parameter that will serve as the template.  In this case we 
        'choose to create it underneath the object, but we could create it elsewhere if we like
        set oPSet = oObj.AddProperty( "Custom_parameter_list",,"MyDataFormat" )
        oPSet.AddParameter "MyFlag", siBool,,,,,, true
        oPSet.AddParameter "Z", siUInt4,,,,,, 100, 0, 1000
        set oUserDataMap = CreateUserDataMap( oCluster, "UserData", oPSet ).Item( 0 )
        logmessage "Name of template for " & oUserDataMap.FullName & " is " & oUserDataMap.Template.FullName
        'Output of this script is the following:
        'INFO : "Name of template for grid.polymsh.cls.UserDataCls.UserData is grid.MyDataFormat"

関連項目

UserDataMap CreateWeightMap Geometry.AddCluster