revit开发__用CurveLoop生成房间

实现思路

用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为目标视图。注意:该方法的调用必须在开启的事务中。


版权声明:本文为m0_37820202原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。