The OdDbSymbolTable class is a predefined table object that provides the base interface for subclasses intended
for collecting and manipulating database objects organized as tables of records in the database. This class is used
only as a parent class for the classes that are derived from it to work with specific non-graphical objects. The
following specific objects are organized as tables of records: blocks, layers, linetypes, dimension styles,
text styles, user coordinate systems, registered applications, views, and viewports. Collections of these objects
are typified and have specific classes that provide the ability to work with their own predefined tables of the
database. These specific classes are derived from the OdDbSymbolTable class (one class for each table of records).
Each predefined table can store record objects only of its own type. The OdDbSymbolTable class is also derived
from the OdDbObject class and inherits the standard database interface. The sub-hierarchy of specific classes
is the following:
The OdDbSymbolTable class is not a self-contained class for creating instances or custom objects. This class
is used only for deriving the following specific classes: OdDbBlockTable, OdDbLayerTable, OdDbLinetypeTable,
OdDbViewTable, OdDbViewportTable, OdDbTextStyleTable, OdDbDimStyleTable, OdDbRegAppTable, and
OdDbUCSTable, which are used for working with tables of the specific objects listed above.
The database does not use predefined tables for storing custom objects and working with them. This is due to the
history of the Autodesk® DWG™ file format. Initially, the objects listed above were organized as tables of
records in the database and their collections were fixed for each drawing. The dictionary's organization was introduced
late and applying tables was not necessary for new and custom objects. The table's organization remains only for the
objects listed above.
The OdDbSymbolTablePtr class is the typified smart pointer to the named table object. This class is used as a
pointer for storing and passing references to the named table objects of the specific classes listed above. Any smart
pointer to a specific class can be cast to this smart pointer, which can be cast back to the specific class. Pointers
to the OdDbSymbolTable class are used for manipulating tables and casting specific pointers to one type, for example,
selecting objects from the table independent of their type.
Working with predefined tables includes: adding records in the table, getting records from the table, checking
whether records exist in the table, renaming records, and creating iterators.