123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- using Autodesk.Revit.DB;
- using ServiceRevitLib;
- using System;
- using System.IO;
- using Newtonsoft.Json.Linq;
- using SAGA.DotNetUtils.Extend;
- using SAGA.DotNetUtils.Logger;
- //using RevitToJBim.Common;
- namespace ExportStart
- {
- class Program
- {
- static Program()
- {
- RevitCoreContext.Instance.Run();
- }
- [STAThread]
- static void Main(string[] args)
- {
- string command = null;
- string param = null;
- string path = null;
- if (args.Length > 0)
- {
- command = args[0];
- }
- if (args.Length > 1)
- {
- param = args[1];
- }
- if (args.Length > 2)
- {
- path = args[2];
- }
- #if DEBUG
- if (string.IsNullOrWhiteSpace(command))
- {
- command = "DataExport";
- //command = "DataCheck";
- path = @"E:\导出测试\testSpace.rvt";
- path = @"E:\导出测试\系统图修改编码版\给排水系统图模型第一版V1129.rvt";
- path = @"C:\Users\SAGACLOUD\Desktop\新建文件夹\b1-2172005.rvt";
- path = @"C:\Users\SAGACLOUD\Desktop\a1.json";
- JObject jObject = new JObject();
- jObject.Add("ResultFileName", @"C:\Users\SAGACLOUD\AppData\Local\RevitService\Result_e26be2fd-2097-462b-bdd0-a2a86b616928.txt");
- param = jObject.ToString();
- //path= @"E:\导出测试\延庆园-B1.rvt";
- //path = @"E:\导出测试\testR18.rvt";
- //path = @"E:\导出测试\testR16.rvt";
- }
- #endif
- if (string.IsNullOrEmpty(command))
- {
- Log4Net.Debug("命令参数错误");
- }
- File.AppendAllText(@"D:\log.txt", path + "\r\n");
- Log4Net.Info(command);
- Log4Net.Info(path);
- if (File.Exists(path) && Enum.TryParse(command, out CommandType commandType))
- {
- var app = RevitCoreContext.Instance.Application;
- string result = null;
- Console.WriteLine("Task StartTime:" + DateTime.Now);
- try
- {
- var doc = app.OpenDocumentFile(path);
- switch (commandType)
- {
- case CommandType.DataCheck:
- result = Check(doc, param);
- break;
- case CommandType.DataExport:
- result = Export(doc, param);
- break;
- }
- }
- catch (Exception e)
- {
- JObject errorJObject = new JObject();
- errorJObject.Add("ResultMsg", e.Message);
- errorJObject.Add("Result", "Failure");
- result = errorJObject.ToString();
- }
- SaveResult(param, result);
- Console.WriteLine("Task EndTime:" + DateTime.Now);
- RevitCoreContext.Instance.Stop();
- }
- //强制退出
- Environment.Exit(0);
- }
- /// <summary>
- /// 保存检查或导出的结果
- /// </summary>
- /// <param name="param"></param>
- /// <param name="result"></param>
- /// <returns></returns>
- private static void SaveResult(string param, string result)
- {
- File.AppendAllText(@"D:\log.txt", param+"\r\n");
- File.AppendAllText(@"D:\log.txt", result + "\r\n");
- Console.WriteLine(param);
- Log4Net.Debug(param);
- Log4Net.Debug(result);
- try
- {
- JObject jObject = JObject.Parse(param);
- string key = "ResultFileName";
- string path = jObject[key].ToString();
- if (path.IsNotNullEmpty())
- {
- Console.WriteLine(path);
- var dir = Directory.GetParent(path);
- if (!dir.Exists)
- dir.Create();
- File.AppendAllText(path, result);
- }
- }
- catch (Exception e)
- {
- Log4Net.Debug(e.StackTrace);
- }
- }
- enum CommandType
- {
- None = 0,
- DataCheck,
- DataExport
- }
- public static string Export(Document doc, string param)
- {
- string result = null;
- try
- {
- Console.WriteLine("Start Export");
- result = RevitToJBim.MbiExport.Export(doc, param);
- Console.WriteLine("End Export");
- }
- catch (Exception e)
- {
- Console.WriteLine("导出失败");
- Console.WriteLine(e.StackTrace);
- }
- return result;
- }
- public static string Check(Document doc, string param)
- {
- string result = null;
- try
- {
- Console.WriteLine("Start DataCheck");
- result = ServiceDataCheckTest.Check(doc);
- Console.WriteLine("End DataCheck");
- }
- catch (Exception e)
- {
- Console.WriteLine("导出失败");
- Console.WriteLine(e.StackTrace);
- }
- return result;
- }
- }
- }
|