摘要:
尝试不同类型元素的创建方法:
(1)创建一个拉伸实体(正方体)
(2)创建一个自定义族类型
项目完整代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
namespace MoreCreation
{
[TransactionAttribute(TransactionMode.Manual)]
[RegenerationAttribute(RegenerationOption.Manual)]
public class Class1 : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIDocument uidoc = commandData.Application.ActiveUIDocument;
Document doc = uidoc.Document;
//创建事务:拉伸
Transaction trans = new Transaction(doc, "LS");
trans.Start();
//创建拉伸的闭合曲线
Curve c1 = Line.CreateBound(new XYZ(0, 0, 0), new XYZ(0, 10, 0));
Curve c2 = Line.CreateBound(new XYZ(0, 10, 0), new XYZ(10, 10, 0));
Curve c3 = Line.CreateBound(new XYZ(10, 10, 0), new XYZ(10, 0, 0));
Curve c4 = Line.CreateBound(new XYZ(10, 0, 0), new XYZ(0, 0, 0));
CurveArray curveArray = new CurveArray();
curveArray.Append(c1);
curveArray.Append(c2);
curveArray.Append(c3);
curveArray.Append(c4);
CurveArrArray curveArr = new CurveArrArray();
curveArr.Append(curveArray);
//创建拉伸
Plane p1 = Plane.CreateByNormalAndOrigin(new XYZ(0, 0, 1), XYZ.Zero);
doc.FamilyCreate.NewExtrusion(true, curveArr, SketchPlane.Create(doc, p1), 10);
doc.FamilyManager.NewType("我创建的类");
trans.Commit();
return Result.Succeeded;
}
}
}
效果:
①生成正方体:
②自定义族类型:
参考文献:
周婧祎《Autodesk Revit 2016二次开发入门教程》