Сообщество программистов Autodesk в СНГ
ADN Club => Revit API => Тема начата: shss от 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 );
Но после создания массива кривых программа вылетает без какого-либо сообщения.
В чем может быть проблема?
Спасибо
-
А где выполняется код? RevitAPI не поддерживает многопоточность и обращение к модели должно быть из нескольких строго определенных мест. Скорее всего, дело в этом
-
Код выполняется в методе Execute:
public Autodesk.Revit.UI.Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
Document doc = commandData.Application.ActiveUIDocument.Document
....
RevitAPI не поддерживает многопоточность
Этого стараюсь избегать
-
Нашел код по созданию комнаты http://thebuildingcoder.typepad.com/blog/2012/06/devlab-and-room-separation.html
Странно, но этот код у меня тоже не работает на Revit 2014.
-
Нашел в чем была проблема,
по умолчанию doc.ActiveView у меня был выставлен 3D View и почему-то код не отрабатывал,
как только я поменял его на FloorPlan View код заработал.