4 endInsert() примитивы теперь были преобразованы и были добавлены в конец к блоку. Если это - ВСТАВКА*, они - теперь в пространстве модели и имеют их графику. Они могут использоваться в наборах выбора. Однако, если это - ВСТАВКА, они только были добавлены в конец к записи таблицы блоков; та запись еще не была добавлена к таблице блоков. В этом случае, Вы должны ждать до commandEnded() уведомления, чтобы использовать эти примитивы в наборе выборов.
Типовой код в этой секции использует beginDeepCloneXlation() функция уведомления. Эта выборка иллюстрирует, как Вы могли записывать реактор, чтобы добавить поведение к команде WBLOCK, чтобы сообщить этому включать все текстовые стили в новый рисунок, вместо только текстовые стили, которые упомянуты примитивами.
Это таким образом показывает, как использовать wblock с небытием.
AcDbIdMapping имеет функцию, deepCloneContext (), который возвращает контекст, в котором глубокая клонируемая функция была вызвана. Контексты - следующее:
kDcCopy |
Копирование в пределах базы данных; использует COPY, ARRAY, MIRROR (если Вы не удаляете оригинал), приобретение LEADER, или копия INSERT |
kDcExplode |
EXPLODE блок-ссылки |
KDcBlock |
BLOCK создание |
kDcXrefBind |
XREF Связывают, и XBIND |
kDcSymTable |
XREF Слияние Присоединяются, DXFIN, и IGESIN (только записи таблицы идентификаторов клонированы здесь) |
kDcSaveAs |
SAVEAS, когда VISRETAIN установлен в 1 (только записи, таблицы идентификаторов клонированы здесь) |
kDcInsert |
ВСТАВКА рисунка |
kdcWblock |
WBLOCK |
kDcObjects |
AcDbDatabase:: deepCloneObjects () |
AcEditorReactor::abortDeepClone() функция вызвана, когда запрос к AcDbDatabase::abortDeepClone() сделан.
Следующий код использует переходного редактора реактор, полученный из AcEditorReactor и перегружает beginDeepCloneXlation () функция для реактора.
// С тех пор AcDbDatabase::wblock() только поддерживает AcDbEntities в его массиве ID,
// этот код демонстрирует, как добавить дополнительные объекты в течение beginDeepCloneXlation