实现思路
用CurveLoop生成房间,可以先用SketchPlane.Create方法生成SketchPlane,在所在面生成ModelCurveArray,然后用ModelCurveArray及CurveLoop获取的中心点生成房间,最后再删除生成的ModelCurveArray。
代码实现
void CreatAirRoomInstance( CurveLoop curves,Level level, View view)
{
var sketchPlane = SketchPlane.Create(Doc, curves.GetPlane());
var curveArray = new CurveArray();
var pxyz = curves.GetPlane().Origin;
foreach (var airRoomcurve in curves)
{
curveArray.Append(airRoomcurve);
}
var modelLines = Doc.Create.NewRoomBoundaryLines(sketchPlane, curveArray, view);
var newRoom = Doc.Create.NewRoom(level, new UV(pxyz.X, pxyz.Y));
foreach (ModelCurve modelline in modelLines)
{
Doc.Delete(modelline.Id);
}
}
其中,curves为输入的目标轮廓,level为目标楼层,view为目标视图。注意:该方法的调用必须在开启的事务中。