Select to view content in your preferred language

Annotate Parcel Courses Tool

4031
2
11-08-2012 12:17 PM
Labels (1)
JAKERODEL
Deactivated User
I am setting up feature linked annotation to our Lots in the Parcel Fabric.  When I select a couple lots and use the annotate parcel courses tool for some reason not all annotation for all lines show up.  Sometimes it seems random based on my lot selection which ones are annotated.  When I open up the attribute table for the Annotation layer there is records for all of the annotation but the unplaced ones have null values.  The status  field says placed and the AnnotationClassId field is populated based on the annotation class but all other fields are null.  I checked the convert unplaced labels to annotation check box as well.  Has anyone else experienced this or know what might be causing this?
Tags (2)
0 Kudos
2 Replies
AmirBar-Maor
Esri Regular Contributor
The annotation expression has been modified.

Make sure that on the annotation classes tab --> expression, you have:

  • 'Display coded value description' checked off

  • 'Advanced' checked on

  • The Lines Bearing field is set a Number Format of Direction (in degrees, quadrant bearing)

  • Adjust the expression below to display bearing if required, minimal line length for anno, minimal line length for bearing, curve parameters

  • Make sure the SQL Query on the Annotation Classes tab does not filter a parcel type

  • In 10.1 SP1 the line.Type field is set to the Parcel.Type making it possible to distinguish between Tax parcels lines to Lot lines etc.

  • If anno is not displayed - verify the values exist in the line (e.g. sometimes curves were imported without an ArcLength and will only display a radius)

As always - feedback is welcome

You can try to copy and paste the following expression into the annotation class:

'*******Description********
'This expression only shows dimension only for lines of Category 0 and Category 5 for which the hide field is 0 or Null
'Default: show dimensions as distance for straight lines and radius and arclength for curves.  Hide dimensions if distance is smaller than 5 map unit.
'Distances are format to show 2 decimal places
'Customizing the expression:
'To show the bearing on a straight line set the ShowBearing variable to 1.
'Set the MinDistBearing variable to not display bearing when the distance is smaller of the set value
'To control which curve dimensions are displayed: set the CurveDisplay variable as specified below
'The expressions hides dimensions for lines that have a distance smaller  of 5.00 map units. Modify the HideDimensions variable if needed.
'************************


Function FindLabel ([Bearing], [Distance], [Radius], [ArcLength], [Delta], [Category], [Hide])


'ShowBearing FLAG --- To show bearing set this value to equal 1
  Dim ShowBearing
  ShowBearing = 0


'MinDistBearing FLAG --- This value represents the minimum distance of a line for which both Bearing and Distance will be shown.
  Dim MinDistBearing
  MinDistBearing = 100


'CurveDisplay FLAG --- To show Radius only set value to 1, for radius and ArcLength - 2, for radius and Chord - 3, for radius and central angle - 4
  Dim CurveDisplay
  CurveDisplay=2
 
'HideDimensions FLAG --- to hide dimensions on lines that are smaller of a certain distance set the value. Default: 5.00 map unit
  Dim HideDimensions
  HideDimensions = 5.00
 
 
if(([Category] = 0 OR [Category] = 5) AND ([Hide] = 0 or isNull([Hide]))) AND (cDbl([Distance])>HideDimensions) then 'IF LINE IS BOUNDARY OR ROAD FRONTAGE AND HIDE IS NOT 1
if ([Radius]>0) or ([Radius]<0)  then  'IF A CURVE
  if (CurveDisplay = 1) then
                FindLabel = "R=" &  FormatNumber(Round(abs([Radius]), 2), 2)& "'"
  elseif (CurveDisplay = 2) then
   if (IsNull([ArcLength])) then
                FindLabel = "R=" &  FormatNumber(Round(abs([Radius]), 2), 2)& "'"
   else
                FindLabel = "R=" & FormatNumber( Round(abs([Radius]), 2), 2)& "'" & vbCrLf & "L=" & FormatNumber(Round([ArcLength],2),2) & "'"    
   end if 
  elseif (CurveDisplay = 3) then
                FindLabel = "R=" & FormatNumber( Round(abs([Radius]), 2), 2)& "'" & vbCrLf & "Ch=" & FormatNumber(Round([Distance],2),2) & "'" 
  elseif (CurveDisplay = 4) then
                FindLabel = "R=" & FormatNumber( Round(abs([Radius]), 2), 2)& "'" & vbCrLf & "D=" & [Delta]  
  end if
else   'IF NOT A CURVE
   if(ShowBearing = 1) AND (cDbl([Distance])>MinDistBearing) then
    FindLabel = formatnumber([Distance],2) & "'" & vbCrLf & [Bearing]  
  else 
   FindLabel = formatnumber([Distance],2) &"'"
  end if
end if
end if
End Function
0 Kudos
JAKERODEL
Deactivated User
I recieved an error when I copy and pasted this code.  Type Mismatch.   I had to change ([Category] = 0 OR [Category] = 5) to ([Category] = "Boundary Line" or [Category] = "Road Frontage" ) to get it to work.
0 Kudos