PPT_LOGO_4b
‹#›
© 2009 Autodesk
Autodesk Developer Network
Aec Objects/Entities
§All Aec entities (e.g., wall, door) are derived from Geo
§Autodesk.AutoCAD.DatabaseServices.Entity
§  Autodesk.AutoCAD.DatabaseServices.Curve
§    Autodesk.Aec.DatabaseServices.Entity
§      Autodesk.Aec.DatabaseServices.Geo
§        Autodesk.Aec.DatabaseServices.Wall
§All style objects (e.g., wall style) are derived from DictionaryRecord
§Autodesk.AutoCAD.DatabaseServices.DBObject
§  Autodesk.Aec.DatabaseServices.DBObject
§    Autodesk.Aec.DatabaseServices.DictionaryRecord
§      Autodesk.Aec.DatabaseServices.WallStyle
§Dictionary is a container of a set of styles such as the wall dictionary
§Autodesk.AutoCAD.Runtime.RXObject
§  Autodesk.Aec.DatabaseServices.ImpObject
§    Autodesk.Aec.DatabaseServices.WallModifier
Structure of the ACA API – the top level is the AutoCAD Database entities, then comes the secondary level called Curves provided by AutoCAD. Curve refers to the 2D entities that operate under 2D operations like fillet, chamfer, trim, etc. So when ACA API was designed, it was figured that ACA entities like Wall too needs to extend and trim etc, and so all ACA entities are eventually derived from AutoCAD Curve class. AEC Databaseservices entity contains some base protocol and from this point, we have our AEC specific entities. Geo contains extra protocols like anchors. All ACA entities (for example Wall or Door) are derived from Geo. Even though wall is derived from Geo, it is in a separate assembly and this is organized using namespaces.

Objects derive from AutoCAD DB object. The DB object name helps differentiate from the System object which is the base for all .NET objects. From DB object, the AEC version of the DB object is derived and some examples are anchors, dictionary record, styles derive from Dictionary record.

Walls support modifiers and overrides. And these are not entities itself but are attached to an entity to govern how they should be drawn, for example. These are derived from AutoCADs RXObject base class, and then we have the AEC version called ImpObject. These are not stored in the database but are stored in ImpObjects.

For objects (for example an Anchor or a Wall Style), the basic hierarchy is as follows

All style objects (for example Wall Style or Door Style) are typically derived from DictionaryRecord.
For objects that support other objects (for example, a WallModifier), these are typically derived from an internal ACA class called ImpObject: