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