База данных чертежа
Объект Database содержит все графические и большинство неграфических объектов AutoCAD. К объектам, содержащимся в базе данных, относятся сущности, таблицы символов и именованные словари. Сущности в базе данных представляют собой графические объекты чертежа. Линии, окружности, дуги, текст, штриховка и полилинии являются примерами графических объектов. Пользователь может видеть графический объект на экране и работать с ним. Доступ к объекту базы данных для текущего документа осуществляется через свойство-член Database объекта Document.
Autodesk.AutoCAD.ApplicationServices.Document doc;
Database db = doc.Database;
База данных может быть также открыта и вне документа через следующую процедуру:
Database db = new Database(false, true);
dwgDb.ReadDwgFile(pathToDwg, FileOpenMode.OpenForReadAndReadShare, false, null);
ActiveX-интерфейс, описывающий Базу данных, называется OdaX.AcadDatabase и может быть получен следующим приведением:
Autodesk.AutoCAD.DatabaseServices.Database db;
AutoCAD.AcadDatabase dbCOM = db.AcadDatabase as AutoCAD.AcadDatabase;
Таблицы символов и словари
Доступ к конкретным объектам в базе данных обеспечивается через специальные объекты-таблицы. Конечное число фиксированных классов-таблиц, описываемых соответствующими классами, фиксировано и невозможно добавить новую таблицу никаким способом, как и удалить имеющуюся.
- LayerTable : Таблица слоёв;
- BlockTable Таблица блоков;
- AbstractViewTable : базовый класс:таблица для ViewTable : таблица с коллекцией видов, ViewportTable : таблица с коллекцией видовых экранов;
- DataTable : вспомогательная таблица для хранения в виде двумерной таблицы числовых и текстовых данных, 3D:точек и идентификаторов объектов;
- LinetypeTable : таблица типов линий;
- DimStyleTable : таблица размерных стилей;
- DrawOrderTable : вспомогательная таблица для управления порядком отрисовки объектов, принадлежащих записи таблицы блоков;
- RegAppTable : таблица символов APPID, которая представляет зарегистрированные имена приложений для расширенных данных объекта чертежа в базе данных;
- UcsTable : таблица для хранения в базе данных чертежа пользовательских систем координат (UCS);
- TextStyleTable : таблица со стилями текста;
Для каждой таблицы существуют классы:обработчики записей таблицы : они имеют суффикс Record. Подробнее о таблицах объектов см. статью Коллекции объектов.
Отдельно в AutoCAD имеется PlotStyleTable - таблица параметров печати; это специфичный объект AutoCAD, для неё не предусмотрено класса-обработчика записей в составе таблицы.
Все графические объекты (линии, окружности, дуги и так далее) принадлежат записям таблицы блоков (BlockTable). По умолчанию каждый чертеж содержит предопределенные таблицы блоков (BlockTable) для пространства Model и каждого из листов PaperSpace. Словари :: это специальный объект, описываемый соответствующим набором классов, который представляют собой расширенные описания объекта. У словарей есть ограничение на емкость и свои особенности поведения. Словари могут быть как у графических, так и у неграфичеких объектов AutoCAD, включая и саму базу данных чертежа, а также у записей XRecord, их количество не ограниченно, их можно свободно создавать, редактировать, удалять (кроме нескольких "служебных" словарей у объектов чертежа). Словари могут быть и вложенными друг в друга. Хранится словари могут в двух местах:
- в именованном словаре Базы данных (объекта, получаемого через свойство Database.NamedObjectsDictionaryId);
- в словаре:расширении у таблицы символов или конечного графического примитива (оба упомянутых объекта наследуют класс DBObject со свойством ExtensionDictionary);