Revit二次开发之拉伸创建族

mac2024-05-29  31

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Autodesk.Revit.DB; using Autodesk.Revit.UI; using Autodesk.Revit.Attributes; using Autodesk.Revit.UI.Selection; namespace ClassLibrary1 { [Autodesk.Revit.Attributes.Transaction(TransactionMode.Manual)] [Autodesk.Revit.Attributes.Regeneration(RegenerationOption.Manual)] public class GetElement : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { UIDocument uidoc = commandData.Application.ActiveUIDocument; Document doc = uidoc.Document; Selection selection = uidoc.Selection; #region 元素的创建 Document familyDoc = commandData.Application.Application.NewFamilyDocument(@"C:\ProgramData\Autodesk\RVT 2016\Family Templates\Chinese\公制常规模型.rft"); using (Transaction ts = new Transaction(familyDoc)) { ts.Start("创建族"); CurveArray curveArray = new CurveArray(); curveArray.Append(Line.CreateBound(new XYZ(0, 0, 0), new XYZ(5, 0, 0))); curveArray.Append(Line.CreateBound(new XYZ(5, 0, 0), new XYZ(5, 5, 0))); curveArray.Append(Line.CreateBound(new XYZ(5, 5, 0), new XYZ(0, 5, 0))); curveArray.Append(Line.CreateBound(new XYZ(0, 5, 0), new XYZ(0, 0, 0))); CurveArrArray curveArrArray = new CurveArrArray(); curveArrArray.Append(curveArray); //创建拉伸实体 familyDoc.FamilyCreate.NewExtrusion(true, curveArrArray, SketchPlane.Create(familyDoc, commandData.Application.Application.Create.NewPlane(new XYZ(0, 0, 1), XYZ.Zero)), 15); //创建一个族类型 familyDoc.FamilyManager.NewType("MyNewType"); ts.Commit(); familyDoc.SaveAs(@"D:\360MoveData\Users\Win\Desktop\MyFamily.rfa"); familyDoc.Close(); } TaskDialog.Show("title", "创建成功!"); #endregion return Result.Succeeded; } } }

 

最新回复(0)