MbiExport.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*-------------------------------------------------------------------------
  2. * 功能描述:TestExport
  3. * 作者:xulisong
  4. * 创建时间: 2019/6/18 15:43:54
  5. * 版本号:v1.0
  6. * -------------------------------------------------------------------------*/
  7. using System;
  8. using System.Collections.Generic;
  9. using System.IO;
  10. using Autodesk.Revit.DB;
  11. using MBIRevitBase.Services;
  12. using MBIRevitBase.Tools;
  13. using Newtonsoft.Json;
  14. using RevitExport.Export;
  15. using RevitToJBim.ComponentParse;
  16. using RevitToJBim.JsonConverter;
  17. using RevitToJBim.MBI;
  18. using ServiceRevitLib.Mode;
  19. namespace RevitToJBim
  20. {
  21. public class MbiExport
  22. {
  23. public static string Export(Document document,string param)
  24. {
  25. string result = null;
  26. //导出类
  27. try
  28. {
  29. var wrappers = ExportDataBuilder.CreateExportData(document);
  30. ExportInstance report = new ExportInstance(wrappers);
  31. //解析类
  32. JBimParseContext context = new JBimParseContext(ParseCore.GetUseParsers());
  33. context.Parser.Parse(report);
  34. //构建需要结果
  35. var mbiDocument = MBIDocument.CreateDocument(document, param);
  36. mbiDocument.AttachElements(context.GetResultDocument());
  37. /*
  38. * 序列化的变化封装在这里,增加MBIDocument传输数据对象,
  39. * 增加一些和JBIM无关,又和当前业务逻辑相关的属性
  40. */
  41. var json = BimJsonUtil.Serializer(mbiDocument);
  42. var resultResponse = UploadService.UploadExportFile(json);
  43. result= BimJsonUtil.Serializer((ResultBase)resultResponse);
  44. }
  45. catch (Exception ex)
  46. {
  47. result = BimJsonUtil.Serializer(ResultBase.Exception(ex.Message));
  48. }
  49. return result;
  50. }
  51. }
  52. }