Коллекции объектов

В AutoCAD большинство объектов (графических и неграфических) хранятся в составе коллекций (специальные объекты-контейнеры). Хотя коллекции и содержат различные типы данных, их можно обрабатывать с помощью схожих методов. Каждая коллекция имеет метод для добавления объекта в коллекцию или получения элемента из коллекции. Большинство коллекций используют методы Add (обычные коллекции -- Table) или SetAt (словари) для добавления объекта в коллекцию. На уровне исходного кода, классы-коллекции являются наследниками интерфейсов IEnumerable, ICollection. Большинство коллекций имеют схожие методы и свойства, что упрощает их использование и изучение; например, для перебора коллекции удобно использовать цикл foreach. Примерами членов коллекции в AutoCAD .NET API являются:

  • LayerTableRecord в таблице свойств LayerTable (как и аналогичные элементы любой таблицы имеющие суффикс Record);

  • Лист в словаре ACAD_LAYOUT;

  • Document в коллекции DocumentCollection;

  • Атрибуты Вхождения блока; Полный список подобных объектов представлен ниже:

НазваниеСоответствующий .NET-классКомментарий
Block Table Record - запись таблицы блоков
Получается через перебор объектов BlockTable
DatabaseServices.BlockTableRecordСодержит все графические сущности в определении данного Блока (напомним, Блоком в объектной модели DWG являются именованные пространства -- модели, листов, а также специальных объектов, имеющих Вхождения блоков).
Block Table - таблица блоков
Получается через транзакцию для Database.BlockTableId;
DatabaseServices.BlockTableСодержит все Блоки чертежа (пояснение см. выше)
Named Objects Dictionary - именованный словарь объектов
Получается через транзакцию для Database.NamedObjectsDictionaryId
DatabaseServices.DBDictionaryСодержит все словари чертежа
Dimension Style Table - таблица размерных стилейDatabaseServices.DimStyleTableПолучается через транзакцию для Database.DimStyleTableId
Document Collection - коллекция открытых чертежейApplicationServices.DocumentCollectionПолучается через ApplicationServices.Application.DocumentManager
Group Dictionary - коллекция всех Групп чертежаDatabaseServices.DBDictionaryПолучается через транзакцию для Database.GroupDictionaryId
Hyperlink Collection - коллекция гиперссылок объектаDatabaseServices.HyperLinkCollectionПолучается у объекта графической сущности DatabaseServices.Entity в рамках транзакции как свойство Hyperlinks
Layer Table - таблица всех слоев чертежаDatabaseServices.LayerTableПолучается через транзакцию для Database.LayerTableId
Layout Dictionary - перечень всех листов документаDatabaseServices.DBDictionaryПолучается через транзакцию для Database.LayoutDictionaryId
Linetype Table - перечень всех типов линий документаDatabaseServices.LinetypeTableПолучается через транзакцию для Database.LinetypeTableIdId
MenuBar Collection - коллекция всех классических менюAutoCAD.AcadMenuBar(ActiveX)Получается как ApplicationServices.Application.MenuBar с последующим приведением к интерфейсу AutoCAD.AcadMenuBar
MenuGroup Collection - коллекция всех ленточных менюAutoCAD.AcadMenuGroups (ActiveX)Получается как ApplicationServices.Application.MenuGroups с последующим приведением к интерфейсу AutoCAD.AcadMenuGroups
Plot Configuration Dictionary - именованные параметры печати чертежаDatabaseServices.DBDictionaryПолучается через транзакцию для Database.PlotSettingsDictionaryId
Registered Application Table - таблица зарегистрированных приложенийDatabaseServices.RegAppTableПолучается через транзакцию для Database.RegAppTableId
Text Style Table - перечень текстовых стилейDatabaseServices.TextStyleTableПолучается через транзакцию для Database.TextStyleTableId
UCS Table - перечень всех определений ПСК (пользовательских систем координат)DatabaseServices.UcsTableПолучается через транзакцию для Database.UcsTableId
View Table - перечень всех видовDatabaseServices.ViewTableПолучается через транзакцию для Database.ViewTableId
Viewport Table - перечень всех видовых экрановDatabaseServices.ViewportTableПолучается через транзакцию для Database.ViewportTableId