Revit开发 - 创建梁(Beam)
本文演示Revit中梁的创建。
实例代码:
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Structure;
using Autodesk.Revit.UI;
namespace RevitAddin4
{
[TransactionAttribute(TransactionMode.Manual)]
public class RevitAddin : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIDocument uiDoc = commandData.Application.ActiveUIDocument;
Document doc = uiDoc.Document;
FilteredElementCollector collector = new FilteredElementCollector(doc);
collector.OfCategory(BuiltInCategory.OST_StructuralFraming);
FamilySymbol familySymbol = null;
foreach (var item in collector)
{
familySymbol = item as FamilySymbol;
if (familySymbol != null)
break;
}
//创建线
Curve curve = Line.CreateBound(new XYZ(0, 0, 0), new XYZ(0, 20, 0));
//获取当前视图的标高
Level level = doc.ActiveView.GenLevel;
if (level == null)
{
TaskDialog.Show("错误", "不是PlainView");
return Result.Failed;
}
//创建梁
using (Transaction tr = new Transaction(doc))
{
tr.Start("Create beam");
if(!familySymbol.IsActive)
familySymbol.Activate();
doc.Create.NewFamilyInstance(curve, familySymbol, level, StructuralType.Beam);
tr.Commit();
}
return Result.Succeeded;
}
}
}
运行结果: