导出FBX
using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; using Autodesk.Revit.UI; using Autodesk.Revit.UI.Selection; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Creat3DView { [Transaction(TransactionMode.Manual)] public class Class1 : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { UIDocument uidoc = commandData.Application.ActiveUIDocument; Document doc = uidoc.Document; UIApplication uiapp = uidoc.Application; Selection sel = uidoc.Selection; View view = commandData.View; List<Reference> referlist = sel.PickObjects(ObjectType.Element, "选择构件").ToList(); List<ElementId> ids = new List<ElementId>(); //声明一个视图集合 ViewSet views = new ViewSet();//特点是集合内容在一个视图文件内 //声明一个视图list集合 List<View3D> view3Ds = new List<View3D>(); //新建事件并启动事件 Transaction ts = new Transaction(doc, "创建围框"); ts.Start(); foreach (var reference in referlist) { Element ele = doc.GetElement(reference); BoundingBoxXYZ boundingBox = ele.get_BoundingBox(view); Transform transform = Transform.Identity; BoundingBoxXYZ box = new BoundingBoxXYZ(); box.Transform = transform; box.Min = boundingBox.Min; box.Max = boundingBox.Max; View3D view3D = View3D.CreateIsometric (doc, new FilteredElementCollector(doc).OfClass(typeof(ViewFamilyType)) .Cast<ViewFamilyType>().Where(m => m.ViewFamily == ViewFamily.ThreeDimensional) .First().Id); //设置三维剖面框 view3D.SetSectionBox(box); views.Insert(view3D); view3Ds.Add(view3D); } ts.Commit(); FBXExportOptions options = new FBXExportOptions(); string fileFolder = @"D:\作品准备\FBX导出"; string fileName = "水厂项目三维构件综合"; doc.Export(fileFolder, fileName, views, options); for (int i = 0; i < view3Ds.Count; i++) { ViewSet viewSet = new ViewSet(); viewSet.Insert(view3Ds[i]); string filename = "水厂项目三维构件" + i; FBXExportOptions pts = new FBXExportOptions(); doc.Export(fileFolder, filename, viewSet, pts); } return Result.Succeeded; } } }