欢迎来到天天文库
浏览记录
ID:22348562
大小:77.68 KB
页数:7页
时间:2018-10-28
《revit软件砖模族的设计与应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、Revit软件砖模族的设计与应用摘要:Revit是Autodesk公司为BIM而设计的一系列软件。在Revit中,项目是单个的设计信息数据库模型,族是构成项目的构件,是参数信息的载体。由于砖模围成的形状多变,且布置复杂,因此许多项目中都不布置砖模。本文通过Revit提供的二次开发接口,即API(ApplicationProgrammingInterface),以及自定义砖模族,为用户提供一种可行的砖模布置解决方案。关键字:BIM,Revit,族,二次开发引言BIM本身不是一个工具或一个软件,它是一个技术流程,一
2、个新的管理理念,一个致力于将工程全过程的信息统一管理、实现数据同步更新的三维数字化新技术[1]。但是BIM需要依靠适宜的、能充分体现其理念的多款软件去实现。AutodeskRevit是Autodesk公司专为BIM设计的一系列软件,在工业,民用建筑方面占据主流地位。族是Revit模型最基本的构成要素,在BIM模型的构件和参数化运用中起着举足轻重的作用[2]。Revit提供了丰富的族模板供用户去设计自定义族,但是由于族设计复杂,工程量大,是Revit建模中占用时间较长的环节,因此也成为制约我国BIM发展的一大瓶颈
3、。目前,一般BIM咨询公司都是建立相应的族库(收集和管理已创建出来的族)来应对这一难题。然而面对不同的项目时,同一类族可能要表现出不同的模态,例如,矩形独基需要一个围住其4个侧面的砖模,而六边形独基则需要围住6个面。这就要求砖模族能够自适应目标独基的变化,目前单一的砖模族是不可能做到这一点的(自适应族除外),因此族库显然不能满足我们需求。本文利用二次开发API和自定义砖模族来阐述一种另类“自适应族”的设计和应用。1开发工具Revit软件提供了强大的二次开发接口,即API(ApplicationProgrammi
4、ngInterface),为力口强Revit的功能在程序编制技术上提供了可能[3]。本文采用VisualStudio2015作为编程工具,编程语言为C#,Revit软件版本为2015。Revit的二次开发使用RevitSDK,其提供了大量的Revit接口。在开发过程中,由于二次开发读取的信息为Revit内部的信息,而不是Revit界面上的信息,此时,需要配合使用Revit提供的RevitLookup插件,它可以查看各种族实例的所有属性。2自定义砖模族的制作Revit中的族大致分为三大类:1.系统族2.可载入族3
5、.内建族。用户设计的自定义族就是可载入族[2]。与系统族不同,可载入族是在族编辑器中创建的一种拓展名为“.rfa”的“构件族”,它可以单独的文件形式保存在不同文件夹内并可导入(载入)到不同的项目中使用,比如独基、砖模、门、窗等。Revit本身也包含一个内容族库,可以用来访问软件提供的可载入族,但是由于国内外标准的差异,这些族表达形式和信息内容大多数达不到国内的项目出图要求,再加上国内没有相关标准各个产品厂家不能提供相应的族文件,所以在项目前期制作族便成了一项庞大的工作。砖模是用标准砖制成的模板,其形状就相当于螺
6、母。本文我们采用的砖模布置方式与传统的手动布置不同,故族设计就比较简单,不需要事先描绘出整个砖模的形状(是4边形还是6边形)。2.1族样板文件选择对于做任何族选择最合理的族样板显得尤为关键。这直接决定了该族的使用方式[4]。本工程砖模族我们选用“基于面的公制常规模型.rft”族样板文件进行制作。这样更符合实际工程需求。2.2绘制砖模模型由于我们需要砖模族比较简单,使用【拉伸】命令在模板中拉伸一个矩形砖模实体,同时参照中心点分别设置和绑定砖模上边距,下边剧,左边剧,右边距参数。3砖模族的应用如上所述,传统族都是由
7、用户载入到项目中,然后手动布置,由于手动布置可能导致模型不精准,用户一般都会通过Revit提供的模型修整工具去对布置模型进行修整,以达到期望目标。本文通过Revit提供的二次开发接口,去获取布置目标的几何数据,自动布置并调整砖模族,减少用户建模时间,提高出图效率3.1几何数据获取Revit中载入的族对应的类是Family,族类型对应的类是FamilySymbol,创建的族实例是Familylnstance。这里我们的布置目标为独基(族库中的载入族),其实例对应的Revit类就是Familylnstance。Re
8、vit中获取Familylnstance几何数据的类是GeometryElement,我们通过它拿到代表独基几何数据的Solid类,该类包含了图元的面信息(通过面信息我们可以得到其边信息),代码如下:GeometryElementgeo=Fmailylnstance.get—Geometry(Options);Solidsolid=geo.CurrentasSolid;FaceArra
此文档下载收益归作者所有