public void CreateModelCurve()
{
Document doc = this.ActiveUIDocument.Document;
// 在族文档中找到名字为"Ref. Level"的标高
FilteredElementCollector collector = new FilteredElementCollector(doc);
collector = collector.OfCategory(BuiltInCategory.OST_Levels);
var levelElements = from element in collector where element.Name == "Ref. Level" select element;
List<Autodesk.Revit.DB.Element> levels = levelElements.ToList<Autodesk.Revit.DB.Element>();
if(levels.Count <= 0)
return;
Level refLevel = levels[0] as Level;
// 创建一条几何直线,一个基于标高的草图平面,然后在这个草图平面上创建一条模型线.
using(Transaction trans = new Transaction(doc, "Create model line."))
{
trans.Start();
Line line = Line.CreateBound(XYZ.Zero, new XYZ(10,10,0));
SketchPlane sketchPlane = SketchPlane.Create(doc, refLevel.Id);
ModelCurve modelLine = doc.FamilyCreate.NewModelCurve(line, sketchPlane);trans.Commit();}
}