не ObjectId, скорее нужно писать хендл, он не меняется.А как хендл из Xrecord достать?
У объекта базы данных есть метод acCurDb.GetObjectId() который принимает хендл и возвращает ObjectId.
А как хендл из Xrecord достать?
Балиев,Нужно. Задача состоит в том, чтобы создав полилинию, затем, не "тыкая в нее", иметь возможность выбрать ее среди других примитивов.
Это точно нужно или достаточно прописать XRecord в ExtensionDictionary полилинии и тогда искать не придется?
Задача состоит в том, чтобы создав полилинию, затем, не "тыкая в нее", иметь возможность выбрать ее среди других примитивов.Т.е. писать Xrecord ты будешь в NamedObjectsDictionary? И как идентифицировать, что это именно та полилиния?
Т.е. писать Xrecord ты будешь в NamedObjectsDictionary? И как идентифицировать, что это именно та полилиния?Да, писать я буду в NamedObjectsDictionary. В запись с определенным searchKey заносится Xrecord с идентификатором полилинии. Вопрос что это за идетификатор? Может быть и handle, но как записать его в Xrecord я знаю, а вот достать его оттуда у меня не получается.
Почему в NamedObjectsDictionary? Насколько я понял, Xrecord засовывается в словарь на примитиве как раз. Или я в очередной раз заблуждаюсь?Задача состоит в том, чтобы создав полилинию, затем, не "тыкая в нее", иметь возможность выбрать ее среди других примитивов.Т.е. писать Xrecord ты будешь в NamedObjectsDictionary? И как идентифицировать, что это именно та полилиния?
Может быть и handle, но как записать его в Xrecord я знаю, а вот достать его оттуда у меня не получается.Записываешь как строку и точно также считываешь как строку. Строку преобразуешь в long и используешь конструктор Handle с аргументом long.
Почему в NamedObjectsDictionary? Насколько я понял, Xrecord засовывается в словарь на примитиве как раз. Или я в очередной раз заблуждаюсь?Можно и туда и туда.
Почему в NamedObjectsDictionary? Насколько я понял, Xrecord засовывается в словарь на примитиве как раз.В принципе можно и так, но в этом случае для отыскания нужного примитива необходимо перебирать все примитивы. В случае же записи в NOD нужный примитив отыскивается напрямую по индентификатору. Мне кажется это более логично.
Балиев, ИМХО проще всего записывать необходимые данные как раз как показал Lemieux. А вот что и в каком виде будет записываться / считываться - песня отдельная.Я и в NamedObjectDictionary писал, всё зависит от задачи. В NOD я пишу об общем состоянии чертежа, в сущности я пишу информацию, чтобы сущности знали друг о друге.
Записываешь как строку и точно также считываешь как строку. Строку преобразуешь в long и используешь конструктор Handle с аргументом long.Спасибо! Собственно, ради этой подсказки я и отрывал тему.