Использование appendAcDbEntity () В течение Клонирования
AcDbBlockTableRecord:: appendAcDbEntity () требует имеющий силу AcDbObjectIds, чтобы делать добавляющийся должным образом. В течение клонирования, примитив может быть добавлен в конец к AcDbBlockTableRecord только если
AcDbBlockTableRecord:: isObjectIdsInFlux () возвращает Adesk:: kFalse. Это указывает, что сам AcDbBlockTableRecord в настоящее время не клонируется.
Одно исключение к этому правилу происходит, когда клонированный AcDbBlockTableRecord пуст. Поскольку пустой AcDbBlockTableRecord не содержит никакой неоттранслированный AcDbObjectIds, добавляющийся будет работать должным образом.
Эта ситуация возникает в течение некоторых форм wblock (), и описана более подробно коротко{*вскоре*}.
Если глубоко клонируются, - обратился к индивидуальным примитивам, то их имитирует, должен быть добавлен в конец адресату АкДбБлокТаблеРекорду. Однако, когда сам AcDbBlockTableRecord глубоко клонируется, тогда все его примитивы клонированы с этим, и запрос к AcDbBlockTableRecord:: appendAcDbEntity () не будет только ненужен, но разрушил бы клонированный AcDbBlockTableRecord.
Заданные по умолчанию выполнение deepClone () и wblockClone () знают, когда вызвать AcDbBlockTableRecord:: appendAcDbEntity () проверяя значение isPrimary. Когда примитив глубоко клонируется отдельно, isPrimary истинен, и добавлять, вызван. Если примитив клонируется как результат глубокого клонирования AcDbBlockTableRecord, то isPrimary ложный, и добавлять, не вызван.
Обычно, приложения не должны быть обеспокоены этой подробностью и могут полагаться на заданное по умолчанию выполнение deepClone () и wblockClone () чтобы обработать примитивы. Однако, ситуации могут возникать, когда приложения могут хотеть добавить примитивы в течение клонирования, или использовать жесткие ссылки к примитивам. Жесткий упомянутый примитив будет иметь значение isPrimary Adesk:: kFalse и не будет вызывать, добавляют, даже, когда можете требоваться делать так. Эта ситуация охвачена в следующей секции.
Следующие примеры и правила иллюстрируют важные аспекты клонирования.