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: |