Revit中自动生成标高线的开发技术

2020-08-28 10:20胡宏彪江苏建筑职业技术学院建筑管理学院江苏徐州221116
安徽建筑 2020年8期
关键词:后缀控件楼层

胡宏彪 (江苏建筑职业技术学院建筑管理学院,江苏 徐州 221116)

1 引言

三维建模软件是BIM技术的核心工具,Autodesk公司的Revit软件因其功能强大,适用专业广泛,在我国正逐渐成为主要的三维建模工具[1],从事BIM工作的人员基本都要接触使用这款软件。使用Revit进行三维建模的第一步是创建标高线,可是,使用手工方式创建标高线时,由于该软件的人机交互设计不够友好,既没有标准的操作流程,也没有清晰的指引界面,初学者往往要根据教材反复练习,才能记住操作步骤;而且,由于是国外公司开发的产品,行业标准和标注习惯都与国内有所不同,还要通过人工对标高线的标识进行大量修改,才能适合国内制图要求,使得使用人员一开始就感到Revit的学习成本高、绘图效率低。所以,对Revit中标高线自动生成的开发技术进行研究,建立标高线自动创建工具,可以降低BIM技术中建模工作的难度,使得BIM技术更容易在实际工作中被接受。

2 Revit开发

2.1 开发思路

创建标高线时,用户需要输入的基本信息是标高高度数值和标高名称,因为BIM技术的建模特点是要求项目的各项信息都集中于一个三维模型中,在房屋建筑的三大专业——建筑、结构、设备中,建筑与结构专业是有各自独立的标高系统的,而设备专业是依赖于这两个专业的标高系统,所以,建筑专业和结构专业的标高系统都要集中在一个项目文件中,这个项目文件就可以一次性提供给三大专业,但为了以后使用方便,需要把建筑与结构专业的标高用不同的标记区分开。Revit中允许在标高名称上加上前缀和后缀,本设计主要利用前缀和后缀对建筑标高和结构标高进行区分,如:建筑标高线的前缀为“建筑”,后缀用“F”表示楼层;结构标高线的前缀为“结构”,后缀用“层”,这样就可以从标识上对两个系统的标高进行明显区分了,不过为了满足用户灵活使用的要求,创建标高线时,名称的前缀和后缀由用户自行输入确定,这样创建时需要的基本信息就是标高数值、标高名称、名称前缀、名称后缀。

标高线自动生成还要实现的一个重要功能,是针对房屋中的标准层进行批量创建楼层标高线,这是实际工作中最突出的需求点。所以,在基本信息的基础上,再加入楼层数量和楼层高度两个信息,如用户输入这两个信息,就以基本信息中的标高数值为起始标高,以楼层高度为递增值,创建指定楼层数量的标高线,最终,用户输入界面设计如图1所示。

图1 交互界面设计图

该用户界面的设计简洁明了,指向清晰,当只在基本信息栏内填入数据时,就默认为只创建一条标高线,在填入基本信息的基础上,再填入批量创建栏里的信息,就默认为要进行批量创建标高线。

2.2 Revit二次开发技术

Autodesk Revit系列的所有产品都提供 API(Application Programming Interface应用程序编程接口),用户可以通过API将应用程序集成到Revit中[2]。基于RevitAPI,用户可以开发插件来扩展和增强Revit的功能和应用,用户需要在自己的插件中实现特殊的接口,这些接口包括IExternalCommand、IExternalApplication和IExternalDBApplication。IExternalCommand是用户通过外部命令扩展Revit时必须实现的接口;IExternalApplication是用户通过外部应用扩展Revit是必须实现的接口;IExternalDBApplication是用户进行数据库级别事件处理时要实现的接口。在Revit中调用插件需要对插件进行注册,Revit通过后缀名为.addin的文件实现注册,Revit会在启动时自动搜索指定目录中的.addin文件并进行加载。

Revit的基本开发流程为:首先创建一个类库(Class Libriary)项目,在这个类库项目上添加两个引用:RevitAPI.dll和RevitAPIUI.dll,在程序中添加命名空间 Autodesk.Revit.UI、Autodesk.Revit.DB,在程序中添加事件属性,建立一个IExternalCommand的派生类,在Execute()函数中通过编写代码进行重载实现需要的功能[3],开发流程见图2所示。

根据前面的开发思路,程序编制思路如下:

图2 Revit基本开发流程图

程序中调用RevitAPI的主要语句如下:

创建标高线的语句:Level level=Level.Create(document,elevation);

给标高线命名的语句:level.Name="New level"。

2.3 交互界面技术

在Revit插件工具开发中,交互界面的设计也是非常重要的技术内容,因为作为人和计算机进行信息交换的通道,友好美观的交互界面可以给用户提供舒适的操作体验[4]。在本研究中,选择使用WPF技术开发插件的交互界面。WPF为Windows Presentation Foundation的首字母缩写,中文译为“Windows呈现基础”,它是微软新一代图形系统,运行在.NET Framework 3.0及以上版本中。使用WPF创建交互界面,就是通过在创建窗口后填充入相应控件来实现设计意图,首先要选择布局控件,根据图1所示的界面设计,选择Grid控件进行布局,在该布局中子控件按行和列进行排列,称为网格化布局,界面中文字信息使用Labal控件,输入框使用TextBox控件,确定按钮使用Button控件。

可扩展应用程序标记语言(XAML)是一种基于XML的标记语言,以声明形式实现应用程序的外观,在WPF中通常用它创建窗口、对话框、页和用户控件,并填充控件、形状和图形。

使用XAML建立网格的命令语句为:

使用XAML建立文字信息的命令语句示例如下:

使用XAML建立按钮的命令语句示例如下:

2.4 工程实例

通过对以上开发技术的研究,制作出了一个标高线自动生成的Revit工具插件,并以一个常见的剪力墙结构的住宅楼为例进行项目实际操作验证,该住宅楼的楼层标高及层高如下表所示,±0.000标高相当于绝对高程76.90m。

先运行Revit软件,新建一个构造项目,选择“附加模块”,再点击“外部工具”,即可找到该插件。一层楼面标高线即为已存在的±0.000标高线,不要创建了,创建地下二层、地下一层、二层的标高线时,因层高不一,需要逐个创建,以地下二层创建为例,如图3所示,输入相对标高数值-7.92m,输入标高名称“地下二”,输入名称前缀“结构:”,输入名称后缀“层”,点击确定,生成标高线如图4所示。

地上3~23层为标准层,层高都为2.90m,可进行批量创建,如图5所示,在标高数值中输入第三层楼面相对标高7.90m,输入标高名称“三”,输入名称前缀“结构:”,输入名称后缀“层”,在批量创建栏中:输入楼层数量“21”,输入楼层高度“2.90”,点击确定,生成标高线如图6所示。

3 结论

本文通过对Revit中标高线自动生成的开发技术进行了研究,并用一个工程实例进行了验证,得到如下结论:

图3 创建地下二层标高线时输入信息

图4 地下二层标高线生成

某住宅楼楼层标高及层高表

图5 批量创建标高线输入信息

图6 批量生成标高线

①对BIM软件进行二次开发可以降低工作难度,提高工作效率,专业插件的大量开发与使用是促进BIM技术在我国推广应用的有效途径;

②进行插件开发,要注意分析研究专业中的工作需求和使用人员的行为习惯,功能设计上要贴合专业内容,操作设计上要适应用户思维习惯;

③要重视插件的交互界面设计,交互界面里内容要尽量简化,界面里的操作引导要非常明确。

猜你喜欢
后缀控件楼层
奶奶做的“楼层儿”
楼层
使用“填表单”微信小程序 统计信息很方便
基于.net的用户定义验证控件的应用分析
电梯的升与降
关于.net控件数组的探讨
变阶马尔科夫模型算法实现①
倍增法之后缀数组解决重复子串的问题
两种方法实现非常规文本替换
Spreadsheet控件在Delphi数据库系统中的编程与应用