123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- /* ==============================================================================
- * 功能描述:单位检查
- * 创 建 者:Garrett
- * 创建日期:2018/10/23 15:08:55
- * ==============================================================================*/
- using System;
- using System.Linq;
- using Autodesk.Revit.DB;
- using NPOI.SS.UserModel;
- using SAGA.DotNetUtils.Others;
- namespace Saga.PlugIn.ModelCheck
- {
- /// <summary>
- /// UnitCheck
- /// </summary>
- [ParseIndex(Index = 3)]
- class UnitCheck : ModeCheckBase
- {
- public UnitCheck()
- {
- Name = "项目长度单位检查";
- }
- public override bool Check()
- {
- if (!RBase.IsRight)
- {
- IsRight = RBase.IsRight;
- return IsRight;
- }
- bool unitResult = true;
- foreach (SagaSignCheckResult signResult in RBase.Results)
- {
- var ismmUnit = IsLengthMMUnit(signResult.RDocument);
- var unitItem = new UnitCheckResult() { RBase = signResult };
- Results.Add(unitItem);
- unitItem.IsRight = ismmUnit;
- if (!ismmUnit)
- {
- unitItem.RMessage = "单位异常,请修改长度单位为毫米(mm)";
- unitResult = ismmUnit;
- }
- }
- IsRight = Results.All(t => t.IsRight); ;
- return IsRight;
- }
- /// <summary>
- /// 判断长度单位是否为毫米
- /// </summary>
- /// <returns></returns>
- public static bool IsLengthMMUnit(Document doc)
- {
- var units = doc.GetUnits();
- var formatOptions = units.GetFormatOptions(UnitType.UT_Length);
- return formatOptions.DisplayUnits == DisplayUnitType.DUT_MILLIMETERS;
- }
-
- //[DataCheckProcessAspect]
- public override void Export()
- {
- IWorkbook book = DCRExport.GetWorkbook();
- try
- {
- //ISheet sheet = book.CreateSheet(Name);
- ISheet sheet = book.GetSheet(Name);
- #region 添加数据
- int index = 3;
- IRow rowF = null;
- foreach (var result in Results)
- {
- index++;
- DataCheckNPOIStyle style = result.IsRight ? DataCheckNPOIStyle.Content : DataCheckNPOIStyle.Error;
- IRow rowN = sheet.CreateRow(index);
- SagaSignCheckResult rbase = result.RBase as SagaSignCheckResult;
- if (rbase == null)
- continue;
- int j = -1;
- string rowN4 = result.IsRight ? "通过" : "不通过";
- rowN.AddCell(++j, rowN4, style);
- rowN.AddCell(++j, result.RMessage, style);
- }
- #endregion
- }
- catch (Exception e)
- {
- MessageShowBase.Show(e);
- }
- }
- }
- /// <summary>
- /// UnitCheckResult
- /// </summary>
- class UnitCheckResult : ModeCheckResultBase
- {
- }
- }
|