Revit可以利用调用其自身的关系数据库来实现三维模型的高效创建,并且,模型中存储了大量的参数信息,利用软件的功能,还能够生成不同视图的二维图纸,满足项目的需要。与此同时,软件开发商也设计了API接口,Revit中,制作的Revit的功能将不仅仅限于由专业的开发团队分配给它的功能操作,同样,设计师可以根据自身的努力实现个性化的操作需求。

Revit二次开发中涉及的基础概念

(1)外部命令

开发者可以添加自己的应用通过IExternalCommand。外部接口作为Revit软件与开发者开发插件的的桥梁,所有的代码均需要通过外部命令实现。Revit通过.addin文件来识别和加载外部插件。外部命令可以理解为一个包含待执行程序代码的一个容器,通过该容器可将开发人员自主设计的程序在Revit中进行识别并执行。一旦插件被选中,外部命令对象将被创建出来并实例化,通过派生类创建对象时必须要调用基类的构造函数,而构造函数Execute()会在实例化的过程自动执行。执行完毕后,外部命令对象被销毁,实例缓存将在内存中清空。

包括提参模块在内的整体程序都应该应以Revit外部命令的形式打包,等待外部应用的调用。

(2)元素

元素在Revit里面是尤为重要的一种概念,用户能够看到的大多数对象都是元素,比如墙,族,族类型,族实例,标高,轴网,视图等。而Revit代码中的几乎所有的类也都继承自元素。而在提参程序的设计中,所有数据的获取都要基于元素进行,所有构件,构件上的结构都是元素的实例,模型中的数据都保存在各个元素之中,通过Revit API中元素的方法和属性,可以实现构件数据的读取。

(3)元素收集器和过滤器

Revit API提供了三种不同元素过滤器用于遍历分类元素以及元素的ID。这些过滤器为各种不同的应用程序提供了更加灵活更实用的筛选方法。而用来迭代以及过滤额元素的主要类是收集器,他有三种构造方式,详见表4.1,可以根据情况使用任意一种。

FileteredElementCollector()收集器提供了一系列的方法,允许用户设置查询和过滤器所需要的元素集:

?通用方法Passes(),在收集器中应用单一ElementFilter过滤器。该方法可以在结果中继续使用附加额外的过滤条件。

?快捷方法,不需要传初始化过滤器对象的易于使用的方法,相当于常用过滤器filter的快捷键。比如OfClass(),OfCategoryId(),OwnedByView()。

?并集、交集等运算方法,包括UnionWith()和lntersectWith()两种方法。

(4)点线模型

尽管Revit是一款三维建模软件,然而其模型数据在存储中仍会将模型简化成由多个点构成的空间模型,而在本文中的所涉及的模型包括墙体、孔、槽均有空间中的点坐标集构建而成,于是在提取参数的过程中,我们会将可视模型想象成由点线构成的空间结构,如墙体构件在软件中的简化模型为起点终点构成的两点线段,而孔和槽在软件均为垂直于XY轴所在平面,所以其简化模型为一个空间中的一个点,配合元素的参数中底高顶高数据,可获得一个空间线段模型。

薛雷 沈阳工业大学

仅供学习交流 版权归原作者所有

0

评论0

请先
正式版 DG/TJ08-15-2020 绿地设计标准(附条文说明).pdf
正式版 DG/TJ08-15-2020 绿地设计标准(附条文说明).pdf
10分钟前 有人购买 去瞅瞅看

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录网站