123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- /*-------------------------------------------------------------------------
- * 功能描述:TestExport
- * 作者:xulisong
- * 创建时间: 2019/6/18 15:43:54
- * 版本号:v1.0
- * -------------------------------------------------------------------------*/
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Autodesk.Revit.Attributes;
- using Autodesk.Revit.DB;
- using Autodesk.Revit.DB.Mechanical;
- using Autodesk.Revit.DB.Plumbing;
- using Autodesk.Revit.UI;
- using RevitExport;
- using RevitExport.Export;
- using RevitToJBim.ComponentParse;
- using SAGA.RevitUtils;
- using SAGA.RevitUtils.Extends;
- namespace RevitToJBim
- {
- public class TestExport
- {
- public static Document Document { get; set; }
- public static void Export()
- {
- var elements = Document.GetElements(typeof(Pipe));
- var elements2 = Document.GetElements(typeof(SpatialElement)).OfType<Space>().ToList();
- var elements3 = Document.GetElements(typeof(Duct)).OfType<Duct>().ToList();
- elements.AddRange(elements2);
- elements.AddRange(elements3);
- var wrappers = ExportDataBuilder.CreateExportData(Document);// elements.Select(e => new ElementWrapper(e)).ToList();
- ExportInstance report = new ExportInstance(wrappers);
- JBimParseContext context = new JBimParseContext(ParseCore.GetUseParsers());
- var dd = false;
- context.Parser.Parse(report);
- var result = context.Serialize();
- string fileName = DateTime.Now.ToString("yyyyMMddHHmmss");
- string path = Path.Combine(@"D:\", $"{fileName}.json");
- File.WriteAllText(path, result);
- System.Diagnostics.Process.Start("notepad.exe", path);
- }
- }
- /// <summary>
- /// 测试提取数据
- /// </summary>
- [Transaction(TransactionMode.Manual)]
- [Regeneration(RegenerationOption.Manual)]
- public class PickDataCommand : IExternalCommand, IExternalCommandAvailability
- {
- public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
- {
- try
- {
- TestExport.Document = commandData.Application.ActiveUIDocument.Document;
- TestExport.Export();
- TaskDialog dialog = new TaskDialog("导出");
- dialog.MainInstruction ="导出成功";
- dialog.Show();
- }
- catch (Exception e)
- {
- TaskDialog dialog = new TaskDialog("导出");
- dialog.MainInstruction =e.Message+"\n\t"+ e.StackTrace.ToString();
- dialog.Show();
- return Result.Cancelled;
- }
- return Result.Succeeded;
- }
- /// <summary>
- /// Onlys show the dialog when a document is open, as Dockable dialogs are only available
- /// when a document is open.
- /// </summary>
- public bool IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
- {
- return false;
- }
- }
- }
|