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