Идентификаторы объектов в AutoCAD

Автор Тема: Идентификаторы объектов в AutoCAD  (Прочитано 10830 раз)

0 Пользователей и 3 Гостей просматривают эту тему.

Оффлайн Виктор ЧекалинАвтор темы

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Доброго времени суток.

Подскажите, какие виды идентификаторов есть у автокадовских объектов? Я вижу два: DBObject.ObjectId и DBObject.Handle.
Являются ли эти идентификаторы уникальными в пределах одного файла или уникальные в глобальном смысле?
Может ли измениться идентификатор и при каких условиях?

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Идентификаторы объектов в AutoCAD
« Ответ #1 : 06-03-2014, 12:00:44 »
Цитата: Виктор Чекалин
Подскажите, какие виды идентификаторов есть у автокадовских объектов? Я вижу два: DBObject.ObjectId и DBObject.Handle.
Являются ли эти идентификаторы уникальными в пределах одного файла или уникальные в глобальном смысле?

Тынц 1.

Цитата: Виктор Чекалин
Может ли измениться идентификатор и при каких условиях?

Тынц 2 (в дополнение к "Тынц 1").

Оффлайн Виктор ЧекалинАвтор темы

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Идентификаторы объектов в AutoCAD
« Ответ #2 : 06-03-2014, 13:30:07 »
Андрей, спасибо за ссылки.

То есть я правильно понимаю, что идентификатора типа GUID, или ревитовского Element.UniqueId, т.е. уникального среди всех файлов (за исключением копии одного и того же файла), в AutoCAD не существует?

Существует ли идентификатор файла или базы данных, который например генерировался каждый раз при создании нового файла? Вот здесь такая тема поднималась, но четкого ответа так и не последовало.

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Идентификаторы объектов в AutoCAD
« Ответ #3 : 06-03-2014, 13:36:45 »
идентификатора типа GUID, или ревитовского Element.UniqueId, т.е. уникального среди всех файлов
GUID'ы отсутствуют (насколько мне известно).
Существует ли идентификатор файла или базы данных, который например генерировался каждый раз при создании нового файла?
Если вопрос о глобальной уникальности (аля GUID), то насколько я знаю - нет (хотя могу и ошибиться). Думаю, что более точно на этот вопрос смогут ответить в технической поддержке ADN (на тот случай, если А.Н. Ривилис не владеет этой информацией).
« Последнее редактирование: 06-03-2014, 13:39:47 от Виктор Чекалин »

Оффлайн Виктор ЧекалинАвтор темы

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Идентификаторы объектов в AutoCAD
« Ответ #4 : 06-03-2014, 13:41:53 »
Ок, понял.

Благодарю за информацию.

P.S. Ссылку поправил.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Идентификаторы объектов в AutoCAD
« Ответ #5 : 07-03-2014, 00:49:53 »
То есть я правильно понимаю, что идентификатора типа GUID, или ревитовского Element.UniqueId, т.е. уникального среди всех файлов (за исключением копии одного и того же файла), в AutoCAD не существует?
Нет. Такого нет точно. Но при желании ты можешь сам его сделать используя XDATA - создать строковый элемент (группа 1000) и присвоить ему GUID. Будет уникальный настолько, насколько будет уникальным GUID. Ну и в копии файла и в копии примитива они будут совпадать.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Идентификаторы объектов в AutoCAD
« Ответ #6 : 07-03-2014, 06:36:17 »
Но при желании ты можешь сам его сделать используя XDATA - создать строковый элемент (группа 1000) и присвоить ему GUID. Будет уникальный настолько, насколько будет уникальным GUID. Ну и в копии файла и в копии примитива они будут совпадать
В этом случае нужно понимать, что не стоит 100% надеяться на то, что созданный вами XDATA обязательно будет присутствовать и в дальнейшем, поскольку пользователь (или какой-либо плагин) в последствии вполне могут изменить, либо вовсе удалить эту информацию.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: Идентификаторы объектов в AutoCAD
« Ответ #7 : 07-03-2014, 10:23:51 »
Я не встречал ни одного пользователя, который бы знал и умел пользоваться расширенными данными. Поэтому, вероятность их сохранности близка к 100% :)
Изменение XDATA пользователем выполняется через инструмент Express Tools, что, по сути, является приложением к AutoCAD.
Под ревит, наверное, тоже можно написать приложение, которое будет изменять Element.UniqueId?

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Идентификаторы объектов в AutoCAD
« Ответ #8 : 07-03-2014, 10:33:21 »
Пользователь может даже не знать о существовании XDATA и тем не менее изменить их, если использует программки, которые за кулисами работают с XDATA.

Оффлайн Виктор ЧекалинАвтор темы

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Идентификаторы объектов в AutoCAD
« Ответ #9 : 07-03-2014, 10:35:47 »
В общем то вариант с XDATA мне не подходит в любом случае. Интересно было в первую очередь есть ли встроенный уникальный идентификатор.

А в ревите изменить UniqieId не выйдет. Это свойство readonly. Генерируется оно в момент создания элемента и затем остается неизменным.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Идентификаторы объектов в AutoCAD
« Ответ #10 : 07-03-2014, 15:10:02 »
Интересно было в первую очередь есть ли встроенный уникальный идентификатор.
Однозначно нет. Только внутри dwg-файла HANDLE.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение