Summary
Converts a collection of CAD annotation features to geodatabase annotation. You can convert each level to individual annotation classes or merge them into a single class. Also, if you choose map layers as input, the level and font overrides will be honored.
Usage
The conversion requires an exclusive lock so it may not be opened by another application. Output written to a desktop, workgroup, or enterprise geodatabase will not be versioned.
You can convert each CAD drawing layer to individual annotation classes or merge them into a single class. Also, if you choose map layers as input, the drawing layers and font overrides will be honored.
Choose a reference scale that is roughly equal to the scale at which the annotation will normally be displayed. You can think of the reference scale as "freezing" the symbol and text sizes to a particular map scale. When viewing the map, the symbol and text sizes change depending on the viewing scale. Symbols and text will appear larger as you zoom in (the current map scale is larger than the reference scale) and smaller when you zoom out (the current map scale is smaller than the reference scale).
If you select CAD annotation features and/or use a definition query, only those features that are selected and visible will be converted.
If you check the option to require symbols to be selected from the symbol table, newly created or updated annotation features must reference one of the predefined symbols in the collection; the symbol cannot be stored inline. When unchecked, you may store any type of annotation (including graphics) in the annotation feature class.
Annotation that is feature-linked is associated with a specific feature in another feature class in the geodatabase. If checked, when you create the output annotation feature class, a relationship class will be automatically generated as well. This relationship class defines the relationship between the annotation and the features and enables you to define and customize this relationship. It will not establish the links between features and annotation. That will have to be done within the ArcMap Editor.
Syntax
arcpy.conversion.ImportCADAnnotation(input_features, output_featureclass, reference_scale, {use_levels}, {match_symbols_from_first_input}, {require_symbol_from_table}, {feature_linked}, {linked_feature_class}, {create_annotation_when_feature_added}, {update_annotation_when_feature_modified})
Parameter | Explanation | Data Type |
input_features [input_features,...] | The CAD annotation features that you want to convert to geodatabase annotation. If you choose a CAD annotation layer in ArcMap, the following properties of that layer will be honored during the conversion:
| Feature Layer |
output_featureclass | The geodatabase annotation feature class to which you want to convert CAD annotation. | Feature Class |
reference_scale | Enter the scale to use as a reference for the annotation. This sets the scale to which all symbol and text sizes in the annotation will be made relative. | Double |
use_levels (Optional) | Specify whether all CAD drawing layers or levels will be converted to annotation classes within the feature class.
| Boolean |
match_symbols_from_first_input (Optional) | If you are converting CAD annotation from more than one drawing file and need to substitute the font properties for a symbol and apply that to all the input features, you can use this option.
| Boolean |
require_symbol_from_table (Optional) | Specify if the output annotation features will reference a symbol stored in the symbol collection for the feature class.
| Boolean |
feature_linked (Optional) | Choose whether the output annotation feature class will be linked to the features in another feature class. The feature-linked option will not be available with an ArcGIS Desktop Basic license.
| Boolean |
linked_feature_class (Optional) | The feature class to which you are linking annotation features. The feature class must be a point, line, or polygon feature class. If converting annotation into a desktop, workgroup, or enterprise geodatabase, the link feature class must not be registered as versioned. This option is only available if you choose FEATURE_LINKED for the previous parameter. | Feature Layer |
create_annotation_when_feature_added (Optional) | Specify whether new annotation will be generated when you add new features to the feature class to which this annotation feature class is linked. This option is only available if you choose FEATURE_LINKED for the Feature-linked parameter and specify a Linked Feature Class.
| Boolean |
update_annotation_when_feature_modified (Optional) | Specify whether to automatically update the placement of annotation when you edit features in the feature class to which this annotation feature class is linked. This option is only available if you choose FEATURE_LINKED for the Feature-linked parameter and specify a Linked Feature Class.
| Boolean |
Code sample
ImportCADAnnotation Example (Python Window)
The following Python Window script demonstrates how to use the ImportCADAnnotation tool in immediate mode.
import arcpy
arcpy.env.workspace = "C:\data"
arcpy.ImportCADAnnotation_conversion("roads.dxf/annotation", "roads.gdb/roadsanno", 1200,
"CLASSES_FROM_LEVELS", "NO_MATCH", "NO_SYMBOL_REQUIRED",
"STANDARD", "", "AUTO_CREATE", "NO_AUTO_UPDATE")
ImportCADAnnotation Example (stand-alone Python script)
The following stand-alone script demonstrates how to use the ImportCADAnnotation tool.
# Name: ImportCADAnnotation_Example.py
# Description: Create a geodatabase and import CAD annotation into it using the
# ImportCADAnnotation tool.
# import system modules
import arcpy, os
from arcpy import env
# Set environment settings
# User input workspace - eg. C:/data
env.workspace = raw_input('Workspace: ')
# User input data name - eg. roads.dxf
inputCADAnno = raw_input('Data name: ')
# Create file geodatabase based on CAD file
fgdb = env.workspace + os.sep + inputCADAnno[:-4] + ".gdb"
arcpy.CreateFileGDB_management(os.path.dirname(fgdb), os.path.basename(fgdb))
# Set variables
inputFeatureClass = inputCADAnno + os.sep + "Annotation"
outFeatureClass = fgdb + os.sep + inputCADAnno.replace(".", "") + "_Anno"
refScale = 1200
useLevels = "CLASSES_FROM_LEVELS"
matchSymbols = "NO_MATCH"
requireSymbol = "NO_SYMBOL_REQUIRED"
featLinked = "STANDARD"
linkedFeatClass = ""
autoCreate = "AUTO_CREATE"
autoUpdate = "AUTO_UPDATE"
print "Importing CAD annotation..."
try:
arcpy.ImportCADAnnotation_conversion(inputFeatureClass, outFeatureClass,
refScale, useLevels, matchSymbols,
requireSymbol, featLinked,
linkedFeatClass, autoCreate, autoUpdate)
except:
# If an error occurred while running a tool print the messages
print arcpy.GetMessages()
print "Import complete"
Environments
Licensing information
- Basic: Limited
- Standard: Yes
- Advanced: Yes