Получить ObjectId вновь созданного примитива.

Автор Тема: Получить ObjectId вновь созданного примитива.  (Прочитано 5534 раз)

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

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

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Чтой-то я совсем запутался!
Создаю солид:
Код - C# [Выбрать]
  1. Solid3d acSol3D = new Solid3d();
  2.  acSol3D.SetDatabaseDefaults();
  3.  acSol3D.CreateBox(LengthX, LengthY, LengthZ);
Пытаюсь получить его ObjectId:
Код - C# [Выбрать]
  1. ObjectId id = acSol3D.ObjectId;
В результате получаю id = {(0)}, т.е. как я понимаю, никакое.
Что я делаю неправильно?

Заранее благодарен!

Отмечено как Решение Балиев 29-06-2016, 18:38:43

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

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Нужно его добавить в чертеж
Код - C# [Выбрать]
  1.         [CommandMethod("Test")]
  2.         public void Test()
  3.         {
  4.             Document doc = Application.DocumentManager.MdiActiveDocument;
  5.             Database db = doc.Database;
  6.             Editor ed = doc.Editor;
  7.            
  8.             using (var t = db.TransactionManager.StartTransaction())
  9.             {
  10.                 var cs = db.CurrentSpaceId.GetObject( OpenMode.ForWrite) as BlockTableRecord;
  11.  
  12.                 Solid3d acSol3D = new Solid3d();
  13.                 acSol3D.SetDatabaseDefaults();
  14.                 acSol3D.CreateBox(1000, 1000, 1000);
  15.  
  16.                 cs.AppendEntity(acSol3D);
  17.                 t.AddNewlyCreatedDBObject(acSol3D, true);
  18.  
  19.                 ObjectId id = acSol3D.ObjectId;
  20.  
  21.                 t.Commit();
  22.             }            
  23.         }

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 738
Код - C# [Выбрать]
  1. ObjectId id = cs.AppendEntity(acSol3D);