Выбрать все метки колодцев сети

Автор Тема: Выбрать все метки колодцев сети  (Прочитано 2825 раз)

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

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Подскажите, мне нужно выбрать все метки колодцев.

Мне в цикле проверку на какое имя класс делать, чтобы
выбрать все метки?

 Имя объекта AeccDbStructureLabel

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Выбрать все метки колодцев сети
« Ответ #1 : 07-09-2018, 10:37:09 »
Делаю так
Ругается на строке
names += (ent as CIV_DBS.Label).Name + '\n';

Код - C# [Выбрать]
  1.            string names = "";
  2.            CAD_APS.Document doc = CAD_APS.Application.DocumentManager.MdiActiveDocument;
  3.            Database db = HostApplicationServices.WorkingDatabase;
  4.            using (Transaction tr = db.TransactionManager.StartTransaction())
  5.             {
  6.                 BlockTableRecord btRecord = (BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForRead);
  7.                 foreach (ObjectId id in btRecord)
  8.                 {
  9.                     CAD_DBS.Entity ent = (CAD_DBS.Entity)tr.GetObject(id, OpenMode.ForRead);
  10.                     if (ent is CIV_DBS.Label)
  11.                             names += (ent as CIV_DBS.Label).Name + '\n';
  12.                 }
  13.                 tr.Commit();
  14.             }
Прикрепляю материалы для анализа





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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выбрать все метки колодцев сети
« Ответ #2 : 07-09-2018, 11:09:44 »
Имя объекта AeccDbStructureLabel
Подозреваю, что класс называется StructureLabel: http://docs.autodesk.com/CIV3D/2018/ENU/API_Reference_Guide/html/c2412469-d906-4057-89a7-83c603452c6f.htm
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Выбрать все метки колодцев сети
« Ответ #3 : 07-09-2018, 11:18:58 »
При проверке на класс StructureLabel
попадает в тело блока if и тоже ругается на свойство Name .

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выбрать все метки колодцев сети
« Ответ #4 : 07-09-2018, 11:34:17 »
При проверке на класс StructureLabel
попадает в тело блока if и тоже ругается на свойство Name .
Воспользуйся MGDDBG и посмотри все свойства этого объекта.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Выбрать все метки колодцев сети
« Ответ #5 : 07-09-2018, 13:06:33 »
попадает в тело блока if и тоже ругается на свойство Name .
Мне просто хочется понять логику: что по твоему мнению должно быть в свойстве ИМЯ у МЕТКИ?

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Выбрать все метки колодцев сети
« Ответ #6 : 08-09-2018, 11:16:11 »
Я сразу не врубился в тему. Целью моей задачи было получение списка номеров колодцев и центров колодцев. А потом подумал на фига мне метки, если имя колодца хранится в самом объекте колодца. И решил, что эти метки мне не нужны. Решил задачу через объекты колодцев.  А с метками хуже бы вышло. Метки проектах криво расставлены были и к тому же позиции меток не совпадали с центрами колодцев.

Всем спасибо за ответы!  :)