The Manage Airport Signs tool allows you to create or edit airport sign data and annotation. The tool meets the FAA's 18C specification (AC 150/5300-18C) for airport sign data storage through an easy-to-use interface. This interface shows a preview and provides integration with annotation creation and updates.
The functionality to view these signs in 3D is included with ArcGIS for Aviation. In the 3D Support folder in the install directory, there is a rule package that will allow you to render these signs in 3D using the procedural symbology inside ArcGIS Pro.
Requirements for managing airport signs
To work with the Manage Airport Signs tool on the Aviation Airports toolbar, the following two feature classes must exist in the Airports database:
- AirportSign feature class—An existing point feature class within the Airports database.
- AirportSign_A feature class—This feature class must be created within the Airports database with a projected coordinate system applied.
Creating an annotation feature class for storing airport sign annotations
- Create a new annotation feature class with the name AirportSign_A.
For more information, see Creating a feature-linked annotation feature class in a feature dataset and About creating annotation feature classes.
- Link to the AirportSign feature class.
- Set a Reference Scale of 1:1000.
- Ensure the new annotation feature class is using the Maplex Label Engine.
- Create two annotation classes, and label them Front and Back.
- Change the label field for each annotaion class
- For the back annotation class: AirportSignMsgBack
- For the front annotation class: AirportSignMsgFront
- Set the default font to SimHei, size 8.
- To enable the use of leader lines between the sign annotation and associated Airport Sign point, click Leader and choose from the options.
- Uncheck the Accent check box and reduce Gap to 0.00.
- Set Placement Properties to determine initial annotation placement.
- Under Placement Properties, set the position to South for the Front annotation class, and North for the Back annotation class.
- Uncheck the Stack label check box.
- Enter a Label Offset value of 50 points.
- Click Properties > Label Position > Label Offset.
- Check the Measure Offset check box to measure from the exact symbol outline.
- Add an SQL query to each annotation class to ensure the AirportSignMsg fields are not null or don't contain an empty string.
- For the Back annotation class: AIRPORTSIGNMSGBACK IS NOT NULL AND AIRPORTSIGNMSGBACK <> ''
- For the Front annotation class: AIRPORTSIGNMSGFRONT IS NOT NULL AND AIRPORTSIGNMSGFRONT <> ''
- Add the label expression to the Front and Back classes.
- Click Expression.
- Check the Advanced check box and paste the expression replacing the function already generated.
- Click Next on the next two dialog boxes.
- Click Finish to create the annotation feature class.
The annotation feature class to store the airport sign annotations is created in the geodatabase.
Function FindLabel ( [AIRPORTSIGNMSGBACK] ) 'For the Front annotation class, change to AIRPORTSIGNMSGFRONT
FindLabel = GetFormattedString ( [AIRPORTSIGNMSGBACK] ) 'For the Front annotation class, change to AIRPORTSIGNMSGFRONT
End Function
Function GetFormattedString(Text)
Set myRegEx = New RegExp
myRegEx.Global = True
myRegEx.IgnoreCase = True
myRegEx.Pattern = "\[(.*?)\]([^\[]*)"
Set myMatches = myRegEx.Execute(Text)
If myMatches.Count > 0 Then
For Each myMatch In myMatches
GetFormattedString = GetFormattedString & GetString(myMatch)
Next
Else
GetFormattedString = "Error"
End If
End Function
Function GetString(myMatch)
lSignType = CLng(myMatch.SubMatches(0))
Text = myMatch.SubMatches(1)
sBackground = "<BGD red='255' green='0' blue='0'>"
sTextColor = "<clr red='0' green='0' blue='0'>"
sFont = "name = 'SimHei'>"
sFontAirportSign = "name = 'Esri Airport Sign' size='9.5'>"
Select Case lSignType
Case 0: 'Direction sign
sBackground = "<BGD red='255' green='255' blue='0' left='2' right='2'>"
sTextColor = "<clr red='0' green='0' blue='0'>"
Case 2:
sBackground = "<BGD red='255' green='255' blue='255' left='2' right='2'>"
sTextColor = "<clr red='0' green='0' blue='0'>"
Case 3: 'Location sign
sBackground = "<BGD red='0' green='0' blue='0' left='2' right='2'>" 'Add inside bracket to create yellow border inside signs: outline_red='255' outline_green='255' outline_blue='0' outline_width='0.5' outline_margin='2'
sTextColor = "<clr red='255' green='255' blue='0'>"
Case 4: 'Mandatory sign
sBackground = "<BGD red='255' green='0' blue='0' left='2' right='2'>"
sTextColor = "<clr red='255' green='255' blue='255'>"
Case 5: 'No Entry sign
sBackground = "<BGD red='255' green='255' blue='255' width='-1' halo='.6'>"
sTextColor = "<clr red='255' green='0' blue='0'>"
sFont = sFontAirportSign
Text = "O" 'You can use the letter N for a no entry sign with text stating No Entry
Case 6: 'Runway Critical sign
sBackground = "<BGD red='255' green='255' blue='0' width='0' Valign='Bottom'>"
sTextColor = "<clr red='0' green='0' blue='0'>"
sFont = sFontAirportSign
Text = "IIII" 'Add the number of Is for as many repetitions as you need to see in the symbol
Case 7: 'Runway Distance Remaining sign
sBackground = "<BGD red='0' green='0' blue='0' left='2' right='2'>"
sTextColor = "<clr red='255' green='255' blue='255'>"
Case 8: 'Runway Safety Area Boundary sign
sBackground = "<BGD red='255' green='255' blue='0' width='0' Valign='Bottom'>"
sTextColor = "<clr red='0' green='0' blue='0'>"
sFont = sFontAirportSign
Text = "RRRR" 'Add the number of Rs for as many repetitions as you need to see in the symbol
Case 9: 'Taxiway End sign
sBackground = "<BGD red='255' green='255' blue='0' width='0' Valign='Bottom'>"
sTextColor = "<clr red='0' green='0' blue='0'>"
sFont = sFontAirportSign
Text = "T"
Case 10: 'Terminal sign
sBackground = "<BGD red='0' green='0' blue='255' left='2' right='2'>"
sTextColor = "<clr red='255' green='255' blue='255'>"
Case 11: 'Vehicle Stop sign
sBackground = "<BGD red='255' green='255' blue='255' width='-1' halo='.4'>"
sTextColor = "<clr red='255' green='0' blue='0'>"
sFont = sFontAirportSign
Text = "S"
Case 12: 'Vehicle Yield sign
sBackground = "<BGD red='255' green='255' blue='255' width='-1' halo='.9'>"
sTextColor = "<clr red='168' green='0' blue='0'>"
sFont = sFontAirportSign
Text = "Y"
Case Else
sBackground = "<BGD red='255' green='255' blue='0' left='2' right='2'>"
sTextColor = "<clr red='0' green='0' blue='0'>"
End Select
Text = Replace(Text, "�D;", vbNewLine)
If (IsNull(Text) Or IsEmpty(Text) Or Text = "") Then
Text = " "
End If
GetString = sBackground & "<fnt " & sFont & sTextColor & Text & "</clr></fnt></BGD>"
End Function
Custom tags
The Manage Airport Signs tool uses custom tags within the lxp to display airport signs as they would look in the real world. Using the tags to change the look of signs gives display flexibility that is unique to airports and their needs.
- sBackground = "<BGD: tags to control the background for the sign.
- Red—Red RGB value for sign fill.
- Blue—Blue RGB value for sign fill.
- Green—Green RGB value for sign fill.
- Left—Left margin spacing between the sign box and text.
- Right—Right margin spacing between the sign box and text.
- Halo—Point size of the halo surrounding the sign symbol (only applies to No Entry, Stop, and Yield sign types).
- Width—By default the annotation sign box has a black outline. Setting this to -1 removes the outline completely. Setting this to 0 leaves an outline.
- Valign—Controls the vertical alignment of the symbol within the sign box (only applies to Runway Critical, Runway Safety Area, and Taxiway End sign types).
- Outline_red—Red RGB value for outline within the sign border (specifically applies to Location sign type).
- Outline_green—Green RGB value for outline within the sign border (specifically applies to Location sign type).
- Outline_blue—Blue RGB value for outline within the sign border (specifically applies to Location sign type).
- Outline_width—Controls the thickness of the outline within the sign border (specifically applies to Location sign type).
- Outline_margin—Controls the location of the outline within the sign border, whether closer to center of sign or closer to edges of the sign (specifically applies to Location sign type).
- sFont = sFontAirportSign: Overrides the default font for the annotation with the Esri Airport Sign font (only applies to No Entry, Runway Critical, Runway Safety Area, Taxiway End, Vehicle Stop, and Vehicle Yield sign types).
Managing settings
The Manage Airport Signs dialog box displays the Annotation Feature Class settings. These may be changed to point to the correct annotation feature class, and the correct attribute classes for the front and back of the signs. This only needs to be set once, so it may be minimized to allow room to configure other settings.
- Annotation Feature Class—The AirportSign_A feature class within the Airports database that will store the AirportSign annotation.
- Front Annotation Class—Used to display the Front message of the sign.
- Back Annotation Class—Used to display the Back message of the sign.
Managing AirportSign feature class attributes
The values in the fields are populated from the respective attribute fields in the AirportSign feature class. These values can be updated in the tool dialog box and saved in the geodatabase.
- Direction—AirportSignDirection field.
- Height Value—AirportSignHeightValue field.
- Purpose Code—AirportSignPurposeCode field.
- Type Code—AirportSignTypeCode field.
Managing sign previews (Front and Back)
The Front and Back previews provide a visual of how the sign will look in the annotation as well as the encoding that will be written into the database fields.
- Panels—A description of the AirportSignMsgBack and AirportSignMsgFront fields
- Sign Type—A list containing approved types of signs
- Text—The text messaging shown on the sign
- Add Arrow—Allows for arrow text to be entered
Creating new annotation for an airport sign feature
- Inicie ArcMap.
- Add the AirportSign and AirportSign_A feature classes.
- Ensure the data frame is using the Maplex Label Engine.
- On the main menu, click Customize > Toolbars > Aviation Airports.
- Select a single AirportSign point feature using the Edit tool on the Aviation Editing toolbar.
- Start editing the AirportSign point feature class.
- Click the Manage Airport Signs button on the Aviation Airports toolbar.
The Manage Airport Signs window appears; it is dockable and remains active while working within the map.
- Click the button to expand the section and ensure the selections are correct for the Annotation Feature Class, Front Annotation Class, and Back Annotation Class options.
- If necessary, click Direction to change the value for the direction of the selected airport sign.
- If necessary, click Height Value to change the value for the height of the selected airport sign.
- Optionally click the Purpose Code drop-down arrow to select or change the purpose code of the selected airport sign point.
- Optionally click the Type Code drop-down arrow to select or change the type code of the selected airport sign point.
- Click the Sign Type drop-down arrow and select an option from the list.
- Enter the annotation text in the Text field.
- Haga clic en Agregar.
- Repeat steps 14 and 15 to add additional Panels items to the sign annotation.
- If necessary, highlight an item in Panels and use the Up and Down arrows to reorder.
- Click Remove to delete any single Panels item.
- Repeat steps 14 through 18 to generate a preview of the back panel annotation.
- If the front and back panel previews are satisfactory, click Create Annotation.
Annotations for airport signs are created in the AirportSign_A feature class and displayed on the map. Also, the attributes AirportSignMsgBack and AirportSignMsgfront in the AirportSign feature class are populated.
- Use the Edit Annotation tool from the Aviation Annotation toolbar to make placement changes if needed.
- Use the tools on the Aviation Editing toolbar to save edits and end the edit session.
Editing airport sign data
- Inicie ArcMap.
- Add the AirportSign and AirportSign_A feature classes.
- Start editing on the AirportSign point feature class.
- Ensure the AirportSign feature to edit is selected.
- On the main menu, click Customize > Toolbars > Aviation Airports.
- Click the Manage Airport Signs button on the Aviation Airports toolbar.
The Manage Airport Signs window appears; it is dockable and remains active while working within the map.
- Click the button and ensure the correct settings are set for the Annotation Feature Class, Front Annotation Class, and Back Annotation Class options.
- If necessary, click Direction to change the value for the direction of the selected airport sign.
- If necessary, click Height Value to change the value for the height of the selected airport sign.
- Optionally click the Purpose Code drop-down arrow to choose or change the purpose code of the selected airport sign point.
- Optionally click the Type Code drop-down arrow to choose or change the type code of the selected airport sign point.
- For each of the front and back panels, click the Sign Type drop-down arrow and choose a sign type.
- If necessary, enter a description in the Text text box.
- Click Update to save changes.
- Click Remove to delete an item from the list.
The changes will show in the Preview section.
- Click Apply.
Changes are written to the attribute table.
- Refresh the map display to see the annotation changes.
- Use the tools on the Aviation Editing toolbar to save edits and end the edit session.
Adding new data to an airport sign
- Inicie ArcMap.
- Add the AirportSign and AirportSign_A feature classes.
- On the main menu, click Customize > Toolbars > Aviation Airports.
- Start editing on the AirportSign point feature class.
- Select a single AirportSign point feature using the Edit tool on the Aviation Editing toolbar.
- Click the Manage Airport Signs button on the Aviation Airports toolbar.
The Manage Airport Signs dialog box appears; it is dockable and remains active while working within the map.
- Click the Settings button and ensure the correct settings are set for the Annotation Feature Class, Front Annotation Class, and Back Annotation Class options.
- If necessary, click Direction to change the value for the direction of the selected airport sign.
- If necessary, click Height Value to change the value for the height of the selected airport sign.
- Optionally click the Purpose Code drop-down arrow to choose or change the purpose code of the selected airport sign point.
- Optionally click the Type Code drop-down arrow to choose or change the type code of the selected airport sign point.
- For each of the front and back panels, click the Sign Type drop-down arrow and choose a sign type.
- If necessary, enter a description in Text text box.
- Haga clic en Agregar.
- If necessary, highlight the Panels entry and use the Up and Down arrows to reorder.
The changes will update in the Preview section.
- Click Apply.
The new data is written to the attribute table.
- Use the tools on the Aviation Editing toolbar to save edits and end the edit session.
Updating the Airports 18B geodatabase
The Manage Airport Signs tool creates the annotation in ArcMap based on the data stored in the Airports 18C schema. The following steps will allow you to apply those changes that are necessary to use this functionality in an 18B geodatabase.
- Open the UpdateGeodatabaseSchema.exe file located at <Installation location>\AviationCharting\Desktop<version number>\Utilities\UpdateGeodatabaseSchema.
- Click the browse button (...) next to Input Schema.
- Choose AirportSign.xml.
- Click the browse button (...) to browse to the location of the log file that will summarize the differences.
- Click Compare to see the changes that need to be applied.