Revit SDK 介绍:ProgressNotifier 进度通知

前言

这个例子展示的是 Revit 进度通知的能力,在打开文件的过程中,Revit 会有相应的事件通知。

内容

在这里插入图片描述
这个例子的关键入口在 MainWindow 里注册两个事件,m_application.ProgressChangedm_application.DocumentOpened

// Revit 2021 SDK\Samples\Events\ProgressNotifier\CS\MainWindow.xaml.cs
public MainWindow(Autodesk.Revit.ApplicationServices.Application application)
{
   InitializeComponent();
   m_application = application;
   m_progressStack = new ProgressStack();
   m_application.ProgressChanged += new EventHandler<Autodesk.Revit.DB.Events.ProgressChangedEventArgs>(RevitApp_ProgressChanged);
   m_application.DocumentOpened += new EventHandler<Autodesk.Revit.DB.Events.DocumentOpenedEventArgs>(RevitApp_DocumentOpened);
   m_cancel = false;
   m_receivedCancelEvent = false;
   m_previousEvent = null;
}

ProgressChanged

ProgressChanged 的事件可能的通知类型:

namespace Autodesk.Revit.DB.Events
{
    public enum RevitAPIEventStatus
    {
        // 失败
        Failed = -1,
        // 成功
        Succeeded = 0,
        // 取消
        Cancelled = 1
    }
}

对应的事件处理函数相对来说也很简单:

void RevitApp_DocumentOpened(object sender, Autodesk.Revit.DB.Events.DocumentOpenedEventArgs e)
{
   textBox_log.Text += "RevitApp_DocumentOpened: Cancellable:" + e.Cancellable.ToString() + " , IsCancelled: " + e.IsCancelled().ToString() + " , Status:" + e.Status.ToString() + Environment.NewLine;
   m_receivedCancelEvent = (e.Status == Autodesk.Revit.DB.Events.RevitAPIEventStatus.Cancelled);
}

ProgressChanged

ProgressChanged 对应的状态:
在这里插入图片描述
对应的处理函数:
在这里插入图片描述

总结

Revit 的这些事件暴露了一些自己内部处理的流程,给了用户一定的自由度去做自己的事情。在进行文件批处理的时候有一定的作用,当然也可以尝试在这个过程中进行一些加密和解密的操作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客BIM工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值