Получить исходное имя блока

Автор Тема: Получить исходное имя блока  (Прочитано 10372 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Здравствуйте!
Кто-нибудь может подсказать как для вставок блоков типа U*, я думаю что это unnamed blocks, получить нормальное имя блока?

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Получить исходное имя блока
« Ответ #1 : 31-03-2020, 18:52:26 »
Это анонимные блоки и U* - это и есть их нормальное название

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 554
  • Карма: 119
Re: Получить исходное имя блока
« Ответ #2 : 31-03-2020, 19:11:41 »
Кто-нибудь может подсказать как для вставок блоков типа U*, я думаю что это unnamed blocks, получить нормальное имя блока?

Наверное так
Код - C# [Выбрать]
  1. private string GetBlockReferenceOriginalName(BlockReference blockIns)
  2. {
  3.    string blockInsName = "";
  4.  
  5.    if (blockIns.BlockTableRecord == blockIns.AnonymousBlockTableRecord)
  6.    {
  7.       blockInsName = blockIns.Name;
  8.    }
  9.    else
  10.    {
  11.       ObjectId anonymBlockId = blockIns.AnonymousBlockTableRecord;
  12.       using (BlockTableRecord block = anonymBlockId.Open(OpenMode.ForRead) as BlockTableRecord)
  13.       {
  14.          if (block != null) blockInsName = block.Name;
  15.       }
  16.    }
  17.  
  18.    return blockInsName;
  19. }

Отмечено как Решение Atomohod 01-04-2020, 14:19:30

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

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Получить исходное имя блока
« Ответ #3 : 31-03-2020, 20:02:35 »
Atomohod,
Кто-то ленится пользоваться поиском: https://adn-cis.org/forum/index.php?topic=7286.0
Так имя блока U* или *Unnnn ?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

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

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: Получить исходное имя блока
« Ответ #5 : 31-03-2020, 22:31:47 »
Про поиск на форуме я как-то упустил :-\ - просто гуглил по сети.  Имя блока типа *U50.

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: Получить исходное имя блока
« Ответ #6 : 31-03-2020, 22:36:48 »
Тут еще вот какой вопрос - если я хочу вставить блок по имени и его нормальное имя, например, block1 то как быть с его именем типа *U755? Введя его я что-ли тоже вставляю нужный мне блок? Но как тогда быть с нужным мне visibility для дин блока, я чего-то совсем запутался.

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

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Получить исходное имя блока
« Ответ #7 : 31-03-2020, 22:41:39 »
Вставлять нужно блок по нормальному имени и переключать видимость вставки.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: Получить исходное имя блока
« Ответ #8 : 31-03-2020, 23:32:57 »
и переключать видимость вставки.
То есть для каждой видимости внутри блока Autocad сам генерирует отображение блока с миенем типа *U777 и отображает его вместо исходного? А почему тогда в свойствах отображается нормальное имя, а не *U777? Пользователь вообще его не видит - оно только на уровне базы чертежа.

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

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Получить исходное имя блока
« Ответ #9 : 31-03-2020, 23:36:34 »
То есть для каждой видимости внутри блока Autocad сам генерирует отображение блока с миенем типа *U777 и отображает его вместо исходного?
Да.
А почему тогда в свойствах отображается нормальное имя, а не *U777?
Потому, что так решили в Autodesk.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: Получить исходное имя блока
« Ответ #10 : 31-03-2020, 23:44:29 »
    То есть для каждой видимости внутри блока Autocad сам генерирует отображение блока с миенем типа *U777 и отображает его вместо исходного?

Да.
Можно маленькое уточнение - то есть это отображение по своей сути вставка блока уже не динамическая - обычный блок без динамики? Да?

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

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Получить исходное имя блока
« Ответ #11 : 31-03-2020, 23:47:35 »
Можно маленькое уточнение - то есть это отображение по своей сути вставка блока уже не динамическая - обычный блок без динамики?
Нет. Блок остаётся динамическим (все динамические свойства блока на месте).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение