/*------------------------------------------------------------------------- * 功能描述:ExportInstance * 作者:xulisong * 创建时间: 2019/6/13 14:46:48 * 版本号:v1.0 * -------------------------------------------------------------------------*/ using System; using System.Collections.Generic; namespace RevitExport.Export { /* * 使用event形式,将Export和Parse关联断开 */ /// /// 导出实例 /// public class ExportInstance { public ExportInstance(List elements) { ExportElements = elements ?? new List(); } /// /// 待导出元素 /// private List ExportElements { get; set; } #region 导出逻辑相关 public bool Export() { if (ExportElements == null) return false; for (int i = 0; i < ExportElements.Count; i++) { if (IsCancel) return false; try { ElementWrapper revitElementWrapper = ExportElements[i]; ParseElement?.Invoke(this, new ExportArgs(revitElementWrapper)); ProcessChanged?.Invoke(i + 1); } catch (Exception e) { Console.WriteLine(e); } } return true; } /// /// 是否取消 /// public bool IsCancel { get; set; } public event EventHandler ParseElement; public event Action ProcessChanged; #endregion } public class ExportArgs : EventArgs { public ExportArgs(ElementWrapper elementWrapper) { ElementWrapper = elementWrapper; } public ElementWrapper ElementWrapper { get; private set; } } }