## TransferPropertiesAcrossGenOp

### Introduced

v4.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

    oReturn = TransferPropertiesAcrossGenOp( Operator, Object, PropertiesToTransfer, PropertyName, ShareProperty, TransferClusterProperties );

### Return Value

Returns the created Property.

### 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: | Description:
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

### 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