Room Separation Line

Автор Тема: Room Separation Line  (Прочитано 4455 раз)

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

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

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

  • ADN Club
  • ***
  • Сообщений: 214
  • Карма: 5
  • Sergey
  • Skype: sergey.s.shevtsov
Room Separation Line
« : 07-10-2014, 12:25:13 »
Добрый день!
Пытаюсь создать Room Separator:
CurveArray curveArr = new CurveArray();
foreach (var point in points)
{
XYZ spt = new XYZ(x1, y1, z1);
XYZ ept = new XYZ(x2, y2, z2);
Line geomLine = Line.CreateBound(spt, ept);
curveArr.Append(geomLine);
}
doc.Create.NewRoomBoundaryLines(doc.ActiveView.SketchPlane, curveArr, doc.ActiveView );
Но после создания массива кривых программа вылетает без какого-либо сообщения.
В чем может быть проблема?

Спасибо

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Room Separation Line
« Ответ #1 : 07-10-2014, 13:01:41 »
А где выполняется код? RevitAPI не поддерживает многопоточность и обращение к модели должно быть из нескольких строго определенных мест. Скорее всего, дело в этом

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

  • ADN Club
  • ***
  • Сообщений: 214
  • Карма: 5
  • Sergey
  • Skype: sergey.s.shevtsov
Re: Room Separation Line
« Ответ #2 : 07-10-2014, 13:12:12 »
Код выполняется в методе Execute:
public Autodesk.Revit.UI.Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
Document doc = commandData.Application.ActiveUIDocument.Document
....
Цитировать
RevitAPI не поддерживает многопоточность
Этого стараюсь избегать

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

  • ADN Club
  • ***
  • Сообщений: 214
  • Карма: 5
  • Sergey
  • Skype: sergey.s.shevtsov
Re: Room Separation Line
« Ответ #3 : 07-10-2014, 13:39:49 »
Нашел код по созданию комнаты http://thebuildingcoder.typepad.com/blog/2012/06/devlab-and-room-separation.html
Странно, но этот код у меня тоже не работает на Revit 2014.

Отмечено как Решение shss 08-10-2014, 06:51:52

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

  • ADN Club
  • ***
  • Сообщений: 214
  • Карма: 5
  • Sergey
  • Skype: sergey.s.shevtsov
Re: Room Separation Line
« Ответ #4 : 08-10-2014, 06:51:39 »
Нашел в чем была проблема,
по умолчанию doc.ActiveView у меня был выставлен 3D View и почему-то код не отрабатывал,
как только я поменял его на FloorPlan View код заработал.