TransferPropertiesAc rossGenOp

Introduced

4.0

Description

Transfers a set of properties from the specified input objects on a generator operator to a specified output object as a new property. It can be optionally shared.

Note: To transfer cluster properties alone, use the TransferClusterPropertiesAcrossGenOp command.

Scripting Syntax

    TransferPropertiesAcrossGenOp( Operator, Object, PropertiesToTransfer, PropertyName, ShareProperty, TransferClusterProperties )

Parameters

Parameter | Type | Description
Operator | String | Specifies the generator operator on which the property transfer will be performed.
Object | String | Specifies an output object to which the new property will be added.
PropertiesToTransfer | Selection list | Specifies the properties to transfer to the new property. Properties are not cluster properties. Possible Values: • Material: Material on an object or cluster.
PropertyName | String | Specifies the name of the new property.
ShareProperty | Boolean | True implies that the property will be shared. Default Value: True
TransferClusterProperties | Boolean | True implies that the cluster property references by name are also transfered according to an internal heuristic that considers all input properties equivalent. Default Value: True

Return Value

Returns the created Property.

Examples

1. VBScript Example

    'This example transfers properties across generator
    'operators that admit transfer of properties.

    Dim l_NewMaterial

    newscene ,false

    'Create objects
    CreatePrim "Grid", "MeshSurface", "grid"
    CreatePrim "Grid", "MeshSurface", "grid1"
    Translate "grid1", 8.2, 0, 0, siRelative, siView, siObj, siXYZ

    'Add some properties to objects: Materials and texture coordinates.
    ApplyShader , , , , siLetLocalMaterialsOverlap
    SetValue "grid1.Material.Phong.diffuse.red", 0.750
    SIApplyShaderToCnxPoint "Image", "grid1.Material.Phong.diffuse"

    SelectObj "grid", , True
    SetSelFilter "Polygon"
    AddToSelection "grid.poly[18-21,26-29,34-37,42-45,50-53]", , True
    ApplyShader , , , , siLetLocalMaterialsOverlap
    SetValue "grid.polymsh.cls.Polygon.Material.Phong.diffuse.green", 0.250
    SIApplyShaderToCnxPoint "Image", "grid.polymsh.cls.Polygon.Material.Phong.diffuse"
    CreateProjection "grid", siTxtPlanarXZ, siTxtDefaultSpherical, "Texture_Support", "Texture_Projection"
    SetInstanceDataValue , "grid.polymsh.cls.Polygon.Material.Phong.Image.tspace_id", "Texture_Projection"

    SelectObj "grid1", , True
    CreateProjection "grid1", siTxtPlanarXZ, siTxtDefaultSpherical, "Texture_Support", "Texture_Projection"
    SetInstanceDataValue , "grid1.Material.Phong.Image.tspace_id", "Texture_Projection"

    ' Apply merge operator.
    ApplyGenOp "MeshMerge", , "grid,grid1", 3, siPersistentOperation, siKeepGenOpInputs
    SetValue "polymsh.polymsh.mergemesh.tolerance", 2.0
    Translate , -4.0, 3.0, -0.0, siRelative, siView, siObj, siXYZ

    ' Transfer properties across the merge operator.
    set l_NewMaterial = TransferPropertiesAcrossGenOp( "polymsh.polymsh.mergemesh", "polymsh",_
    "grid.polymsh.cls.Polygon.Material,grid1.Material", "Material_Gen", , True )

    ' View results.
    SetDisplayMode "Camera", "texturedecal"
    SetValue "Camera.camvis.objctrlpropmaps", True
    ActivateObjectSelTool
    SelectObj "grid"
    AddToSelection "grid1", , True
    AddToSelection l_NewMaterial.Parent

2. JScript Example

    //This example transfers properties across generator
    //operators that admit transfer of properties.

    NewScene( null, false )

    // Create objects
    CreatePrim("Grid", "MeshSurface", "grid", null);
    CreatePrim("Grid", "MeshSurface", "grid1", null);
    Translate( "grid1", 8.2, 0.0, 0.0,
    siRelative, siView, siObj, siXYZ,
    null, null, null, null, null, null, null, null, null);

    // Add some properties to objects: Materials and texture coordinates.

    ApplyShader(null, "", null, "", siLetLocalMaterialsOverlap);
    SetValue("grid1.Material.Phong.diffuse.red", 1, null);
    SIApplyShaderToCnxPoint("Image", "grid1.Material.Phong.diffuse", null, null);
    CreateProjection("grid1",
       siTxtPlanarXZ,
       siTxtDefaultSpherical,
       "Texture_Support",
       "Texture_Projection",
       null, null, "");
    SetInstanceDataValue(null,
       "grid1.Material.Phong.Image.tspace_id",
       "Texture_Projection");

    SelectObj("grid", null, true);
    SetSelFilter("Polygon");
    AddToSelection("grid.poly[26-29,34-37,42-45]", null, true);
    ApplyShader(null, "", null, "", siLetLocalMaterialsOverlap);
    SetValue("grid.polymsh.cls.Polygon.Material.Phong.diffuse.blue", 0.006, null);
    SIApplyShaderToCnxPoint("Image",
       "grid.polymsh.cls.Polygon.Material.Phong.diffuse",
       null, null);
    CreateProjection("grid",
       siTxtPlanarXZ,
       siTxtDefaultSpherical,
       "Texture_Support",
       "Texture_Projection1",
       null, null, "");
    SetInstanceDataValue(null,
       "grid.polymsh.cls.Polygon.Material.Phong.Image.tspace_id",
       "Texture_Projection1");

    // Apply merge operator.
    ApplyGenOp("MeshMerge", "", "grid,grid1", 3, siPersistentOperation, siKeepGenOpInputs);
    SetValue("polymsh.polymsh.mergemesh.tolerance", 2, null);
    Translate( "polymsh", -4.0, 4.0, -5.0,
       siRelative, siView, siObj, siXYZ,
       null, null, null, null, null, null, null, null, null);

    // Transfer properties across the merge operator.
    l_NewMaterial = TransferPropertiesAcrossGenOp(
       "polymsh.polymsh.mergemesh",
       "polymsh",
       "grid.polymsh.cls.Polygon.Material, grid1.Material",
       "Material_Gen",
       null,
       true);

    // Transfer properties across the merge operator.
    SelectObj("grid", null, true);
    AddToSelection("grid1", null, true);
    AddToSelection( l_NewMaterial , null, true);
    SetDisplayMode("Camera", "texturedecal");
    SetValue("Camera.camvis.objctrlpropmaps", true, null);

See Also

TransferClusterPropertiesAcrossGenOp | TransferAllPropertiesAcrossGenOp | CopyAnimationAcrossGenerator

Autodesk Softimage v7.5