Тема: Как программно включить объект в текущий "edit Set"?

Такая задача.
1) Редактрирую блок референс. Селекчу subentities.
2) Значит "горят объекты" которые выделил, остальные серые
3) В результате каких-то действий добавляю [new entity] (к тому же блоку откуда "горят объекты").
4) Ставлю значит у одного из "горящих объектов" AcDbHardPointerId - на [new entity]
5) Пытаюсь записать блок.
6) Акад !Матюгается! - Типа мол есть референсы в Set-e на объекты, которые не включены в текущий Set - типа отвалите.
Вопрос - Какие эвенты есть специально для редактирования блок референсов? Ну или что-то что лежит рядом.
Я радостно хочу включить [new entity] в Set программным способом, а не кнопочкой + на тулбаре. Как это можно сделать программно?

Re: Как программно включить объект в текущий "edit Set"?

Я знаю только один способ - редактировать AcDbBlockTableRecord и добавить туда вот эту новую entity.

Re: Как программно включить объект в текущий "edit Set"?

> роман
Роман, не все так просто.
Редактирую не программно, а ручками в автокаде - Modify->In-place X-Ref and Block edit->EditReference (это [по секрету] - инструмент такой чтоб пользователь мог редактировать блок прямо в Акаде - про ObjectARX он ничего не знает).
Ну дак вот взял пользователь шевельнул объект [Obj] во время редактирования (сдвинул). Я создаю объект AcDbMyEntity [NewObj] и программно прицепляю его к редактируемому блоку (т.е. к blockId() того объекта который шевельнули [Obj]) и ставлю [Obj]->(AcDbHardPointerId ref) =  [NewObj]->objectId(). И хочу чтоб при Save Block Edit - это все успешно сохранилось...
Но не тут-то было... хрен - Акад ругается что *Missing reference from [Obj] to [NewObj] т.к. [NewObj] не включен в текущий edit Set.
Вот и вопрос - а как программно включить объект не в блок, а в текущий edit Set при редактировании Block-а...

Re: Как программно включить объект в текущий "edit Set"?

Там на тулбаре есть кнопочки + и - раз автодеск сделал такой (важный) инструмент для редактирования блок-ов, то наверное все это должно как-то отлавливаться. А то происходит жопа - в MODAL_SPACE все работает(пользователь шевелит, программа отрабатывает), а когда пытаешься то же делать в refedit-e, то наблюдаются различия от просто работы в MODAL_SPACE. К тому же объекты наделяются магическими свойствами - типа серенькие и редактируемые и те которые только что добавлены, но еще не прицеплены плюсом...

Re: Как программно включить объект в текущий "edit Set"?

Вижу несколько вариантов:
1. Програмный запуск команды "_refset" которая собтсвенно и выполняет работу
2.Есть такой метод
"AcDbLongTransaction::addToWorkSet"
Судя по названию должен подойти.
Сам ни разу не использовал
3. Прописать в руководтсве пользователя что для выполнения операции нужно сделать так и так(чтобы пользоватлель добавлял в блок)

Re: Как программно включить объект в текущий "edit Set"?

Блин, решил плюнуть на это.
Если пользователю надо отредактировать блок, то пусть взорвет, отредактирует и заново определит. Тоже выход...

Re: Как программно включить объект в текущий "edit Set"?

Это в руководстве и напишу :)