Revit软件二次开发技术的应用探究论文_明亮,吴永强,安娟,王旭朝,毛旭阳,王楚濛

河北建筑工程学院能源与环境工程学院 河北张家口 075000

摘要:BIM技术作为近些年迅速发展的新技术,有着可视化、协调性、模拟性、优化型等特点。但是由于操作规范不同、族样板准备时间长、软件操作不够便利等问题使得其在我国应用范围不够广泛,因此对软件进行二次开发成为发展趋势。本文以Revit软件为例,通过Visual Studio工具编制简单命令程序,探究Revit软件二次开发的相关技术措施。

关键词:BIM技术;二次开发;程序设计

Research on the application of Revit software second-ary development technology

MING Liang,WU Yong-qiang,AN Juan,WANG Xu-zhao,MAO Xu-yang,WANG Chu-meng

(Hebei Institute of Architecture and Civil Engineering,Zhangjiakou 075000)

Abstract:As a new technology developed rapidly in recent years,BIM technology is characterized by visualization,coordination,simulation and optimization.However,due to the problems of different operating specifications,long preparation time for family templates,and insufficient convenience of software operation,it is not widely used in China.Therefore,the secondary development of software has become the development trend.This paper takes Revit software as an example,compiles a simple command program with Visual Studio tools,and explores relevant technical measures for the secondary development of Revit software.

Keywords:BIM technology;Secondary development;design program

引言

建筑信息模型(BIM)技术,利用数字信息模拟真实建筑物,进而开展建筑的设计、施工以及管理工作,各方通过协作平台提高作业效率。BIM技术的应用是建筑行业的重大技术突破,是工程建设的新技术。Revit作为基于BIM技术的一款软件,具有很强的代表性。因其操作简单便捷等特点而成为众多工程设计人员绘制模型时的首选工具。Revit软件本身为了更好的满足广大使用者的建模要求,也在不断进行更新升级,软件所具有的Revit API接口使得用户也可以对Revit软件进行优化调整,个性化的定制功能提升了建模能力,也获得了更好的操作体验。现阶段该技术的应用仍无法摆脱原有设计模式,不能完全实现信息化、标准化的 BIM 应用。同时由于BIM技术的相关技术标准很大程度上遵循西方的规范要求,本土化程度不高,限制了BIM技术在我国的推广应用[1]。目前一些应用实例证明通过对BIM工作系统进行二次开发可降低错误率,缩短各环节的周期,加快作业效率,应用效果良好。对推进BIM在我国大力发展具有重要意义。

1 二次开发技术

1.1 Revit二次开发实现方式

对基于Revit软件进行二次开发的实现方式是通过软件内提供的API接口链接外部程序。通过使用Revit API用户可以个性化的定制Revit相关功能,实现软件的二次开发。二次开发的基础是熟练使用一些编程语言。现阶段软件的二次开发主要停留在对现有一些功能的优化方面,拓展新功能的案例相对较少。

1.2 Revit API简介

Revit API是一种应用程序编程接口,工程技术人员通过它可以访问应用程序的例程,实现软件的二次开发[2]。Revit API能促进三维模型与外部数据信息相结合,实现模型智能化。欧特克公司在购买Revit软件之后,十分重视软件API接口的发展,经过多年研发,Revit API由最初的单纯的对文档对象进行访问[3],到如今衍生出越来越多的功能,更好的满足了用户对于个性化开发的需求。欧特克公司为了让更多普通用户更方便的对软件进行相应开发,在公司官网上提供了Revit SDK,其中包含的开发示例代码,大大降低了开发难度,也使得软件功能得到进一步推广。

1.3 Revit API功能介绍

Revit API可以在参数信息与所绘制模型相融合的基础上集成第三个程序,允许第三方开发者创建自定义工具,进行相应的功能定制。工程技术人员根据实际工程需要,对软件中的相关功能进行相应优化调整或开发。作为软件开发者也可以访问信息模型中的构件,以及查询、变更构件属性和创建新的构件实现对相关数据信息的计算分析等[3]。比如在设计人员建模过程中,之前需要在墙体上逐个绘制窗族,进行二次开发时,通过在外部程序访问参数信息,编写相关代码同,并利用Revit API实现引用,实现一键布置,简单便捷。同时二次开发还具有通过编辑程序来设置运算函数,并应用到模型的数据分析中的功能[4]。

2 Revit二次开发应用实例

2.1 Revit软件操作问题

在运用Revit进行三维正向设计时,由于三维设计的难度远大于二维设计,因此存在许多问题:

1)由于Revit软件建模所遵循的标准为国际标准,与国内标准存在些许不同,对结果存在一些影响。

2)在设计方案初期,如果运用CAD进行绘图,对一些尺寸参数要求的精确度不高,可以直接绘制,后续方案修改时,图纸修改也较容易;而使用Revit进行三维绘图时,由于同时绘制的模型涉及建筑的平面和立面,后续修改难度较大,相当于重新绘制,造成大量无用劳动[5]。

3)虽然软件具有碰撞检测功能,但是检测到碰撞后,软件只是给出碰撞部位显示,没有形象直观的碰撞图片导出,不够便捷。

4)由于Revit软件对计算机要求较高,在运行多个碰撞检测时会出现卡顿现象。

5)在运用Revit进行三维表现时,很重要的一部分就是族的绘制,软件自带族库有限,其余族类型需要设计人员自行绘制,工作量较大,不能很好的体现Revit软件的便利性。

2.2 Revit二次开发一般流程

本次以软件中的弹出窗为示例介绍二次开发的一般操作过程。

1)打开外部程序Visual Studio 2010,点击菜单栏,选择“新建项目”对话框,在“项目类型”中选择“Visual C#”→“Windows”,在“模板”中选择“类库”,在“名称”栏中输入项目名称“Secondary development”,单击“确定”。

2)添加引用:在Revit安装目录中找到RevitAPIUI.dll、RevitAPI.dll,将其添加引用,同时为了避免在编译时将这两个文件复制到本地目录,需要设置本地复制的属性为False。

图2-1新建项目

图2-2添加引用

3)项目创建后Visual Studio会默认创建一个Classl.cs文件,该文件包含一个public类Classl,其中头部代码为:

usingAutodesk.Revit;

usingAutodesk.Revit.DB;

usingAutodesk.Revit.UI;

usingAutodesk.Revit.Attributes;

usingSystem;

程序的主体为:

namespace Secondary development

{

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

[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]

public class Classl:Autodesk.Revit.UI.IExternalCommand

{

public Autodesk.Revit.UI.Result Execute(Autodesk.Revit.UI.ExternalCommandData commandData,ref string message,Autodesk.

Revit.DB.ElementSet elements)

{

System.Windows.Forms.MessageBox.Show("Secondary development");

return Autodesk.Revit.UI.Result.Succeeded;

}

}

}

Revit的插件功能都以外部命令的方式存在,每一个外部命令都必须继承于IExternalCommand,命令类必须声明Transaction和Regeneration属性[6]。

4)通过后缀名为.addin的文件对命令进行注册,使Revit能够使用外部命令 [7]。先新建一个文本文件,将文件名改为“Secondary.addin”,然后在该文件中输入以下内容,并保存:

<?xml version= "1.0" encoding=" utf-16”?>

<RevitAddIns>

<AddIn Type= "Command">

<Assembly>C:\Projects\Secondary\bin\Secondary.dll</Assembly>

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

<FullClassName>Secondary.Classl</FullClassName>

<VendorId>YourCompany</VendorId>

</AddIn>

</RevitAddIns>

5)所有步骤完成后启动Revit,功能区中将出现一个“附加模块”选项卡,单击“外部工具”下拉列表中的“Secondary development.Class1”,执行后将弹出一个对话框,即为所编辑的提示框插件。

图2-3菜单栏示意

图2-4弹出窗

3.结论

随着计算机技术的日新月异,建筑模型信息化获得了越来越多人的关注与认可,很大程度上促进了BIM技术的不断发展。BIM技术的应用涉及工程建设项目从设计,施工到运维的全生命周期,促使各专业之间协同工作,全面把控。现如今,BIM技术应用于工程建设正向设计方面还处于起步阶段,作为BIM技术软件中应用较为广泛的Revit软件,其操作方面还存在一些问题,本土化标准还不够完善,阻碍了BIM技术在我国的广泛应用。对此进行总结分析,通过二次开发手段,个性化定制软件功能,突破BIM技术在设计阶段的瓶颈。

参考文献:

[1]吴吉明.建筑信息模型系统(BIM)的本土化策略研究.[清华大学硕士学位论文].北京:清华大学,2011

[2]吕林琳.BIM在电力建设工程施工过程中的应用探究.[大连海事大学硕士学位论文].大连:大连海事大学,2017

[3]张艺晶.Revit软件基于项目的二次开发应用研究.[河北科技大学硕士学位论文].石家庄:河北科技大学,2015

[4]刘照球,李云贵.建筑信息模型的发展及其在设计中的应用.建筑科学,2009(1):96-99

[5]刘刚.对建筑施工企业应用BIM的建议.中国建筑科学研究院

[6]anyicheng2015的专栏 -CSDN博客.Revit API 开发(1):Hello World.http://blog.csdn.net,2017

[7]杨春蕾,屈红磊,郑慧美.Revit 软件二次开发研究.工程建设与设计,2017(19):71-74

论文作者:明亮,吴永强,安娟,王旭朝,毛旭阳,王楚濛

论文发表刊物:《基层建设》2019年第15期

论文发表时间:2019/8/5

标签:;  ;  ;  ;  ;  ;  ;  ;  

Revit软件二次开发技术的应用探究论文_明亮,吴永强,安娟,王旭朝,毛旭阳,王楚濛
下载Doc文档

猜你喜欢