Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: serega374 от 27-10-2018, 16:10:10

Название: Как выполнить проверку на существование объекта в чертеже?
Отправлено: serega374 от 27-10-2018, 16:10:10
Добрый вечер,
Создаю программно текстовый стиль. Если такой стиль существует выскакивает ошибка
(https://i.postimg.cc/cr9T4mKG/image.png) (https://postimg.cc/cr9T4mKG)
Код - 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.  
Как выполнить проверку существования текстового стиля?
Название: Re: Как выполнить проверку на существование объекта в чертеже?
Отправлено: Вильдар от 27-10-2018, 16:14:10
tst.Has("name")
Название: Re: Как выполнить проверку на существование объекта в чертеже?
Отправлено: Александр Ривилис от 27-10-2018, 16:14:33
serega374,
Прочитай у меня в подписи о том, как следует форматировать ко на форуме и соблюдай это правило!
Название: Re: Как выполнить проверку на существование объекта в чертеже?
Отправлено: Александр Ривилис от 27-10-2018, 16:24:43
Вильдар,
Точнее так:
Код - C# [Выбрать]
  1. if (!tst.Has("RayCom")) {
  2. // Вот тут можно создавать и добавлять TextStyle_RayCom
  3. }
Название: Re: Как выполнить проверку на существование объекта в чертеже?
Отправлено: Привалов Дмитрий от 28-10-2018, 07:55:02
Вильдар,
Точнее так:
...tst.Has("RayCom")...

Имя стиля может существовать, но стиль может отличаться настройками от "эталонного".
а в API есть стандартные методы для проверки соответствия 2х стилей или нужно самому реализовывать?
Название: Re: Как выполнить проверку на существование объекта в чертеже?
Отправлено: Вильдар от 28-10-2018, 10:50:44
Нужно проверять самому.