using Autodesk.Revit.UI; using Autodesk.Revit.DB; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Autodesk.Revit.UI.Selection; using Autodesk.Revit.Attributes; using EncapsulationProgressBar.ViewModels; using static UIFramework.WorksharingNotificationWindow; namespace WPFMonitorProgress.Commands { [Transaction(TransactionMode.Manual)] class ExcuteCmd : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { UIDocument uidoc = commandData.Application.ActiveUIDocument; Document doc = uidoc.Document; int count = 5; try { System.Action action = Method; ProgressMonitorViewModel viewModel = new ProgressMonitorViewModel(doc) { ProcessTitle = "处理墙体", MaxValue= count, Action= action, }; viewModel.ProgressModal(); } catch (Exception e) { if (!(e is Autodesk.Revit.Exceptions.OperationCanceledException)) { message = e.Message; return Result.Failed; } } return Result.Succeeded; } private void Method(int i) { //TaskDialog.Show("提示", "执行了"); } } }