RenamePropAndRebind

Introduced

3.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 [in/out]

String

New name for the property

Default Value: If not specified, a new name is automatically created for this property.

UpdateRefs [in/out]

Boolean

True to update references to the property in shaders, materials, rendermaps etc.

Default Value: true

UpdateWildcards [in/out]

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"


Autodesk Softimage v7.5