Civil 2017: Не могу получить Сечение Section

Автор Тема: Civil 2017: Не могу получить Сечение Section  (Прочитано 5378 раз)

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

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

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
Civil 3D 2017 зависает на мертво при выполнении следующего кода:
Код - C# [Выбрать]
  1. [CommandMethod("test3")]
  2.         public void test3()
  3.         {
  4.             CivilDocument cdoc = Autodesk.Civil.ApplicationServices.CivilApplication.ActiveDocument;
  5.             AppServ.Document adoc = AppServ.Application.DocumentManager.MdiActiveDocument;
  6.             Editor ed = adoc.Editor;
  7.             PromptEntityOptions peo = new PromptEntityOptions("\nGetSection");
  8.             peo.SetRejectMessage("не то");
  9.             peo.AddAllowedClass(typeof(Autodesk.Civil.DatabaseServices.Section), true);
  10.             PromptEntityResult acSSPrompt = ed.GetEntity(peo);
  11.             while (acSSPrompt.Status == PromptStatus.OK)
  12.             {
  13.                 using (Transaction tr = adoc.Database.TransactionManager.StartTransaction())
  14.                 {
  15.                     ObjectId oid = acSSPrompt.ObjectId;
  16.                     var obj = tr.GetObject(oid, OpenMode.ForRead);
  17.                     tr.Abort();
  18.                 }
  19.             }
  20.         }

Система: W7 SP1

Отмечено как Решение Александр Ривилис 24-05-2018, 14:23:37

Оффлайн Алексей Терно

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Он не зависает - он в бесконечном цикле. Замени while на if.

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

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
во дурак  :'(

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Код - C# [Выбрать]
  1. tr.Abort();
Я бы это убрал и заменил на tr.Commit() - работать будет быстрее.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
Можно ли програмно повторить EDITCROSSSECTION?
В Section - SectionPoints только readonly
можно ли их редактировать?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
можно ли их редактировать?
Я так понимаю, что можно только создать новое сечение: http://help.autodesk.com/view/CIV3D/2018/ENU/?guid=GUID-95139A97-8B1D-4A70-AB96-D8B0349B5268
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Тут про сечения обсуждали, может поможет: http://adn-cis.org/forum/index.php?topic=3073.0