revit二次开发创建参照平面
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Media.Imaging;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
namespace AddPanel
{
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public class CsAddpanel:IExternalCommand
{
public void CreatReferencePlane(Document doc)
{
if (!doc.IsFamilyDocument)
{
TaskDialog.Show("非族文档", "非族文档");
return;
}
using (Transaction transaction = new Transaction(doc, "editing family"))
{
transaction.Start();
XYZ bubbleEnd = new XYZ(0, 5, 5);
XYZ freeEnd = new XYZ(5, 5, 5);
XYZ cutVector = XYZ.BasisY;
View view = doc.ActiveView;
ReferencePlane referencePlane = doc.FamilyCreate.NewReferencePlane(bubbleEnd, freeEnd, cutVector, view);
referencePlane.Name = "myreferenceplane";
transaction.Commit();
}
}
public Autodesk.Revit.UI.Result Execute(ExternalCommandData revit,ref string message,ElementSet elements)
{
Document revitDoc = revit.Application.ActiveUIDocument.Document;
Reference pickedElemRef = revit.Application.ActiveUIDocument.Selection.PickObject(Autodesk.Revit.UI.Selection. ObjectType.Element);
FamilyInstance famInst = revitDoc.GetElement(pickedElemRef.ElementId) as FamilyInstance;
Document familyDoc = revitDoc.EditFamily(famInst.Symbol.Family);
CreatReferencePlane(familyDoc);
return Autodesk.Revit.UI.Result.Succeeded;
}
}
}