"

新利体育官方网站拥有全球最顶尖的原生APP,每天为您提供千场精彩体育赛事,新利体育官方网站更有真人、彩票、电子老虎机、真人电子竞技游戏等多种娱乐方式选择,新利体育官方网站让您尽享娱乐、赛事投注等,且无后顾之忧!

                                    "
                                    QQ咨询 电话咨询
                                    咨询电话:

                                    15359439502

                                    APP下载
                                    下载App
                                    扫码关注
                                    关注微信公众号
                                    返回顶部

                                    Revit二次开发教程:BIM自学入门Revit二次开发

                                    发布:中文网小编3号 浏览:449人 分享
                                    发布于:2020-05-22

                                        Revit二次开发说难也难,说容易也容易,关键看客官你的情况和兴趣。

                                        要想做Revit二次开发,首先需要有一些开发的基础知识新利体育官方网站,尤其是.NET的开发语言(首选C#,或者VB.NET也行)。其次要知道Revit相关的一些基本概念。

                                        有了上面的基础,入门就是手到擒来的事(当然入门后要转成高手,还是需要磨练的,不是一朝一夕就可以完成的)。

                                        (1)准备工作

                                        开发前需要先安装对应的软件新利体育官方网站新利体育官方网站,包括

                                        AutodeskRevit

                                        VisualStudioExpress(如果是企业或土豪,请使用收费版VS)

                                    image.png

                                        (2)创建项目

                                        打开VisualStudio,单击菜单栏“File”→“New”→“Project…”,或者按快捷键(Ctrl+Shift+N),打开“NewProject”对话框新利体育官方网站。在该对话框中,选择“VisualC#”→“Windows”,在“Templates”中选择“ClassLibrary”,在“Name”栏中输入项目名称“HelloRevit”,单击“OK”。

                                        注:Revit不同版本要求的最低.NETFramework版本不一样。例如2017至少需要4.5.2版本。

                                    image.png

                                        (3)添加引用

                                        选择“SolutionExplorer”的“References”节点,右击选择“AddReference…”,打开“AddReference”对话框。在该对话框中,选择“Browse”选项卡,进入Revit安装目录(根据本地情况选择对应安装目录,例如:C:ProgramFilesAutodeskRevit2017,具体根据客官安装的Revit版本不同而不同),选择“RevitAPI.dll”以及“RevitAPIUI.dll”两个动态链接库,单击“OK”添加到项目引用。

                                        (4)代码编写

                                        接下来新利体育官方网站新利体育官方网站,就可以开始编写具体代码了。项目创建后VisualStudio会默认创建一个Class1.cs文件新利体育官方网站,该文件包含一个public类Class1新利体育官方网站,代码如下:

                                    namespace HelloRevit

                                    {

                                       publicclass Class1

                                       {

                                       }

                                    }

                                    请将以上代码替换为下面的代码(后面会有代码的详细解释):

                                    namespace HelloRevit

                                    {

                                     [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.ReadOnly)]

                                       public class Class1 : Autodesk.Revit.UI.IExternalCommand

                                       {

                                          public Autodesk.Revit.UI.Result Execute(Autodesk.Revit.UI.ExternalCommandData commandData, ref string message, Autodesk.Revit.DB.ElementSet elements)

                                          {

                                             Autodesk.Revit.UI.TaskDialog.Show("Hello", "Hello Revit!");

                                             return Autodesk.Revit.UI.Result.Succeeded;

                                          }

                                       }

                                    }

                                        也可以通过使用using关键字简化下面的代码,简化更改后的代码如下:

                                    using Autodesk.Revit.Attributes;

                                    using Autodesk.Revit.UI;

                                    using Autodesk.Revit.DB;

                                    namespace HelloRevit

                                    {

                                       [Transaction(TransactionMode.ReadOnly)]

                                       public class Class1 : IExternalCommand

                                       {

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

                                          {

                                             TaskDialog.Show("Hello", "Hello Revit!");

                                             return Result.Succeeded;

                                          }

                                       }

                                    }

                                        注:所有的Revit插件功能都以外部命令的方式存在,每一个外部命令都必须继承于IExternalCommand。命令类还必须实现Execute接口,该接口包含三个参数:

                                        commandData:包含Revit应用程序的各种信息,包括文档、应用程序接口新利体育官方网站、当前视图等等。用户需要的所有信息都从该参数获取。

                                        message:主要用于当命令执行遇到问题时给用户报告的错误信息,所以仅当返回值为Result.Cancelled或Result.Failed时,传入该参数的值才会对用户可见??梢越恍┮斐P畔⒎湃敫貌问蕴崾居没侍庠蛐吕逵俜酵?。

                                        elements:也是当命令执行遇到问题时给用户报告错误时使用,因此它跟message参数一样仅当返回值为Result.Cancelled或Result.Failed时有用。该参数包含一个元素集,开发人员可以通过该元素集告知用户哪些元素有问题新利体育官方网站。

                                        (5)注册外部命令

                                        要让Revit能使用外部命令,除了对应的项目和代码,还需要对命令进行注册。Revit通过后缀名为.addin的文件(该文件实际为xml格式)来进行注册。具体步骤如下:

                                        1)新建一个文本文件,并将文件名改为“HelloRevit.addin”(请确认文件名不是“HelloRevit.addin.txt”)新利体育官方网站。然后在该文件中输入以下内容,并保存:

                                    <?xmlversion="1.0" encoding="utf-16"?>

                                    <RevitAddIns>

                                      <AddIn Type="Command">

                                        <Assembly>C:ProjectsHelloRevitinHelloRevit.dll</Assembly>

                                        <AddInId>2FA16D42-9AE3-491d-A919-1A3B04701B9F</AddInId>

                                        <FullClassName>HelloRevit.Class1</FullClassName>

                                                     <VendorId>YourCompany</VendorId>

                                      </AddIn>

                                    </RevitAddIns>

                                        A.AddInType="Command"表明该库是一个外部命令

                                        B.Assembly是编译的“HelloRevit.dll”文件的具体路径新利体育官方网站,请改为本机路径

                                        C.AddInId是一个全局的GUID值,每个外部命令都应该包含一个自己的GUID值(不同命令不能AddInId重复)

                                        D.FullClassName指类的名称(这里是Class1,请注意一定要将命名空间名称加上,例如HelloRevit,否则命令执行时会找不到对应的接口)

                                        E.VendorId指明该命令的厂商,请自定义使用厂商的名称

                                        2)文件保存好之后需要将该文件放入特定目录,如果你希望该插件只有当前用户可用,需要将文件放入:%appdata%AutodeskRevitAddins2017;

                                        如果你希望所有用户都可以使用该插件,则将文件放入C:ProgramDataAutodeskRevitAddins2017

                                        (6)执行命令

                                        所有步骤完成后,启动Revit,功能区中将出现一个“附加??椤毖∠羁ㄐ吕逵俜酵?。

                                        单击“外部工具”下拉列表中的“HelloRevit.Class1”,执行后将弹出一个窗口显示“HelloRevit”新利体育官方网站。

                                    image.png

                                    专注BIM行业发展、咨询新利体育官方网站、教育等问题

                                    查询
                                    新利体育官方网站