首先说一下Revit体量里的放样都有哪些api:
1、通过轮廓和方向生成几何体 (拉伸操作)
Form NewExtrusionForm(bool isSolid, ReferenceArray profile, DB.XYZ direction);
2、通过轮廓线生成面 (融合操作)
Form NewFormByCap(bool isSolid, ReferenceArray profile);
3、通过面和向量生成体 (旋转操作)
Form NewFormByThickenSingleSurface(bool isSolid, Form singleSurfaceForm, DB.XYZ thickenDir);
4、通过轮廓组生成体 (放样操作)
Form NewLoftForm(bool isSolid, ReferenceArrayArray profiles);
5、通过放样路径和轮廓组生成几何体 (放样融合操作)
Form NewSweptBlendForm(bool isSolid, ReferenceArray path, ReferenceArrayArray profiles);
示例一:
使用NewSweep来根据某条曲线的路径生成对应截面的体量模型。
Sweep NewSweep(bool isSolid,CurveArray path,SketchPlane pathPlane,SweepProfile profile,int profileLocationCurveIndex,ProfilePlaneLocation profilePlaneLocation)
参数说明:
- isSolid
类型: System布尔值
指示放样是“实心”还是“空心”。 - 路径
类型: Autodesk.Revit.DB CurveArray
生成的路径。路径应为2D,其中所有输入曲线都位于一个平面上,并且不需要曲线来引用现有几何图形。 - 路径平面
类型: Autodesk.Revit.DB SketchPlane
路径的草图平面。 - 轮廓
类型: Autodesk.Revit.DB SweepProfile
它可能包含多个曲线环或一个轮廓族。轮廓必须位于XY平面中,并且它将自动转换为轮廓平面。每个回路必须是完全闭合的曲线回路,并且回路不得相交。循环可以是未绑定的圆形或椭圆形,但是其几何形状将分为两部分,以满足对拉伸中使用的草图的要求。 - profileLocationCurveIndex
类型: System Int32
路径曲线的索引。 - profilePlaneLocation
类型: Autodesk.Revit.DB ProfilePlaneLocation
profileLocationCurve上确定轮廓平面的位置。
方法示例:
private Sweep CreateSweep(Autodesk.Revit.DB.Document document, SketchPlane sketchPlane)
{
Sweep sweep = null;
// 确保我们有一个族文件
if (true == document.IsFamilyDocument)
{
// 为实体定义一个轮廓
CurveArrArray arrarr = new CurveArrArray();
CurveArray arr = new CurveArray();
// 创建椭圆形轮廓
XYZ pnt1 = new XYZ(0, 0, 0);
XYZ pnt2 = new XYZ(2, 0, 0);
XYZ pnt3 = new XYZ(1, 1, 0);
arr.Append(Arc.Create(pnt2, 1.0d, 0.0d, 180.0d, XYZ.BasisX, XYZ.BasisY));