public interface IExternalApplication
{
Autodesk.Revit.UI.Result OnShutdown(UIControlledApplication application);
Autodesk.Revit.UI.Result OnStartup(UIControlledApplication application);
}

开发者可以通过实现IExternalApplications来添加自己开发的Revit应用。Revit通过后缀为“.addin”的文件来识别和加载实现IExternalApplication的外部插件。

lExternalApplication的接口要实现两个抽象函数:OnStartup和OnShutdown。用户可以通过这两个函数实现在Revit启动和关闭的时候定制所需的功能。

OnStartup 和 OnShutdown 兩数的参数均为 UIControlledApplication 类型。 UIControlledApplication 类是一种特殊的应用类,它不提供访问Revit的功能。 因为UIControlledApplication只在OnStartup和OnShutdown函数范围内起作用,在这个 作用域区间内用户是无法拿到Revit的文档并对其操作的。

UIComrolledApplication类提供访问定制UI和注册事件的方法

 public Autodesk.Revit.UI.Result OnStartup(UIControlledApplication application){//添加一个新的Ribbon面板RibbonPanel ribbonPanel = application.CreateRibbonPanel("NewRibbonPanel");//在新的Ribbon面板上添加一个按钮 PushButton pushButton = ribbonPanel.AddItem(new PushButtonData("HelloRevit", "HelloRevit", @"D:\Projects\HelloRevit\HelloRevit.dll", "HelloRevit.Classl")) as PushButton;return Result.Succeeded;}
public Result OnShutdown(UIControlledApplication application){//UI定制不耑要特别在OnShutdown方法中做处理return Result.Succeeded;}

【数据库(DB)级别的外部应用】
数据库(DB)级别的外部应用与一般外部应用不同的是,它没有提供任何访问Revit  UI的接口。它一般用于事件处理,开发者可以通过实现IExternalDBApplication来添加所需的DB基本的外部应用。

同 lExternalApplication 一样,lExternalDBApplication 接 口也有两个抽象函数 OnStartup和OnShutdown。

定义:

public interface lExternalDBApplication{Autodesk.Revit.DB.ExternalDBApplicationResult OnShutdown(UIControlledApplication application);Autodesk.Revit.DB.ExternalDBApplicationResult OnStartup(UIControlledApplication application);}

=========【更多高级应用请关注公众号】========

===================================

Revit二次开发之外部应用IExternalApplications和数据库级别的外部应用【比目鱼原创】相关推荐

  1. Revit二次开发之判断一个族实例是否基于面创建【比目鱼原创】

    =========[更多高级应用请关注公众号]======== =================================== Revit中有些族是不基于面创建,有些族是基于面创建(如环形吸顶 ...

  2. revit二次开发之数据库的使用

    一.背景 小伙伴们在revit二次开发时,可能会需要与数据库做交互,那么如何实现呢? 二.思路 笔者为此录制了一个教学视频,通俗易懂,大家直接看就行了 地址:https://www.bilibili. ...

  3. Revit二次开发 外部命令和外部应用

    外部命令 通过IExternalCommand来添加自己的应用.Revit通过.addin文件来识别和加载外部插件 基本原理 Revit没有其他命令在运行或者没有处于编辑模式,那么已经注册了的外部命令 ...

  4. Revit二次开发之使用外部程序集DT_Mgd读取CAD图遇到的问题

    Revit二次开发学习笔记(一) 最近学习在revit中读取链接的CAD图纸信息(包括文字.图层.各种线型),由于小白也是初学者,遇到了一些问题,如图所示: 通过大量查阅参考资料发现,问题是:在类库项 ...

  5. Revit二次开发5、外部事件(ExternalEvent)

    Revit二次开发5.外部事件(ExternalEvent) 外部事件ExternalEvent简介 事件 外部事件 实现步骤 外部事件的实现 实现IExternalEventHandler接口 Ex ...

  6. Revit二次开发环境搭建(Revit 2019+Visual Studio 2017)

    Revit二次开发环境搭建(Revit 2019+Visual Studio 2017) 安装 Revit 2019 Visual Studio 2017 Revit SDK 2019 配置Addin ...

  7. Revit二次开发入门相关安装和配置

    Revit二次开发入门相关安装和配置 最近一周,由于项目需要,需要做一个基于Revit的二次开发项目,也特意初步自学了Revit二次开发的相关知识.由于学习时间过短,了解到的只是皮毛,所有还希望大家能 ...

  8. Revit二次开发2、RevitAPI、RevitAPIUI及Revit开发三大利器

    Revit二次开发2.开发基础之--RevitAPI.RevitAPIUI及Revit开发三大利器 RevitAPI.dll RevitAPIUI.dll Revit开发三大利器 外部命令(IExte ...

  9. Revit二次开发之族库管理系统

    一.背景 很多小伙伴都想制作族库管理系统,但又不知从何下手,这里骑士给大家分享一下骑士做的族库管理系统,以及用到的一些技术点吧.感兴趣可以加入Q群711844216,有完整的族库开发教学. 二.技术点 ...

最新文章

  1. 第一部分:基础知识(第一章)屏幕部分续
  2. ajax包含mysql吗_php 实例ajax与mysql怎么只查询出一条数据?
  3. 信息学奥赛一本通(1022:整型与布尔型的转换)
  4. Leetcode每日一题:83.remove-duplicates-from-sorted-list(删除排序链表中的重复元素)
  5. 数据结构之查找-顺序查找,折半查找,分块查找
  6. Vue3源码之createApp
  7. Unity调用打印机
  8. 在电脑上如何快速制作一寸照片?在线一键制作工具推荐给你
  9. 服务器的使用:Linux一键搭建KMS激活服务器
  10. VUE中动态改变字体大小
  11. Windows 10 修改 Alt+Tab 键 切换 新版 Microsoft Edge 单个标签页窗口
  12. python 添加半透明水印_如何利用python给图片添加半透明水印
  13. CPU后面字母究竟是啥?
  14. 【问题】【实用】java服务假死【CLOSE_WAIT】【线程WAITING】
  15. sql,python
  16. matlab 测半高宽,峰位 半高宽
  17. 股票交易接口api适合什么人群?
  18. 蓝牙配对不弹配对框_人工智能和字体配对
  19. python网页版百度_python,_爬虫 页面不存在_百度搜索,python - phpStudy
  20. 阿里巴巴算法面试经验分享(附面试题及答案)

热门文章

  1. 互联网巨头逐鹿开放平台
  2. 共享文件服务器扫描的,服务器上如何设置扫描共享文件夹
  3. 阜阳市历史悠久,人文蔚盛
  4. android常见的弹窗对话框
  5. CentOS7安装Go环境
  6. 输出一个非负整数的每位数之和
  7. 怎么修改mysql的加密方式_Mysql修改加密方式
  8. Android进阶——网络通信之ip rule,ip route等策略路由小结
  9. glViewport
  10. 生成open3d项目报错:error LNK2001: 无法解析的外部符号 __imp_glViewport