## RenamePropAndRebind

### Introduced

v3.5

### Description

Renames a property and ensures that all references to the property are maintained. For example, while renaming a UV property, the command updates every reference to the property in every shader, rendermap, texturemap and material of the object, so that the reference still points to the same property.

### Scripting Syntax

    RenamePropAndRebind( [Properties], NewName, [UpdateRefs], [UpdateWildcards] );

### Parameters

Parameter | Type | Description
--- | --- | ---
Properties | Property | Property to rename Default Value: Current selection
NewName | String | New name for the property Default Value: If not specified, a new name is automatically created for this property.
UpdateRefs | Boolean | True to update references to the property in shaders, materials, rendermaps etc. Default Value: true
UpdateWildcards | Boolean | True to update references containing wildcards (e.g. uvprop*) Default Value: false

### Examples

#### VBScript Example

    '-------------------------------------------------------------------------------
    '
    ' This example demonstrates how to rename a texture map when it is applied to a
    ' whole group (consisting of two spheres).
    '
    NewScene , false
    ' Create the smaller ball
    Set oBall_1 = ActiveSceneRoot.AddGeometry( "Sphere", "MeshSurface", "smBall" )
    oBall_1.radius.Value = 2
    ' Create the larger ball
    Set oBall_2 = ActiveSceneRoot.AddGeometry( "Sphere", "MeshSurface", "lgBall" )
    oBall_2.radius.Value = 3
    ' Create a group based on the selection (the two balls)
    Selection.Clear
    For Each mbr In ActiveSceneRoot.Children.Filter( , siMeshFamily )
            LogMessage "Adding " & mbr & " to the selection."
            Selection.Add mbr
    Next
    Set oGroup = ActiveSceneRoot.AddGroup( Selection, "Onion" )
    ' Now create a texture map for the whole group (notice that we don't need to
    ' specify input objects because we are using the current selection)
    Set oMapMembers = Create2DMapWithProjection( oGroup )
    ' Are these the same members as our selection?
    LogMessage "The texture map was added to " & oMapMembers.GetAsText & "......."
    ' Find all texture maps in the scene
    checkForMaps
    ' Rename the texture map
    RenamePropAndRebind oGroup.Properties( "Texture_Map" ), "Superciliousness", True
    ' Check to make sure we renamed all texture maps in the scene
    checkForMaps
    '-------------------------------------------------------------------------------
    function checkForMaps()
            For Each mesh_item In ActiveSceneRoot.Children.Filter( , siMeshFamily )
                    For Each prop in mesh_item.Properties
                            If (prop.Name = "Superciliousness") _
                            OR (prop.name = "Texture_Map") Then
                                    LogMessage "Found " & prop.Name _
                                            & " under " & mesh_item.Name
                            End If
                    Next
            Next
    end function
    '-------------------------------------------------------------------------------
    ' Output of above script:
    'INFO : "Adding smBall to the selection."
    'INFO : "Adding lgBall to the selection."
    '
    'INFO : "The texture map was added to Onion.Texture_Map......."
    '
    'INFO : "Found Texture_Map under smBall"
    'INFO : "Found Texture_Map under lgBall"
    '
    'INFO : "Found Superciliousness under smBall"
    'INFO : "Found Superciliousness under lgBall"