123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- /* ==============================================================================
- * 功能描述:CheckBase
- * 创 建 者:Garrett
- * 创建日期:2018/10/23 15:50:19
- * ==============================================================================*/
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.ComponentModel;
- using Autodesk.Revit.DB;
- using NPOI.SS.UserModel;
- using SAGA.DotNetUtils.Others;
- namespace Saga.PlugIn.ModelCheck
- {
- /// <summary>
- /// CheckBase
- /// </summary>
- public class ModeCheckBase : ICheckBase, INotifyPropertyChanged
- {
- public string Name { get; set; }
- protected Document m_Document { get; set; }
- private ObservableCollection<ModeCheckResultBase> results = new ObservableCollection<ModeCheckResultBase>();
- public ObservableCollection<ModeCheckResultBase> Results
- {
- get { return results; }
- set
- {
- results = value;
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Results)));
- }
- }
- public void Check2(Document doc)
- {
- m_Document = doc;
- ModelCheckState = ModelCheckState.Ending;
- if (!RIsChecked) return;
- Check();
- //刷新界面
- Results = Results;
- }
- public virtual bool Check()
- {
- throw new NotImplementedException();
- }
- public virtual void Export()
- {
- throw new NotImplementedException();
- }
- #region 检查结果
- protected ModeCheckBase RBase { get; set; }
- public void SetBaseCheck(ModeCheckBase checkBase)
- {
- RBase = checkBase;
- }
- /// <summary>
- /// 是否通过较验
- /// </summary>
- public bool IsRight { get; set; }
- /// <summary>
- /// 提示信息
- /// </summary>
- public string RMessage { get; set; }
- /// <summary>
- /// 设置表可见性
- /// </summary>
- public bool SetSheetVisible()
- {
- bool result = RIsChecked;
- //if (result)
- // result = !(results.All(t => t.IsRight));
- //如果有没有通过的项
- if (!result)
- {
- try
- {
- IWorkbook book = DCRExport.GetWorkbook();
- int index = book.GetSheetIndex(Name);
- //隐藏
- book.SetSheetHidden(index, SheetState.VeryHidden);
- //关联项隐藏
- foreach (var str in RSPecificationSheet)
- {
- int i = book.GetSheetIndex(str);
- //隐藏
- book.SetSheetHidden(i, SheetState.VeryHidden);
- }
- }
- catch (Exception e)
- {
- MessageShowBase.Show(e);
- }
- }
- return result;
- }
- /// <summary>
- /// 保存并隐藏全部通过的sheet
- /// </summary>
- public void Export2()
- {
- Export();
- SetSheetVisible();
- }
- #endregion
- #region 样式控制
- private ModelCheckState m_ModelCheckState = ModelCheckState.Prepare;
- public ModelCheckState ModelCheckState
- {
- get { return m_ModelCheckState; }
- set
- {
- m_ModelCheckState = value;
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(ModelCheckState)));
- }
- }
- private bool m_RIsChecked;
- /// <summary>
- /// 是否选中
- /// </summary>
- public bool RIsChecked
- {
- get { return m_RIsChecked; }
- set
- {
- m_RIsChecked = value;
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(RIsChecked)));
- }
- }
- private List<string> m_SpecificationSheet = new List<string>();
- public event PropertyChangedEventHandler PropertyChanged;
- /// <summary>
- /// 关联规范项
- /// </summary>
- public List<string> RSPecificationSheet
- {
- get { return m_SpecificationSheet; }
- set { m_SpecificationSheet = value; }
- }
- #endregion
- }
- }
|