База данных чертежа

Объект 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);