Calculate Visual Specifications (Production Mapping)
Summary
Production configuration tool that applies representation symbology as well as calculates label fields for multiple layers.
This tool uses relational queries to apply symbology to many layers and to calculate field values and in doing so, links feature attributes to representation rules and label expressions. This provides a single production workflow to create and maintain symbology and text.
Usage
-
You can apply multiple visual specifications to multiple input features.
-
The Visual Specifications Workspace contains the visual specifications you can apply to input features.
-
The calculation of the visual specification adds fields to the input features. The number and names of the fields will vary but will include:
- A field that holds the representation rule number. This is known as the representation rule field.
- An override field associated with the representation to store symbol exception information. The override field contains exception information on an individual representation.
- An optional new or existing field that holds calculated values. The calculated field contains the value that is produced as part of the selected specification.
-
The representation rule field contains the number of the symbol being used for the feature class in association with feature class representations.
The tool's output parameter type in ModelBuilder is multiple value. The multiple value is a list of Input Features.
Syntax
Parameter | Explanation | Data Type |
in_features [in_features,...] |
The feature layers, feature classes, or tables to which you want to apply the visual specifications. | Table View |
vs_workspace |
The location of the workspace that contains the visual specifications table (VST_Specification). This table can be stored in a personal, file, or enterprise geodatabase. | Workspace |
specifications [specifications,...] |
The visual specifications you want to apply to the selected feature layers and feature classes. | String |
render_representations |
Indicates whether calculated representations in in_features are displayed.
| Boolean |
display_labels |
Indicates whether calculated fields are displayed as labels.
| Boolean |
preserve_free_representations |
Indicates whether free representations are preserved.
| Boolean |
Code Sample
The following Python window script demonstrates how to use the CalculateVisualSpecifications tool.
import arcpy
# set gp environment
arcpy.env.workspace="c:/data"
arcpy.env.addOutputsToMap = True
# local variables
woods = "Austin.gdb/LandUse/WoodyA"
woodsLayer = "Woods"
vstWorkspace="ProductLibrary.gdb"
vizSpec = "TopoMap 1:24,000 :: TopoMap 1:24,000 Specification"
render="RENDER_REPRESENTATIONS"
labels="DISPLAY_LABELS"
preserve="NO_PRESERVE"
# make a feature layer from the woodyA feature class
arcpy.MakeFeatureLayer_management(woods, woodsLayer)
# NOTE: The comma delimited visual specification string may not display correctly
# in the dropdown list in the python window. You can copy the complete visual
# specification string from the Visual Specifications tool on the Production Symbology toolbar.
arcpy.CalculateVisualSpecifications_production(woodsLayer,vstWorkspace,vizSpec,render,labels,preserve)
This stand-alone script demonstrates how to use the CalculateVisualSpecifications tool.
# CalcVisualSpec.py
# Description: Executes Calculate Visual Specifications tool
# Import arcpy module
import arcinfo
import arcpy
# check out a foundation license
arcpy.CheckOutExtension("Foundation")
# vst workspace variable
vs_workspace = r'C:\student\PS_Carto\Database\WilsonPL.gdb'
# make two feature layers for the calc vst process
arcpy.MakeFeatureLayer_management(r'C:\student\PS_Carto\Database\Wilson.gdb\Transportation\Streets', 'streets_vst')
arcpy.MakeFeatureLayer_management(r'C:\student\PS_Carto\Database\Wilson.gdb\Utility\Gaslines', 'gaslines_vst')
# create a list of the two feature layers
features = ['streets_vst','gaslines_vst']
# exec Calculate Visual Specifications
arcpy.CalculateVisualSpecifications_production(features, vs_workspace, "Carto_Streets :: Cartographic represenation of streets", "RENDER_REPRESENTATIONS","NO_DISPLAY_LABELS","NO_PRESERVE")
# print the messages to the console
print arcpy.GetMessages()
arcpy.CheckInExtension("Foundation")