Как выполнить проверку на существование объекта в чертеже?

Автор Тема: Как выполнить проверку на существование объекта в чертеже?  (Прочитано 2728 раз)

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

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

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

  • ADN OPEN
  • Сообщений: 41
  • Карма: 0
Добрый вечер,
Создаю программно текстовый стиль. Если такой стиль существует выскакивает ошибка

Код - C# [Выбрать]
  1.  public class TextStyleSample
  2.     {
  3. [Rt.CommandMethod("CreateTextStyleRayCom",Rt.CommandFlags.Modal)]
  4. public void CreateTextStyle()
  5.         {
  6.             Ap.Document doc = cad.DocumentManager.MdiActiveDocument;// чертеж = текущий чертёж
  7.             if (doc == null) return;//проверяем существование чертежа
  8.             Ed.Editor ed = doc.Editor; // редактор чертежа
  9.             Db.Database db = doc.Database; // база чертежа
  10.             using (Db.Transaction tr = db.TransactionManager.StartTransaction())//начинаем транзакцию
  11.             {              
  12.                 // создаём новый текстовый стиль "RayCom"
  13.                 Db.TextStyleTable tst = (Db.TextStyleTable)tr.GetObject(db.TextStyleTableId, Db.OpenMode.ForWrite);                
  14.                 Db.TextStyleTableRecord TextStyle_RayCom = new Db.TextStyleTableRecord();                        
  15.                 TextStyle_RayCom.Name = "RayCom";
  16.                 TextStyle_RayCom.FileName = "GOST Common.ttf";
  17.                 TextStyle_RayCom.XScale = 1;
  18.                 tst.Add(TextStyle_RayCom);
  19.                 tr.AddNewlyCreatedDBObject(TextStyle_RayCom, true);
  20.                 tr.Commit();
  21.            }      
  22.  
  23.         }
  24.     }
  25.  
Как выполнить проверку существования текстового стиля?
« Последнее редактирование: 27-10-2018, 16:12:17 от Александр Ривилис »

Оффлайн Вильдар

  • ADN Club
  • ****
  • Сообщений: 405
  • Карма: 77
  • Skype: vildar82

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

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

Отмечено как Решение serega374 28-10-2018, 13:11:12

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Вильдар,
Точнее так:
Код - C# [Выбрать]
  1. if (!tst.Has("RayCom")) {
  2. // Вот тут можно создавать и добавлять TextStyle_RayCom
  3. }
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Вильдар,
Точнее так:
...tst.Has("RayCom")...

Имя стиля может существовать, но стиль может отличаться настройками от "эталонного".
а в API есть стандартные методы для проверки соответствия 2х стилей или нужно самому реализовывать?

Оффлайн Вильдар

  • ADN Club
  • ****
  • Сообщений: 405
  • Карма: 77
  • Skype: vildar82
Нужно проверять самому.