Копирование вставки блока с атрибутами

Автор Тема: Копирование вставки блока с атрибутами  (Прочитано 7101 раз)

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

Оффлайн Константин СоковАвтор темы

  • ADN Club
  • **
  • Сообщений: 56
  • Карма: 0
Добрый день. При копировании вставки блока с атрибутами, с атрибутами происходит что-то странное - в  палитре свойств они отображаются, их значение можно менять, а вот в чертеже их не видно. что нужно сделать чтобы атрибуты были видимыми в чертеже?
Код - C# [Выбрать]
  1. BlockReference brNew = br.Clone() as BlockReference;          
  2. brNew.Position = pnt;
  3.  
  4. btr.AppendEntity(brNew);
  5. trans.AddNewlyCreatedDBObject(brNew, true);
  6.  

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Метод Clone не работает со сложными примитивами типа вставки блока с атрибутами. Для этой цели следует использовать метод Database.DeepCloneObjects. Как-то вот так: http://adn-cis.org/poluchenie-kopii-primitiva.html
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Константин СоковАвтор темы

  • ADN Club
  • **
  • Сообщений: 56
  • Карма: 0
Получается методом DeepCloneObjects копия вставляется в то же место что и оригинал. В моем случае нужно отдельно перемещать вставку блока и каждый атрибут в нужное место?

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
В моем случае нужно отдельно перемещать вставку блока и каждый атрибут в нужное место?
Если мне не изменяет память (может изменять), то нет если к вставке блока применить метод TransformBy, а если устанавливать точку вставки, то это нужно делать для каждого из атрибутов.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Константин СоковАвтор темы

  • ADN Club
  • **
  • Сообщений: 56
  • Карма: 0
Если мне не изменяет память (может изменять)
Память Вам не изменяет, удалось переместить блок вместе с атрибутами, одним методом:
Код - C# [Выбрать]
  1. acVector3d = pnt.GetVectorTo(basePnt);
  2. br.TransformBy(Matrix3d.Displacement(acVector3d));
Большое спасибо!!!
« Последнее редактирование: 26-06-2014, 21:09:33 от Константин Соков »

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Память Вам не изменяет
Приятная новость!  :)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение