This page follows the AutoCAD 2014 DXF Reference (Autodesk, March 2013). The OBJECTS section holds every object that has no graphical meaning and is not a symbol table or table entry: dictionaries, layouts, groups, materials, styles and so on. Objects are ordered by ownership, so an owner always comes before the objects it owns. The root owner of most objects is the named object dictionary, which is therefore always the first object in the section. Objects it does not own belong to other entities, objects or table entries. The DXF name of an object type defined by an application should have a matching class in the CLASSES section, or the object cannot be bound to the application that reads it.
In the tables, “DXF” and “APP” follow the reference: where a value is written differently in a DXF file and in AutoLISP or ObjectARX (APP), both are given. A point is one group in an application (code 10, say) but three groups in a file (10, 20, 30).
Common object group codes
These codes apply to almost every object and can appear with any object below. Some are written only when the object has a value other than the default. A dictionary’s record, including the named object dictionary’s, is just pairs of entry names and pointers to the entry objects. Developers should prefix their entry names with their registered developer prefix to avoid clashes.
| Code | Meaning |
|---|---|
| 0 | Object type |
| 5 | Handle |
| 102 | Start of an application-defined group {application_name (optional) |
| application-defined codes | Codes and values inside the 102 group, defined by the application (optional) |
| 102 | End of group, } (optional) |
| 102 | {ACAD_REACTORS: start of the persistent reactors group, present only if persistent reactors are attached (optional) |
| 330 | Soft-pointer ID/handle to owner dictionary (optional) |
| 102 | End of group, } (optional) |
| 102 | {ACAD_XDICTIONARY: start of the extension dictionary group (optional) |
| 360 | Hard-owner ID/handle to owner dictionary (optional) |
| 102 | End of group, } (optional) |
| 330 | Soft-pointer ID/handle to owner object |
ACAD_PROXY_OBJECT
A stand-in for an object whose application is not present. All codes are DXF codes. Code 92 is not used, and these objects never have graphics.
| Code | Meaning |
|---|---|
| 100 | Subclass marker AcDbProxyObject |
| 90 | Proxy object class ID, always 499 |
| 91 | Application object’s class ID, from the order of the class in the CLASSES section: the first class is 500, the next 501, and so on |
| 93 | Size of the object data in bits |
| 310 | Binary object data; may repeat (optional) |
| 330, 340, 350 or 360 | An object ID; may repeat (optional) |
| 94 | 0, marking the end of the object IDs |
| 95 | Drawing format of the object when it became a proxy, a 32-bit unsigned integer: low word AcDbDwgVersion, high word MaintenanceReleaseVersion |
| 70 | Original custom object data format: 0 DWG format, 1 DXF format |
ACDBDICTIONARYWDFLT
A dictionary with a default entry.
| Code | Meaning |
|---|---|
| 0 | Object name ACDBDICTIONARYWDFLT |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary |
| 102 | End of persistent reactors group, always } |
| 330 | Soft-owner ID/handle to owner object |
| 100 | Subclass marker AcDbDictionary |
| 281 | Duplicate record cloning flag, deciding how duplicate entries merge: 0 not applicable; 1 keep existing; 2 use clone; 3 <xref>$0$<name>; 4 $0$<name>; 5 unmangle name |
| 3 | Entry name (one for each entry) |
| 350 | Soft-owner ID/handle to entry object (one for each entry) |
| 100 | Subclass marker AcDbDictionaryWithDefault |
| 340 | Hard pointer to the default object; at present used only for the plot style dictionary’s default entry, named “Normal” |
ACDBPLACEHOLDER
| Code | Meaning |
|---|---|
| 0 | Object name ACDBPLACEHOLDER |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary |
| 102 | End of persistent reactors group, always } |
| 330 | Soft-pointer ID/handle to owner object |
DATATABLE
After the header, each column gives its type and name, and one value is written for every row in each column, using the code that fits the value.
| Code | Meaning |
|---|---|
| 0 | Object name DATATABLE |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary |
| 102 | End of persistent reactors group, always } |
| 330 | Soft-pointer ID/handle to owner object |
| 100 | Subclass marker AcDbDataTable |
| 70 | Version |
| 90 | Number of columns |
| 91 | Number of valid rows |
| 1 | Table name |
| 92, 2 | Column type and name; repeats for each column |
| 71 | Boolean value |
| 93 | Integer value |
| 40 | Double value |
| 3 | String value |
| 10, 20, 30 | 2D point |
| 11, 21, 31 | 3D point |
| 331 | Soft-pointer ID/handle to object value |
| 360 | Hard-pointer ownership ID |
| 350 | Soft-pointer ownership ID |
| 340 | Hard-pointer ID/handle |
| 330 | Soft-pointer ID/handle |
DICTIONARY
AutoCAD keeps items such as multiline styles and group definitions as objects in
dictionaries. Other applications may create and use their own dictionaries. The
prefix ACAD_ is reserved for AutoCAD.
| Code | Meaning |
|---|---|
| 0 | Object name DICTIONARY |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary |
| 102 | End of persistent reactors group, always } |
| 330 | Soft-pointer ID/handle to owner object |
| 100 | Subclass marker AcDbDictionary |
| 280 | Hard-owner flag: 1 means the entries are treated as hard-owned |
| 281 | Duplicate record cloning flag, deciding how duplicate entries merge: 0 not applicable; 1 keep existing; 2 use clone; 3 <xref>$0$<name>; 4 $0$<name>; 5 unmangle name |
| 3 | Entry name, one for each entry (optional) |
| 350 | Soft-owner ID/handle to entry object, one for each entry (optional) |
DICTIONARYVAR
AutoCAD uses DICTIONARYVAR objects to store named values for setvar and getvar without adding entries to the HEADER section. The system variables stored this way are DEFAULTVIEWCATEGORY, DIMADEC, DIMASSOC, DIMDSEP, DRAWORDERCTL, FIELDEVAL, HALOGAP, HIDETEXT, INDEXCTL, INTERSECTIONCOLOR, INTERSECTIONDISPLAY, MSOLESCALE, OBSCOLOR, OBSLTYPE, OLEFRAME, PROJECTNAME, SORTENTS, UPDATETHUMBNAIL and XCLIPFRAME.
| Code | Meaning |
|---|---|
| 0 | Object name DICTIONARYVAR |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary (ACDBVARIABLEDICTIONARY) |
| 102 | End of persistent reactors group, always } |
| 100 | Subclass marker DictionaryVariables |
| 280 | Object schema number (currently 0) |
| 1 | Value of the variable |
DIMASSOC
A DIMASSOC object links a dimension to drawing geometry, so the dimension updates when the geometry changes (an associative dimension).
| Code | Meaning |
|---|---|
| 0 | Object name DIMASSOC |
| 5 | Handle |
| 102 | Persistent reactors group, {ACAD_REACTORS} |
| 330 | Soft-pointer ID |
| 100 | Subclass marker AcDbDimAssoc |
| 330 | ID of the dimension object |
| 90 | Associativity flag: 1 first point reference; 2 second point reference; 4 third point reference; 8 fourth point reference |
| 70 | Trans-space flag (true/false) |
| 71 | Rotated dimension type (parallel, perpendicular) |
| 1 | Class name AcDbOsnapPointRef |
| 72 | Object snap type: 0 none; 1 endpoint; 2 midpoint; 3 centre; 4 node; 5 quadrant; 6 intersection; 7 insertion; 8 perpendicular; 9 tangent; 10 nearest; 11 apparent intersection; 12 parallel; 13 start point |
| 331 | ID of the main object (geometry) |
| 73 | Subentity type of the main object (edge, face) |
| 91 | GsMarker of the main object (index) |
| 301 | Handle, as a string, of the xref object |
| 40 | Geometry parameter for Near object snap |
| 10, 20, 30 | Object snap point in WCS |
| 332 | ID of the intersection object (geometry) |
| 74 | Subentity type of the intersection object (edge, face) |
| 92 | GsMarker of the intersection object (index) |
| 302 | Handle, as a string, of the intersection xref object |
| 75 | hasLastPointRef flag (true/false) |
FIELD
| Code | Meaning |
|---|---|
| 0 | Object name ACAD_FIELD |
| 1 | Evaluator ID |
| 2 | Field code string |
| 3 | Overflow of the field code string |
| 90 | Number of child fields |
| 360 | Child field ID (AcDbHardOwnershipId); repeats for each child |
| 97 | Number of object IDs used in the field code |
| 331 | Object ID used in the field code (AcDbSoftPointerId); repeats for each |
| 93 | Number of data sets in the field |
| 6 | Key string for the field data; a key and field pair repeats for each data set |
| 7 | Key string for the evaluated cache, fixed as ACFD_FIELD_VALUE |
| 90 | Data type of the field value |
| 91 | Long value (if the data type is long) |
| 140 | Double value (if the data type is double) |
| 330 | ID value, AcDbSoftPointerId (if the data type is ID) |
| 92 | Binary data buffer size (if the data type is binary) |
| 310 | Binary data (if the data type is binary) |
| 301 | Format string |
| 9 | Overflow of the format string |
| 98 | Length of the format string |
GEODATA
Geographic location data for a drawing. Unit scales convert design coordinates to metres by multiplication.
| Code | Meaning |
|---|---|
| 90 | AcDbGeoData object version: 1 = 2009; 2 = 2010 |
| 70 | Type of design coordinates: 0 unknown; 1 local grid; 2 projected grid; 3 geographic (latitude/longitude) |
| 330 | Object ID of the host block table record |
| 10, 20, 30 | Design point: reference point in WCS coordinates |
| 11, 21, 31 | Reference point in coordinate system coordinates; valid only when the coordinate type is local grid |
| 12, 22 | North direction vector (2D) |
| 40 | Horizontal unit scale: factor converting horizontal design coordinates to metres |
| 41 | Vertical unit scale: factor converting vertical design coordinates to metres |
| 91 | Horizontal units, a UnitsValue enumeration; kUnitsUndefined if the unit given by the horizontal unit scale is not in the enumeration |
| 92 | Vertical units, a UnitsValue enumeration; kUnitsUndefined if the unit is not in the enumeration |
| 210, 220, 230 | Up direction |
| 95 | Scale estimation method: 1 none; 2 user-specified scale factor; 3 grid scale at reference point; 4 prismoidal |
| 294 | Whether to apply sea level correction (boolean) |
| 141 | User-specified scale factor |
| 142 | Sea level elevation |
| 143 | Coordinate projection radius |
| 301 | Coordinate system definition string |
| 302 | GeoRSS tag |
| 305 | Observation “from” tag |
| 306 | Observation “to” tag |
| 307 | Observation coverage tag |
| 93 | Number of geo-mesh points |
| 13, 23 | Coordinate of a source mesh point (repeats) |
| 14, 24 | Coordinate of a destination mesh point (repeats) |
| 96 | Number of faces |
| 97 | Point index for a face (repeats) |
| 98 | Point index for a face (repeats) |
| 99 | Point index for a face (repeats) |
GROUP
| Code | Meaning |
|---|---|
| 0 | Object name GROUP |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS (the group appears in all dictionaries except the main dictionary) |
| 330 | Soft-pointer ID/handle to owner dictionary; for GROUP objects always the ACAD_GROUP entry of the named object dictionary |
| 102 | End of persistent reactors group, always } |
| 330 | Soft-pointer ID/handle to owner object |
| 100 | Subclass marker AcDbGroup |
| 300 | Group description |
| 70 | “Unnamed” flag: 1 unnamed; 0 named |
| 71 | Selectability flag: 1 selectable; 0 not selectable |
| 340 | Hard-pointer handle to an entity in the group (one per object) |
IDBUFFER
A utility object that is just a list of references to objects.
| Code | Meaning |
|---|---|
| 100 | Subclass marker AcDbIdBuffer |
| 330 | Soft-pointer reference to an entity (may repeat) |
IMAGEDEF
| Code | Meaning |
|---|---|
| 0 | Object name IMAGEDEF |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to the ACAD_IMAGE_DICT dictionary |
| 330 | Soft-pointer ID/handle to an IMAGEDEF_REACTOR object; one for each image instance |
| 102 | End of persistent reactors group, always } |
| 100 | Subclass marker AcDbRasterImageDef |
| 90 | Class version, 0 |
| 1 | File name of the image |
| 10, 20 | Image size in pixels, U and V (APP: one 2D point) |
| 11, 12 | Default size of one pixel in AutoCAD units: 11 is U, 12 is V (APP: 11 is one 2D point) |
| 280 | Image-is-loaded flag: 0 unloaded; 1 loaded |
| 281 | Resolution units: 0 no units; 2 centimetres; 5 inch |
IMAGEDEF_REACTOR
| Code | Meaning |
|---|---|
| 0 | Object name IMAGEDEF_REACTOR |
| 5 | Handle |
| 100 | Subclass marker AcDbRasterImageDefReactor |
| 90 | Class version, 2 |
| 330 | Object ID of the associated image object |
LAYER_FILTER
| Code | Meaning |
|---|---|
| 0 | Object name LAYER_FILTER |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary |
| 102 | End of persistent reactors group, always } |
| 100 | Subclass marker AcDbFilter |
| 100 | Subclass marker AcDbLayerFilter |
| 8 | Layer name (may repeat) |
LAYER_INDEX
| Code | Meaning |
|---|---|
| 0 | Object name LAYER_INDEX |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary |
| 102 | End of persistent reactors group, always } |
| 100 | Subclass marker AcDbIndex |
| 40 | Time stamp (Julian date) |
| 100 | Subclass marker AcDbLayerIndex |
| 8 | Layer name (may repeat) |
| 360 | Hard-owner reference to an IDBUFFER (may repeat) |
| 90 | Number of entries in the IDBUFFER list (may repeat) |
LAYOUT
A layout is a set of plot settings (the AcDbPlotSettings codes, listed under PLOTSETTINGS) followed by its own codes. Limits, insertion base and extents are those defined by LIMMIN, LIMMAX, INSBASE, EXTMIN and EXTMAX while the layout is current.
| Code | Meaning |
|---|---|
| 0 | Object name LAYOUT |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary |
| 102 | End of persistent reactors group, always } |
| 330 | Soft-pointer ID/handle to owner object |
| 100 | Subclass marker AcDbPlotSettings |
| PLOTSETTINGS codes | The codes after the AcDbPlotSettings marker; see PLOTSETTINGS |
| 100 | Subclass marker AcDbLayout |
| 1 | Layout name |
| 70 | Flags: 1 the PSLTSCALE value for this layout when it is current; 2 the LIMCHECK value for this layout when it is current |
| 71 | Tab order: this layout’s place among the tabs of the AutoCAD drawing window. The “Model” tab is always first whatever its tab order |
| 10, 20 | Minimum limits (APP: 10 is a 2D point) |
| 11, 21 | Maximum limits (APP: 11 is a 2D point) |
| 12, 22, 32 | Insertion base point (APP: 12 is a 3D point) |
| 14, 24, 34 | Minimum extents (APP: 14 is a 3D point) |
| 15, 25, 35 | Maximum extents (APP: 15 is a 3D point) |
| 146 | Elevation |
| 13, 23, 33 | UCS origin (APP: 13 is a 3D point) |
| 16, 26, 36 | UCS X axis (APP: 16 is a 3D vector) |
| 17, 27, 37 | UCS Y axis (APP: 17 is a 3D vector) |
| 76 | Orthographic type of the UCS: 0 not orthographic; 1 top; 2 bottom; 3 front; 4 back; 5 left; 6 right |
| 330 | ID/handle of this layout’s paper space block table record |
| 331 | ID/handle of the viewport last active in this layout when it was current |
| 345 | ID/handle of the AcDbUCSTableRecord if the UCS is a named UCS; absent for an unnamed UCS |
| 346 | ID/handle of the AcDbUCSTableRecord of the base UCS if the UCS is orthographic (76 not 0); if absent while 76 is not 0, the base UCS is WORLD |
| 333 | Shade plot ID |
LIGHTLIST
| Code | Meaning |
|---|---|
| 0 | Object name LIGHTLIST |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary; for LIGHTLIST objects always the ACAD_LIGHT entry of the named object dictionary |
| 102 | End of persistent reactors group, always } |
| 330 | Soft-pointer ID/handle to owner object |
| 100 | Subclass marker AcDbLightList |
| 90 | Version number |
| 90 | Number of lights |
| 5 | Light handle (one for each light) |
| 1 | Light name (one for each light) |
MATERIAL
Colour values are unsigned 32-bit integers holding an AcCmEntityColor. Each map (diffuse, specular, reflection, opacity, bump, refraction) has the same set of settings: blend factor, source, file name, projection, tiling, auto transform and a transform matrix. The values the reference gives for them, written once here and used in the table below:
- Colour method (default 0): 0 use current colour; 1 override current colour.
- Map source (default 1): 0 use current scene; 1 use image file (named by the file name; an empty file name means no map).
- Projection method of the mapper (default 1): 1 planar; 2 box; 3 cylinder; 4 sphere.
- Tiling method of the mapper (default 1): 1 tile; 2 crop; 3 clamp.
- Auto transform method of the mapper (bit set, default 1): 1 no auto transform; 2 scale mapper to current entity extents and translate it to the entity origin; 4 include current block transform in mapper transform.
- Transform matrix: 16 reals in row-major order, default the identity matrix.
| Code | Meaning |
|---|---|
| 0 | Object name MATERIAL |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS (the group appears in all dictionaries except the main dictionary) |
| 330 | Soft-pointer ID/handle to owner dictionary; for MATERIAL objects always the ACAD_MATERIAL entry of the named object dictionary |
| 102 | End of persistent reactors group, always } |
| 100 | Subclass marker AcDbMaterial |
| 1 | Material name (string) |
| 2 | Description (string, default empty) |
| 70 | Ambient colour method (default 0): 0 use current colour; 1 override current colour |
| 40 | Ambient colour factor (real, default 1.0, range 0.0 to 1.0) |
| 90 | Ambient colour value |
| 71 | Diffuse colour method (default 0): 0 use current colour; 1 override current colour |
| 41 | Diffuse colour factor (real, default 1.0, range 0.0 to 1.0) |
| 91 | Diffuse colour value |
| 42 | Diffuse map blend factor (real, default 1.0) |
| 72 | Diffuse map source (default 1): 0 use current scene; 1 use image file |
| 3 | Diffuse map file name (string, default empty) |
| 73 | Projection method of the diffuse map mapper (default 1): 1 planar; 2 box; 3 cylinder; 4 sphere |
| 74 | Tiling method of the diffuse map mapper (default 1): 1 tile; 2 crop; 3 clamp |
| 75 | Auto transform method of the diffuse map mapper (bit set, default 1): 1 none; 2 scale to entity extents and translate to entity origin; 4 include block transform |
| 43 | Transform matrix of the diffuse map mapper (16 reals, row-major, default identity) |
| 44 | Specular gloss factor (real, default 0.5) |
| 76 | Specular colour method (default 0): 0 use current colour; 1 override current colour |
| 45 | Specular colour factor (real, default 1.0, range 0.0 to 1.0) |
| 92 | Specular colour value |
| 46 | Specular map blend factor (real, default 1.0) |
| 77 | Specular map source (default 1): 0 use current scene; 1 use image file |
| 4 | Specular map file name (string, default empty) |
| 78 | Projection method of the specular map mapper (default 1): 1 planar; 2 box; 3 cylinder; 4 sphere |
| 79 | Tiling method of the specular map mapper (default 1): 1 tile; 2 crop; 3 clamp |
| 170 | Auto transform method of the specular map mapper (bit set, default 1): 1 none; 2 scale to entity extents and translate to entity origin; 4 include block transform |
| 47 | Transform matrix of the specular map mapper (16 reals, row-major, default identity) |
| 48 | Blend factor of the reflection map (real, default 1.0) |
| 171 | Reflection map source (default 1): 0 use current scene; 1 use image file |
| 6 | Reflection map file name (string, default empty) |
| 172 | Projection method of the reflection map mapper (default 1): 1 planar; 2 box; 3 cylinder; 4 sphere |
| 173 | Tiling method of the reflection map mapper (default 1): 1 tile; 2 crop; 3 clamp |
| 174 | Auto transform method of the reflection map mapper (bit set, default 1): 1 none; 2 scale to entity extents and translate to entity origin; 4 include block transform |
| 49 | Transform matrix of the reflection map mapper (16 reals, row-major, default identity) |
| 140 | Opacity percent (real, default 1.0) |
| 141 | Blend factor of the opacity map (real, default 1.0) |
| 175 | Opacity map source (default 1): 0 use current scene; 1 use image file |
| 7 | Opacity map file name (string, default empty) |
| 176 | Projection method of the opacity map mapper (default 1): 1 planar; 2 box; 3 cylinder; 4 sphere |
| 177 | Tiling method of the opacity map mapper (default 1): 1 tile; 2 crop; 3 clamp |
| 178 | Auto transform method of the opacity map mapper (bit set, default 1): 1 none; 2 scale to entity extents and translate to entity origin; 4 include block transform |
| 142 | Transform matrix of the opacity map mapper (16 reals, row-major, default identity) |
| 143 | Blend factor of the bump map (real, default 1.0) |
| 179 | Bump map source (default 1): 0 use current scene; 1 use image file |
| 8 | Bump map file name (string, default empty) |
| 270 | Projection method of the bump map mapper (default 1): 1 planar; 2 box; 3 cylinder; 4 sphere |
| 271 | Tiling method of the bump map mapper (default 1): 1 tile; 2 crop; 3 clamp |
| 272 | Auto transform method of the bump map mapper (bit set, default 1): 1 none; 2 scale to entity extents and translate to entity origin; 4 include block transform |
| 144 | Transform matrix of the bump map mapper (16 reals, row-major, default identity) |
| 145 | Refraction index (real, default 1.0) |
| 146 | Blend factor of the refraction map (real, default 1.0) |
| 273 | Refraction map source (default 1): 0 use current scene; 1 use image file |
| 9 | Refraction map file name (string, default empty) |
| 274 | Projection method of the refraction map mapper (default 1): 1 planar; 2 box; 3 cylinder; 4 sphere |
| 275 | Tiling method of the refraction map mapper (default 1): 1 tile; 2 crop; 3 clamp |
| 276 | Auto transform method of the refraction map mapper (bit set, default 1): 1 none; 2 scale to entity extents and translate to entity origin; 4 include block transform |
| 147 | Transform matrix of the refraction map mapper (16 reals, row-major, default identity) |
| 460 | Colour bleed scale |
| 461 | Indirect dump scale |
| 462 | Reflectance scale |
| 463 | Transmittance scale |
| 290 | Two-sided material |
| 464 | Luminance |
| 270 | Luminance mode |
| 271 | Normal map method |
| 465 | Normal map strength |
| 42 | Normal map blend factor |
| 72 | Normal map source |
| 3 | Normal map source file name |
| 73 | Normal mapper projection |
| 74 | Normal mapper tiling |
| 75 | Normal mapper auto transform |
| 43 | Normal mapper transform |
| 293 | Materials anonymous |
| 272 | Global illumination mode |
| 273 | Final gather mode |
| 300 | GenProcName |
| 291 | GenProcValBool |
| 271 | GenProcValInt |
| 469 | GenProcValReal |
| 301 | GenProcValText |
| 292 | GenProcTableEnd |
| 62 | GenProcValColorIndex |
| 420 | GenProcValColorRGB |
| 430 | GenProcValColorName |
| 270 | Map UTile |
| 148 | Translucence |
| 90 | Self-illumination |
| 468 | Reflectivity |
| 93 | Illumination model |
| 94 | Channel flags |
The reference lists the codes from 460 on by name only, with no values or defaults; several reuse codes from the first part of the object.
MLINESTYLE
Code 2 in MLINE entities and MLINESTYLE objects is a redundant copy of the style name. It is safe to read but should never be changed. To change the style, change the MLINE’s 340 group, which points to the right MLINESTYLE object, or the 3 group in the MLINESTYLE dictionary that comes before the 350 group holding the style’s handle.
| Code | Meaning |
|---|---|
| 0 | Object name MLINESTYLE |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS (the group appears in all dictionaries except the main dictionary) |
| 330 | Soft-pointer ID/handle to owner dictionary; for MLINESTYLE objects always the ACAD_MLINESTYLE entry of the named object dictionary |
| 102 | End of persistent reactors group, always } |
| 100 | Subclass marker AcDbMlineStyle |
| 2 | Multiline style name |
| 70 | Flags: 1 fill on; 2 display mitres; 16 start square (line) cap; 32 start inner arcs cap; 64 start round (outer arcs) cap; 256 end square (line) cap; 512 end inner arcs cap; 1024 end round (outer arcs) cap |
| 3 | Style description (string, up to 255 characters) |
| 62 | Fill colour (integer, default 256) |
| 51 | Start angle (real, default 90 degrees) |
| 52 | End angle (real, default 90 degrees) |
| 71 | Number of elements |
| 49 | Element offset (real, no default); one for each element |
| 62 | Element colour (integer, default 0); one for each element |
| 6 | Element linetype (string, default BYLAYER); one for each element |
OBJECT_PTR
| Code | Meaning |
|---|---|
| 0 | Object name OBJECT_PTR |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary |
| 102 | End of persistent reactors group, always } |
| 1001 | Begin ASE extended data (DC015) |
PLOTSETTINGS
A named page setup. The same codes follow the AcDbPlotSettings marker in each LAYOUT. Margins, paper size and plot origin are in millimetres.
| Code | Meaning |
|---|---|
| 0 | Object name PLOTSETTINGS |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary |
| 102 | End of persistent reactors group, always } |
| 330 | Soft-pointer ID/handle to owner object |
| 100 | Subclass marker AcDbPlotSettings |
| 1 | Page setup name |
| 2 | Name of the system printer or plot configuration file |
| 4 | Paper size |
| 6 | Plot view name |
| 40 | Unprintable margin on the left of the paper |
| 41 | Unprintable margin at the bottom of the paper |
| 42 | Unprintable margin on the right of the paper |
| 43 | Unprintable margin at the top of the paper |
| 44 | Plot paper size: physical paper width |
| 45 | Plot paper size: physical paper height |
| 46 | Plot origin: X of the origin offset |
| 47 | Plot origin: Y of the origin offset |
| 48 | Plot window area: X of the lower-left window corner |
| 49 | Plot window area: Y of the upper-right window corner |
| 140 | Plot window area: X of the lower-left window corner |
| 141 | Plot window area: Y of the upper-right window corner |
| 142 | Numerator of a custom print scale: real-world (paper) units |
| 143 | Denominator of a custom print scale: drawing units |
| 70 | Plot layout flags: 1 PlotViewportBorders; 2 ShowPlotStyles; 4 PlotCentered; 8 PlotHidden; 16 UseStandardScale; 32 PlotPlotStyles; 64 ScaleLineweights; 128 PrintLineweights; 512 DrawViewportsFirst; 1024 ModelType; 2048 UpdatePaper; 4096 ZoomToPaperOnUpdate; 8192 Initializing; 16384 PrevPlotInit |
| 72 | Plot paper units: 0 inches; 1 millimetres; 2 pixels |
| 73 | Plot rotation: 0 none; 1 90 degrees anticlockwise; 2 upside-down; 3 90 degrees clockwise |
| 74 | Plot type (the part of paper space sent to the media): 0 last screen display; 1 drawing extents; 2 drawing limits; 3 view named by code 6; 4 window given by codes 48, 49, 140 and 141; 5 layout information |
| 7 | Current style sheet |
| 75 | Standard scale type: 0 scaled to fit; 1 1/128"=1'; 2 1/64"=1'; 3 1/32"=1'; 4 1/16"=1'; 5 3/32"=1'; 6 1/8"=1'; 7 3/16"=1'; 8 1/4"=1'; 9 3/8"=1'; 10 1/2"=1'; 11 3/4"=1'; 12 1"=1'; 13 3"=1'; 14 6"=1'; 15 1'=1'; 16 1:1; 17 1:2; 18 1:4; 19 1:8; 20 1:10; 21 1:16; 22 1:20; 23 1:30; 24 1:40; 25 1:50; 26 1:100; 27 2:1; 28 4:1; 29 8:1; 30 10:1; 31 100:1; 32 1000:1 |
| 76 | Shade plot mode: 0 as displayed; 1 wireframe; 2 hidden; 3 rendered |
| 77 | Shade plot resolution level: 0 draft; 1 preview; 2 normal; 3 presentation; 4 maximum; 5 custom |
| 78 | Shade plot custom DPI, 100 to 32767; used only when the resolution level is 5 (custom) |
| 147 | Floating-point scale factor for the standard scale in code 75 |
| 148 | Paper image origin: X |
| 149 | Paper image origin: Y |
| 333 | Shade plot ID/handle (optional) |
RASTERVARIABLES
| Code | Meaning |
|---|---|
| 0 | Object name RASTERVARIABLES |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary; for RASTERVARIABLES always the ACAD_IMAGE_VARS entry of the named object dictionary |
| 102 | End of persistent reactors group, always } |
| 100 | Subclass marker AcDbRasterVariables |
| 90 | Class version, 0 |
| 70 | Display image frame: 0 no frame; 1 display frame |
| 71 | Image display quality (screen only): 0 draft; 1 high |
| 72 | What one AutoCAD unit equals when inserting and scaling images that have a resolution: 0 none; 1 millimetre; 2 centimetre; 3 metre; 4 kilometre; 5 inch; 6 foot; 7 yard; 8 mile |
RENDER
Three objects hold render settings.
MENTALRAYRENDERSETTINGS
| Code | Meaning |
|---|---|
| 0 | Object name MENTALRAYRENDERSETTINGS |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary |
| 102 | End of persistent reactors group, always } |
| 100 | Subclass marker AcDbRenderSettings |
| 90 | Class version, 1 |
| 1 | Render preset name |
| 290 | Render materials flag |
| 90 | Texture sampling quality |
| 290 | Render back faces flag |
| 290 | Render shadows flag |
| 1 | Preview image file name (can be blank) |
| 100 | Subclass marker AcDbMentalRayRenderSettings |
| 90 | Class version, 1 |
| 90 | Sampling rate (minimum) |
| 90 | Sampling rate (maximum) |
| 70 | Sampling filter type: 0 box; 1 triangle; 2 Gauss; 3 Mitchell; 4 Lanczos |
| 40, 40 | Filter width, height |
| 40, 40, 40, 40 | Sampling contrast colour: red, green, blue and alpha |
| 70 | Shadow mode: 0 simple; 1 sort; 2 segment |
| 290 | Shadow map flag; applies only to lights using mapped shadows |
| 290 | Ray tracing flag |
| 90, 90, 90 | Ray tracing depth for reflections, refractions, and maximum depth |
| 290 | Global illumination flag |
| 90 | Photons per sample count |
| 290 | Global illumination radius flag |
| 40 | Global illumination sample radius |
| 90 | Photons per light |
| 90, 90, 90 | Global illumination photon trace depth for reflections, refractions, and maximum depth |
| 290 | Final gather flag |
| 90 | Final gather ray count |
| 290, 290 | Final gather minimum and maximum radius flags |
| 290 | Final gather pixels flag |
| 40, 40 | Final gather minimum and maximum sample radius |
| 40 | Luminance scale (energy multiplier) |
| 70 | Diagnostic mode: 0 off; 1 grid; 2 photon; 4 BSP |
| 70 | Diagnostic grid mode: 0 object; 1 world; 2 camera |
| 40 | Grid size |
| 70 | Diagnostic photon mode: 0 density; 1 irradiance |
| 70 | Diagnostic BSP mode: 0 depth; 1 size |
| 290 | Export MI statistics flag |
| 1 | MI statistics file name (can be blank) |
| 90 | Tile size |
| 70 | Tile order: 0 Hilbert; 1 spiral; 2 left to right; 3 right to left; 4 top to bottom; 5 bottom to top |
| 90 | Memory limit |
RENDERENVIRONMENT
| Code | Meaning |
|---|---|
| 0 | Object name RENDERENVIRONMENT |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary; always the ACAD_RENDER_ENVIRONMENT entry of the named object dictionary |
| 102 | End of persistent reactors group, always } |
| 100 | Subclass marker AcDbRenderEnvironment |
| 90 | Class version, 1 |
| 290 | Fog enabled flag; 1 if enabled |
| 290 | Fog in background flag; 1 if enabled |
| 280, 280, 280 | Fog colour: red, green and blue |
| 40, 40 | Fog density: near and far density as a percentage |
| 40, 40 | Near and far distance as a percentage of the distance between the camera and the far clipping plane |
| 290 | Environment image flag |
| 1 | Environment image file name (can be blank if the previous flag is 0) |
RENDERGLOBAL
| Code | Meaning |
|---|---|
| 0 | Object name RENDERGLOBAL |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary; always the ACAD_RENDER_GLOBAL entry of the named object dictionary |
| 102 | End of persistent reactors group, always } |
| 100 | Subclass marker AcDbRenderGlobal |
| 90 | Class version, 2 |
| 90 | Render procedure: 0 view; 1 crop; 2 selection |
| 90 | Render destination: 0 render window; 1 viewport |
| 290 | Save to file flag |
| 1 | File name for saving the rendered image |
| 90 | Image width |
| 90 | Image height |
| 290 | Predefined presets first flag |
| 290 | High info level flag |
SECTION objects
A section manager lists the section entities. Section settings hold, for each section type, nested type settings, which in turn hold geometry settings; string markers in groups 1, 2 and 3 open and close each part.
SECTIONMANAGER
| Code | Meaning |
|---|---|
| 0 | Object name SECTIONMANAGER |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary |
| 102 | End of persistent reactors group, always } |
| 330 | Soft-owner ID/handle to owner object |
| 100 | Subclass marker AcDbSectionManager |
| 70 | Requires full update flag |
| 90 | Number of sections |
| 330 | Soft-pointer ID/handle to a section entity; repeats for each section |
SECTIONSETTINGS
| Code | Meaning |
|---|---|
| 0 | Object name SECTIONSETTINGS |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary |
| 102 | End of persistent reactors group, always } |
| 330 | Soft-owner ID/handle to owner object |
| 100 | Subclass marker AcDbSectionSettings |
| 90 | Section type |
| 91 | Number of generation settings |
| section type settings | Section type settings data follows |
Section type settings
| Code | Meaning |
|---|---|
| 1 | SectionTypeSettings marker |
| 90 | Section type |
| 91 | Generation option flag |
| 92 | Number of source objects |
| 330 | Soft-pointer ID/handle to a source object; repeats for each source object |
| 331 | Soft-pointer ID/handle to the destination block object |
| 1 | Destination file name |
| 93 | Number of generation settings |
| 2 | SectionGeometrySettings data marker |
| section geometry settings | Section geometry settings data |
| 3 | SectionTypeSettingsEnd marker |
Section geometry settings
| Code | Meaning |
|---|---|
| 90 | Section type |
| 91 | Geometry count |
| 92 | Bit flags |
| 63 | Colour data |
| 8 | Layer name |
| 6 | Linetype name |
| 40 | Linetype scale |
| 1 | Plot style name |
| 370 | Lineweight |
| 70 | Face transparency |
| 71 | Edge transparency |
| 72 | Hatch pattern type |
| 2 | Hatch pattern name |
| 41 | Hatch angle |
| 42 | Hatch scale |
| 43 | Hatch spacing |
| 3 | SectionGeometrySettingsEnd data marker |
SORTENTSTABLE
The DRAWORDER command attaches a SORTENTSTABLE to the extension dictionary of the
*Model_Space or *Paper_Space block, under the name
ACAD_SORTENTS. It gives each entity a different sort handle, which
sets the order in which entities are regenerated. If the SORTENTS regen bit (16) is
set, AutoCAD regenerates entities in ascending handle order.
| Code | Meaning |
|---|---|
| 0 | Object name SORTENTSTABLE |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary (ACAD_SORTENTS) |
| 102 | End of persistent reactors group, always } |
| 100 | Subclass marker AcDbSortentsTable |
| 330 | Soft-pointer ID/handle to owner (at present only the *MODEL_SPACE or *PAPER_SPACE blocks) |
| 331 | Soft-pointer ID/handle to an entity (zero or more) |
| 5 | Sort handle (zero or more) |
SPATIAL_FILTER
| Code | Meaning |
|---|---|
| 0 | Object name SPATIAL_FILTER |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary (SPATIAL) |
| 102 | End of persistent reactors group, always } |
| 100 | Subclass marker AcDbFilter |
| 100 | Subclass marker AcDbSpatialFilter |
| 70 | Number of points on the clip boundary: 2 a rectangular boundary (lower-left and upper-right); more than 2 a polyline boundary |
| 10, 20 | Clip boundary definition point, in OCS, based on an xref scale of 1; always 2 or more (APP: 10 is a 2D point) |
| 210, 220, 230 | Normal to the plane containing the clip boundary (APP: 210 is a 3D vector) |
| 11, 21, 31 | Origin of the local coordinate system of the clip boundary (APP: 11 is a 3D point) |
| 71 | Clip boundary display: 0 disabled; 1 enabled |
| 72 | Front clipping plane flag: 0 no; 1 yes |
| 40 | Front clipping plane distance (if code 72 is 1) |
| 73 | Back clipping plane flag: 0 no; 1 yes |
| 41 | Back clipping plane distance (if code 73 is 1) |
| 40 | 4×3 transformation matrix in column-major order, always 12 entries: the inverse of the original block reference (INSERT) transformation, the one applied to all entities in the block when the block reference is regenerated |
| 40 | 4×3 transformation matrix in column-major order, 12 entries, that transforms points into the coordinate system of the clip boundary |
SPATIAL_INDEX
SPATIAL_INDEX is always written empty to a DXF file and can be ignored.
| Code | Meaning |
|---|---|
| 0 | Object name SPATIAL_INDEX |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary |
| 102 | End of persistent reactors group, always } |
| 100 | Subclass marker AcDbIndex |
| 40 | Time stamp (Julian date) |
| 100 | Subclass marker AcDbSpatialIndex |
SUNSTUDY
| Code | Meaning |
|---|---|
| 0 | Object name SUNSTUDY |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary |
| 102 | End of persistent reactors group, always } |
| 330 | Soft-owner ID/handle to owner object |
| 100 | Subclass marker AcDbSunStudy |
| 90 | Version number |
| 1 | Sun setup name |
| 2 | Description |
| 70 | Output type |
| 3 | Sheet set name; only if the output type is sheet set |
| 290 | Use subset flag; only if the output type is sheet set |
| 4 | Sheet subset name; only if the output type is sheet set |
| 291 | Select dates from calendar flag |
| 91 | Date input array size (the number of dates picked) |
| 90 | Julian day, the date; one for each date picked |
| 90 | Seconds past midnight, the time of day; one for each date picked |
| 292 | Select range of dates flag |
| 93 | Start time, if the range of dates flag is true |
| 94 | End time, if the range of dates flag is true |
| 95 | Interval in seconds, if the range of dates flag is true |
| 73 | Number of hours |
| 290 | Hour; one for each hour counted by code 73 |
| 340 | Page setup wizard hard pointer ID |
| 341 | View hard pointer ID |
| 342 | Visual style ID |
| 74 | Shade plot type |
| 75 | Viewports per page |
| 76 | Number of rows for viewport distribution |
| 77 | Number of columns for viewport distribution |
| 40 | Spacing |
| 293 | Lock viewports flag |
| 294 | Label viewports flag |
| 343 | Text style ID |
TABLESTYLE
| Code | Meaning |
|---|---|
| 0 | Object name TABLESTYLE |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS (the group appears in all dictionaries except the main dictionary) |
| 330 | Soft-pointer ID/handle to owner dictionary; for TABLESTYLE objects always the ACAD_TABLESTYLE entry of the named object dictionary |
| 102 | End of persistent reactors group, always } |
| 100 | Subclass marker AcDbTableStyle |
| 280 | Version number: 0 = 2010 |
| 3 | Table style description (string, up to 255 characters) |
| 70 | Flow direction (integer): 0 down; 1 up |
| 71 | Flags (bit-coded) |
| 40 | Horizontal cell margin (real, default 0.06) |
| 41 | Vertical cell margin (real, default 0.06) |
| 280 | Title suppressed: 0 not suppressed; 1 suppressed |
| 281 | Column heading suppressed: 0 not suppressed; 1 suppressed |
Repeated for every cell
| Code | Meaning |
|---|---|
| 7 | Text style name (string, default STANDARD) |
| 140 | Text height (real) |
| 170 | Cell alignment (integer) |
| 62 | Text colour (integer, default BYBLOCK) |
| 63 | Cell fill colour (integer, default 7) |
| 283 | Background colour enabled (default 0): 0 disabled; 1 enabled |
| 90 | Cell data type |
| 91 | Cell unit type |
| 274–279 | Lineweight of each border type of the cell (default kLnWtByBlock) |
| 284–289 | Visibility of each border type of the cell (default 1): 0 invisible; 1 visible |
| 64–69 | Colour of each border type of the cell (default BYBLOCK) |
UNDERLAYDEFINITION
| Code | Meaning |
|---|---|
| 0 | Object name UNDERLAYDEFINITION |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary |
| 102 | End of persistent reactors group, always } |
| 100 | Subclass marker AcDbUnderlayDefinition |
| 1 | Underlay path and file name |
| 2 | Underlay name |
VBA_PROJECT
| Code | Meaning |
|---|---|
| 0 | Object name VBA_PROJECT |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary |
| 102 | End of persistent reactors group, always } |
| 330 | Soft-owner ID/handle to owner object |
| 100 | Subclass marker AcDbVbaProject |
| 90 | Number of bytes of binary data in the 310 groups that follow |
| 310 | Binary object data: several entries holding the VBA project (DXF) |
VISUALSTYLE
| Code | Meaning |
|---|---|
| 0 | Object name VISUALSTYLE |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary |
| 102 | End of persistent reactors group, always } |
| 330 | Soft-owner ID/handle to owner object |
| 100 | Subclass marker AcDbVisualStyle |
| 2 | Description |
| 70 | Type |
| 71 | Face lighting model: 0 invisible; 1 visible; 2 Phong; 3 Gooch |
| 72 | Face lighting quality: 0 no lighting; 1 per-face lighting; 2 per-vertex lighting |
| 73 | Face colour mode: 0 no colour; 1 object colour; 2 background colour; 3 custom colour; 4 mono colour; 5 tinted; 6 desaturated |
| 90 | Face modifiers: 0 no modifiers; 1 opacity; 2 specular |
| 40 | Face opacity level |
| 41 | Face specular level |
| 62, 63 | Colour |
| 421 | Face style mono colour |
| 74 | Edge style model: 0 no edges; 1 isolines; 2 facet edges |
| 91 | Edge style |
| 64 | Edge intersection colour |
| 65 | Edge obscured colour |
| 75 | Edge obscured linetype |
| 175 | Edge intersection linetype |
| 42 | Edge crease angle |
| 92 | Edge modifiers |
| 66 | Edge colour |
| 43 | Edge opacity level |
| 76 | Edge width |
| 77 | Edge overhang |
| 78 | Edge jitter |
| 67 | Edge silhouette colour |
| 79 | Edge silhouette width |
| 170 | Edge halo gap |
| 171 | Number of edge isolines |
| 290 | Edge hide precision flag |
| 174 | Edge style apply flag |
| 93 | Display style display settings |
| 44 | Brightness |
| 173 | Shadow type |
| 291 | Internal use only flag |
WIPEOUTVARIABLES
| Code | Meaning |
|---|---|
| 0 | Object name WIPEOUTVARIABLES |
| 5 | Handle |
| 102 | Start of persistent reactors group, always {ACAD_REACTORS |
| 330 | Soft-pointer ID/handle to owner dictionary; the reference gives the ACAD_IMAGE_VARS entry of the named object dictionary |
| 102 | End of persistent reactors group, always } |
| 100 | Subclass marker AcDbRasterVariables |
| 90 | Class version, 0 |
| 70 | Display image frame: 0 no frame; 1 display frame |
XRECORD
Xrecords store arbitrary data. They are made of ordinary object group codes (not extended data codes) from 1 to 369. They are like extended data but not limited in size or order. They do not disturb releases R13c0 to R13c3, but disappear if read into AutoCAD before R13c4.
| Code | Meaning |
|---|---|
| 100 | Subclass marker AcDbXrecord |
| 280 | Duplicate record cloning flag, deciding how duplicate entries merge: 0 not applicable; 1 keep existing; 2 use clone; 3 <xref>$0$<name>; 4 $0$<name>; 5 unmangle name |
| 1–369, except 5 and 105 | Values the application may use in any way |
0
DICTIONARY
5
2A
330
C
100
AcDbDictionary
280
0
281
1
3
MYAPP_SETTINGS
350
2B
0
XRECORD
5
2B
102
{ACAD_REACTORS
330
2A
102
}
330
2A
100
AcDbXrecord
280
1
1
Hello
40
2.5
MYAPP_SETTINGS, which points to an xrecord. The xrecord names the
dictionary as its owner and as a persistent reactor, then keeps a string in
group 1 and a real in group 40. Handles and values are made up.THUMBNAILIMAGE section
This section exists only if a preview image was saved with the DXF file.
| Code | Meaning |
|---|---|
| 90 | Number of bytes in the image (and in the binary chunk records that follow) |
| 310 | Preview image data, over several lines of up to 256 characters each |
Ownership and pointer references
Every database object has a handle that is unique in the drawing and constant for its lifetime (handles are always on since Release 13), and may have extended data, a persistent reactor table and an owner pointer to an extension dictionary. Symbol tables and their records are database objects too, so they have handles and can carry extended data and persistent reactors.
Objects refer to other objects in the same drawing through four kinds of reference handle, each with its own group code range:
| Code | Meaning |
|---|---|
| 320–329 | Arbitrary object handles, taken as they are and not translated during INSERT and XREF |
| 330–339 | Soft-pointer handles |
| 340–349 | Hard-pointer handles |
| 350–359 | Soft-owner handles |
| 360–369 | Hard-owner handles |
- Pointer and owner handles are kept up to date in insert, xref and wblock: links between objects in the copied set are redirected to the copies, and links to other objects stay as they were.
- A pointer means the object uses another object and shares access to it, but does not possess it. An owner is responsible for the objects it has owner handles to, and ownership drives the writing of whole DWG and DXF files from a few root objects.
- An object can have any number of pointers to it but only one owner.
- Hard references, pointer or owner, protect an object from being purged; soft references do not. Choose the kind by whether the reference should protect the object from PURGE.
- In AutoCAD, block definitions and complex entities are hard owners of their elements; symbol tables and dictionaries are soft owners of theirs. Polylines hard-own their VERTEX and SEQEND entities; inserts hard-own their ATTRIB and SEQEND entities.
- Arbitrary handles are stored as handles, never turned into session identifiers or entity names, and are ignored when handles are translated in a merge. A common use is referring to objects in other DXF and DWG files. In every environment they can be exchanged for entity names of the current drawing with the handent functions.
- Extended data 1005 handles behave like soft pointers: they are translated when
the host object is merged into another drawing, but stored as handles and not
turned into entity names. In AutoLISP the other reference ranges appear as entity
names, and in ObjectARX as
ads_namevalues (APP only).
Subclass markers
An object may be filed by several class members, one for each level of inheritance
that files data. Each class’s data starts with a subclass marker: group 100 followed
by the class name. The marker does not change the object’s state; it lets a DXF
parser route the groups that follow to the right software. Because each class has
its own block, the same codes can mean different things in each. The reference’s
example is an object FOOGRANDCHILD of class
AcDbSonOfSonOfFoo, derived from AcDbSonOfFoo: after its
handle come 100 AcDbFoo with a 10/20/30 point,
100 AcDbSonOfFoo with another 10/20/30 point for a different purpose,
and 100 AcDbSonOfSonOfFoo with a third, then its extended data
(1001 APP_1, 1070 45, 1001 APP_2,
1004 18A5B3EF2C199A).
Extension dictionaries and persistent reactors
Any object or entity may have either of these optional groups.
- The extension dictionary group (
102 {ACAD_XDICTIONARY, a 360 hard owner handle,102 }) stores the handle of a dictionary that belongs to the object. That dictionary may hold entries, so any database object can have other database objects attached to it. - The persistent reactors group (
102 {ACAD_REACTORS, 330 handles,102 }) stores the handles of objects that have registered themselves as reactors on the object.
Extended data
Extended data (xdata) is created by AutoLISP or ObjectARX applications and follows
an entity’s normal data. Unlike normal data, the same code may appear many times and
order matters. It is grouped by registered application: each group starts with a
1001 group naming the application, which matches an APPID table entry. An
application can use as many APPID names as it needs; they are permanent, but can be
purged when unused. Each APPID can have at most one data group on each entity, and
the application decides the order and meaning of the groups inside it. The
reference’s example is an INSERT on layer TOP followed by
1001 AME_SOL data mixing 1002, 1070, 1071, 1010/1020/1030, 1005, 1040
and 1000 groups.
| Code | Meaning |
|---|---|
| 1000 | String, up to 255 bytes (the 256th byte is reserved for the null character) |
| 1001 | Application name, also a string, up to 31 bytes (the 32nd is reserved for the null character). Never add a 1001 group inside your data: AutoCAD takes it as the start of a new application’s group |
| 1002 | Control string, { or }. A left brace opens a list and a right brace closes the most recent one; lists can nest. AutoCAD checks that the braces balance when it reads an application’s data |
| 1003 | Layer name associated with the extended data |
| 1004 | Binary data in variable-length chunks of at most 127 bytes; in ASCII DXF written as hexadecimal digits, two per byte |
| 1005 | Database handle of an entity in the drawing. On INSERT, INSERT *, XREF Bind, XBIND, partial OPEN, EXPLODE and other operations, these handles are translated like the entity handles they match, keeping the link. AUDIT treats a handle that matches no entity as an error and, when fixing, sets it to 0 |
| 1010, 1020, 1030 | Three reals, X, Y, Z: a point or vector that AutoCAD never alters |
| 1011, 1021, 1031 | World space position: moved, scaled, rotated and mirrored with the parent entity, and stretched by STRETCH when the point lies in the selection window |
| 1012, 1022, 1032 | World space displacement: scaled, rotated and mirrored with the parent, but not moved or stretched |
| 1013, 1023, 1033 | World direction: rotated and mirrored with the parent, but not moved, scaled or stretched |
| 1040 | Real |
| 1041 | Distance: a real scaled with the parent entity |
| 1042 | Scale factor: a real scaled with the parent; how it differs from a distance is up to the application |
| 1070 | 16-bit integer, signed or unsigned |
| 1071 | 32-bit signed (long) integer |
Not confirmed
The source text read cleanly. These values are not given in the reference and are left out:
- VISUALSTYLE code 70 (type): no values are listed.
- TABLESTYLE code 71 (flags), cell alignment (170), cell data type (90) and cell unit type (91): no bits or values are listed.
- SUNSTUDY code 70 (output type) and 74 (shade plot type): no values are listed.
- FIELD code 90 (data type of the field value): no values are listed.
- GEODATA codes 91 and 92: the UnitsValue enumeration is named but not listed.
- DIMASSOC codes 71, 73 and 74: only the meanings in brackets are given, not numbers.
- MATERIAL codes from 460 on, and the section objects’ type, flag and bit-flag codes: names only, with no values or defaults.
- PLOTSETTINGS codes 48 and 140 are both described as the X of the lower-left window corner, and 49 and 141 both as the Y of the upper-right corner; the reference does not say how the pairs differ.
- The reference’s common codes table says the
{ACAD_XDICTIONARYgroup exists “only if persistent reactors have been attached”, repeating the reactors wording; this page gives it as optional.