当前位置:首页 > Windows程序 > 正文

Revit API二次开发入门,完整学习流程,附源码

2024-03-31 Windows程序

标签:

Revit二次开发入门 Revit二次开发的完整过程

完整演示最简单命令Hello World

调试代码

命令类属性用法

输入输出参数含义

用addin文件加载外部命令

外部命令加载工具AddinManager

两种方式来扩展Revit的功能

方式一:外部命令(External Command)

功能:添加一个Revit命令

描述:由用户点击按钮来启动命令

使用最频繁

方式二:外部应用(External Application)

功能:可以添加菜单和工具条,或其他初始化命令

描述:在启动和关闭Revit.exe时自动执行

一般会用到,用量不多

演示最简单外部命令

功能:运行命令后,弹出消息框,显示Hello World

步骤:使用C#语言创建一个类库

技术图片

技术图片

导入依赖库(重要)

技术图片

技术图片

演示

技术图片

using Autodesk.Revit.DB; using Autodesk.Revit.UI; using Autodesk.Revit.ApplicationServices; using Autodesk.Revit.Attributes; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace RevitDevTV { [Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)] public class DevTVHelloWorld : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { MessageBox.Show("Hello World"); return Result.Succeeded; } } [Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)] public class ArgumentUsage : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { //获取uiapp信息 UIApplication uiApp = commandData.Application; //获取文档级的application信息 Autodesk.Revit.ApplicationServices.Application app = uiApp.Application; //获取当前模型 Document doc = uiApp.ActiveUIDocument.Document; string strAppInfo = app.VersionBuild+";"+app.VersionName+";"+app.VersionNumber; //获取当前选择集 Autodesk.Revit.UI.Selection.Selection sel = uiApp.ActiveUIDocument.Selection; message = "当前选择集中包含如下对象"; //为了显示错误信息框,需要返回Failled return Result.Failed; } } }

跟踪调试Revit程序

  Revit运行时调试

  方法:Tools->attach to process->Attach to Revit.exe

  特点:可以随时在VS中Detach调试,此时Revit不退出,灵活方便,可以在Revit不退出的情况下调试多个程序

  用Detach中断调试,继续修改代码,再次绑定来调试

演示

技术图片

Execute参数应用

演示使用Execute的输入输出参数

获取Application对象,供本命令使用

读取版本信息

获取当前文档

返回提示字符串消息

返回选中对象,供用户

Execute参数解释

public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)

传入参数

  ExternCommandData

  由此获取应用程序对象和文档对象

传出参数

  ref string:传出提示字符串,提示用户存在的问题

  ElementSet:传出一个对象集合,用户可查看其中的对象

外部命令属性

命令前面的两个属性:事务和更新属性

[Transaction(TransactionMode.**)]

[Regeneration(RegenerationOption.**)]

两种事务模式

自动事务模式:TransactionMode.Automatic

手工事务模式:TransactionMode.Manual

创建外部应用演示

实现的功能

  在Revit启动时,弹出对话框

  在Revit退出时,弹出一个对话框

实现类:IExternalApplication接口派生

实现OnStartup()和OnShutdown()方法

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/43529.html

Jm-杰米博客Jamie
草根站长的技术交流乐园!IT不会不要紧快来好好学习吧!
  • 20786文章总数
  • 7494595访问次数
  • 建站天数
  • 友情链接