Hey Jonathon, I have a similar issue that has stumped me regarding the placement of view labels that are autofilled using a custom iproperty. Your code works brilliantly but i have made a slight adaption to suit my labels. As I use a grid system to track views I have added some co-ordinates to your rule that picks up the location of the view label.
The big issue is that after running the rule every view label has the same grid number as the first view. I believe that this could be due to the iproerty lacking in the ability to hold than one value. Do you think that I could run the rule to update the label / sketched symbol one time only and not relay back to the original? Or could I add an additional prompted entry to replace the iproperty?
Here is the sketched symbol, grid and rule. I would appreciate any help you could offer here as I have hit a wall!!

SyntaxEditor Code Snippet
Dim oDoc As DrawingDocument
oDoc = ThisDoc.Document
Dim oSheets As Sheets
oSheets = oDoc.Sheets
Dim oSheet As Sheet
Dim oViews As DrawingViews
Dim oView As DrawingView
Dim oSymbol As SketchedSymbol
Dim oSymbols As SketchedSymbols
'iterate through all of the sheets
For Each oSheet In oSheets
'remove existing sketched symbols named View Label
For Each oSymbol In oSheet.SketchedSymbols
If oSymbol.Definition.Name = "DD" Then
oSymbol.Delete
Else
End If
Next
'set sheet active
oSheet.Activate
'set a refernce to the drawing views collection
oViews = oDoc.ActiveSheet.DrawingViews
' Iterate through all of the views
For Each oView In oViews
'This places a sketched symbol with the name "View_Label"
Dim oSymDef As SketchedSymbolDefinition
'defind the sketch symbol to be inserted
oSymDef = oDoc.SketchedSymbolDefinitions.Item("DD")
'set a string array with values for the prompted entries found in the symbol
Dim sPromptStrings(1) As String
sPromptStrings(0) = "SCALE " & oView.ScaleString 'set to view scale
sPromptStrings(1) = oView.Name 'set to view name
'set the position for the sketched symbol to be inserted
' and spaced off of the selected view center
Dim oPosition As Point2d: oPosition = oView.Center
oPosition.y = oPosition.y - (oView.Height / 2 + .6)
oPosition.x = oPosition.x - (oView.Width / 2 + .6)
'insert the sketched symbol and set the prompted entries
oSymbol = oSheet.SketchedSymbols.Add(oSymDef, oPosition,0,1,sPromptStrings)
Dim posX As Double = oPosition.x * 10
Dim posY As Double = oPosition.y * 10
Dim xTrue As Boolean = False
Dim yTrue As Boolean = False
If posX > 10 And posX < 41.667 Then
xTrue = True
iProperties.Value("Custom", "Grid_No") = "1"
End If
If posY > 10 And posY < 34.75 Then
yTrue = True
iProperties.Value("Custom", "Grid_Letter") = "A"
End If
If posX > 41.667 And posX < 71.333 Then
xTrue = True
iProperties.Value("Custom", "Grid_No") = "2"
End If
If posY > 34.75 And posY < 57.5 Then
yTrue = True
iProperties.Value("Custom", "Grid_Letter") = "B"
End If
If posX > 71.333 And posX < 101 Then
xTrue = True
iProperties.Value("Custom", "Grid_No") = "3"
End If
If posY > 57.5 And posY < 80.25 Then
yTrue = True
iProperties.Value("Custom", "Grid_Letter") = "C"
End If
' If xTrue And YTrue Then
'MessageBox.Show("X: " & Posx.ToString() & " " & "Y: " & Posy.ToString())
' End If
Next
Next
'activate sheet1
oDoc.Sheets.Item(1).Activate