资源描述
第 7 卷 第 4 期
Vol .7 No.4
2015 年 8 月
Aug.2015
基于 R evit 二次开发的电气设备族平台的搭建
钱
海
马小军
来
侃
(南京工业大学
电气工程与控制科学学院
,南京
210000)
【摘
要】BIM 技术中面向电气设计的应用研究相对较少
,针对这种情况
,以国内外广泛使用的
R evit软件为基础 ,
构建基于 BIM 的电气设备族平台 。对电气设备参数化信息模型进行了研究
,利用 R evitAPI 外部功能扩展方式 ,实
现 R evit对象的访问 、过滤、编辑与创建 ,利用 Family
API 实现电气设备族类型获取
、族创建和族编辑 ,结合 SQL
Server,对 R evit模型元素实现基于关系数据库的数据存储
,该平台实现电气设备族统计 、电气设备拖动和族属性导
入
。
通过实际案例
,
。
验证平台的可行性与可靠性
【关键词】BIM ;IFC 标准;参数化 ;电气设备族 ;API
【中图分类号 】TP3
【文献标识码 】A
【文章编号 】1674 -7461(2015)04 -0060 -05
【DOI 】10.16670/j
.cnki .cn11 -5823 /tu .2015.04.09
引言
BIM 技术在建筑设计 、结构计算 、建筑能耗分
、
、
析 设备管理
虚拟施工等专业已取得一定的研究
成果[1] ,然而目前针对
BIM 技术中电气设计的应用
研究相对较少 。在 BIM 应用过程中 ,所产生的 BIM
模型有很多类型 。目前针对特定的
BIM 软件平台
已经出现了一些第三方
BIM 模型构件库管理软件
工具[2] ,但是 ① R evit中只有少量电气设备族
,难以
满足电气工程设计的需求
;② 电气设计人员在建模
,
,
时 需要从本地族库载入想要的电气设备族
工作
效率低下 ;③ R evit明细表功能能实现具体实例及其
属性的统计
,
。
但需要花费不少时间来设置参数
本文基于开放 IFC 标准 ,结合 BIM 协同设计过
程参考模型 ,首先基于
R evit平台研究电气设备参
,
,
数化模型
分析不同电气设备族的共性与特性
并
研究了 BIM 电气设备族的创建方法与使用现状
。
接着分析 R evitAPI 两种外部功能扩展方式 ,研究了R evit对象的访问 、过滤 、编辑与创建等方法 。然后
研究 Family API 关于族类型获取 、族创建和族编辑的方法 。最后构建基于 R evit二次开发的电气设备族平台 ,实现 ① 项目已加载及本地电气设备族的快速统计查询 ,且电气设备族可直接拖动到项目中使用,大大提高建模效率 ;② 对于协同设计平台下存
储在云端的项目模型 ,通过本文开发的族属性导入
模块可将所有实例及其属性导入到本地 SQL Sever
数据库
,
并统计出系统族实例和构件族实例的个
数。本文研究内容的技术路线图如图
1 所示。
图 1 技术路线图
1 电气设备参数化模型
建立 BIM 电气设备族库 ,需要对项目全生命周
期电气设计信息进行整理
,
、
按照主要参数
关键属
性,结合实际电气业务需要对电气设备
BIM 模型的
资源进行分类 ,完成对 BIM 模型资源的通用化 、系列化、模块化整合 ,保证在 BIM 模型族库中存储的模型及 构 件在 实际 设计 过程中 具 有良 好 的 通 用
[ 3]
性 ,同时具备良好的可维护和可扩展性 ,适应建筑电气设计领域不断发展的需要 。
【作者简介 】 钱海(1991 -),男,硕士生 。主要研究方向 :BIM 技术应用 。
基于 R evit二次开发的电气设备族平台的搭建
61
电气设备参数化设计模型构件整理的内容主
2
电气设备族创建与分析
,
;
要有两方面
一是电气设备族的系列化整理
二是
电气设备族的模块化整理
。
以格栅吊灯为例
,在 R evit基础上说明照明设
(1)电气设备族的系列化整理
备族的创建思路 、其他参数设置及创建过程
。格栅
系列化整理
,
吊灯族为嵌套族
。
通过对同一类电气设备族规律性
,
,
2.1
照明设备族的创建思路
的分析研究
进行合理的基础建模
可根据模型主
要参数的驱动
,
(1)创建几何形体
:用公制照明设备族样板创
自动生成该类构件各类型尺寸的模
,
、
、
、
型 并将其类型名称
编码 主要尺寸参数
关键属
(
、
),
。
用公
建灯罩 含吊杆
吊杆法兰
并作为主体族
性等从模型中剥离形成系列化构件模型
。
制常规模型族样板创建内置格栅
,
并作为嵌套族装
电气设备族的基本参数是其基本性能或基本
在灯罩中 ,并且运用 “阵列 ”功能 ,将内置格栅沿长
技术特性的标志
,
、
、
,
“” “
”
是选择或确定族功能范围
规格
[4] 。电气设备族基本参数系列化
度方向阵列
同时将吊灯
长度 和 格栅片数
两个
尺寸的基本依据
参数值通过公式相关联
。
是系列化的首要环节
,
。
(2 )吊灯类型设置
:根据要求 ,创建三种不同的
是进行系列化设计的基础
对于一类电气设备族
,
,
:
、
选择一个或几个基本参数
吊灯透光类型
上部透光
下部透光和上下部均透
并确定其上下限 。
光。根据遮罩的不同材质进行设置
。
建立电气设备族的参数系列表
。先基于模型构
(3 )添加照明设备参数
:照明设备参数的设置
件的基本参数 ,形成该类构件的参数系列
,之后增加
用来满足设备工程师对灯具参数的要求
,重点配置
其他所需的属性
(
、
、
)。
[6]
。
如类型名称 编码 关键属性等
电气连接件和选择相对应的光域网文件
完成电气设备族的参数化建模过程
,
2.2
照明设备族的创建步骤
基于基本
,
R evit中格栅吊灯族创建过程主要有
:第 1
步,
参数 并充分考虑到尺寸系列变化可能对模型产生
,
,
的影响 通过公式的方式描述其他几何参数
逐步
创建格栅嵌套族
;第 2
步,创建格栅吊灯族 ;第 3
步,
完成模型构件的建模
[5] 。 之后对参数系列表中的
添加照明设备参数 ;第 4
步,保存并应用于项目文
各项逐一生成模型
,
。
检查模型造型是否正确
件。具体创建过程如图
2
所示 。
1 所示 。
系列化整理流程如图
图 2 电气设备模型构件的系列化整理
(2)电气设备族的模块化整理
模块化整理 ,按照标准化原则 ,基于实际电气
,
、
,
业务需要 对已有的电气设备模型进行拆分
整理
将电气设备模型的部分构件组合在一起
,
最终形成
一系列通用性较强的电气设备模型单元
。
图 3 格栅吊灯创建过程
2.3
电气设备族分析
初步整理出电气设计中基本需要的族有
:
消防
-;
-
;
;
端子箱
明装 配电箱
暗装 三管格栅荧光灯
疏
散指示灯
;
;
;
;
三联开关
二三孔插座
感烟探测器
感
温探测器
;
;
;
火警电话插孔
消防广播
消防报警电
;
;
;
;
话 消防启泵按钮
半球形摄像机
电视插孔
电话
和网络插孔等 [4] 。
3
R evit API
方法
3.1
R evit API
功能扩展方式
R evitAPI 通过两种方式扩展
R evit功能,Exter-
R evitAPI
62
nal Command和 External Application 。 External Com-mand 实现外部命令的功能 ,使用外部工具加载 ,Ex-ternal Application 实现外部应用的功能 ,都需要引用R evitAPI.dll 和 R evitAPIUI dll.文件 。R evitAPI.dll
包含了在数据库层控制 R evit的应用 、文档 、对象和
参数的 方法,而 R evitAPIUI .dll 包含 了在 操作 和
R evit用户界面层的所有自定义 API 接口 。
External Command 和 External Application 的实
现方法是不同的 。External Command通过重载 Exe-cute()方法实现 ,而 External Application 是通过 On-Startup()和 OnShutdown()方法的配合使用 ,才能实现功能扩展 [7] 。
本文使用 IExternal Application 完成电气设备族统计人机界面面板的功能 。族属性导入模块不添加面板,直 接 用 外 部工 具 加 载 实 现。使 用 IExternal
Command完成电气设备族统计及族属性导入的功能 。
使用 External Command 和 External Application
两种方式进行编译与测试时 ,R evit exe. 启动后 ,.
addin 文件中的命令会被加载 。本文构建的电气设
备族平台的 .addin 文件如下 :
<?xml version = ”1.0”encoding = ”utf -8”><R evitAddIns>
<AddIn Type = ”Application ”>
<Name >FamliyViews Application </Name >
<Assembly>E:\visual studio 2010\Projects FamilyViews FamilyViews
bin Debug FamilyViews . dll </Assembly >
<AddInId >054e0e25 -adc5 -4657 -b0e0 - d831ac1c40c0 </AddInId >
<FullClassName >FamilyViews .CS.Externa-
lApp </FullClassName >
<VendorId >ADSK </VendorId >
<VendorDescription >Autodesk,www.autodeskcom.</VendorDescription>
</AddIn >
</ R evitAddIns>
3.2 R evit API 对象访问
中有两种方式根据标识来识别区分
和访问不同对象 。第一种方式 ,只使用类名来判
断,能 容纳 其 它 对象 或 特 定 用 途 的 类,如:Wall 、Floor、Cont .Footing、Ceiling 等系统族的实例 。第二
种方式 ,如果通过类名无法分别出来 ,需联合对象
的类别 (Category)来判断 。但是 ,门、窗、柱等对象没有专用的类来表示 ,都是 FamilyInstance 的实例 。
本文采用 Category 来判断其类别 ,用枚举型的
BuiltInCategory 来创建 ElementCategoryFilter对象 。
3.3 R evit API 对象过滤
R evit平台中所有的对象遍历都必须要使用 Fil-teredElementCollector类,它提供了对文档中的对象过
滤的所有功能 ,在过滤操作时至少需要添加一个过滤条件,也可被赋予多个过滤条件 。添加过滤条件后 ,
满足条件的对象集合立即就可以从这个类访问 。R e-vit 可以通过三种用法实现 FilteredElementCollector过
滤,过滤的方法 、条件、范围、特点及实例如表 1 所示 。
表 1 FilteredElementCollector
的三种方法
方法一
方法二
方法三
名称
构造函数初步
添加快捷
添加任意
过滤
过滤条件
过滤条件
、
快捷方法可以
对文档 指定视图中
逻辑组合过滤条
特点
、
并联连续添加
可见对象 指定对象
件任何过滤条件
集合等进行过滤
多个条件
FilteredElement
FilteredElementCol-
OfClass(Type)Of
Collector .
示例
lector(Document)
Category(BuiltIn
Category)
WherePasses
ElementFilter
4 Family API 方法
4.1 加载族 、创建族实例
LoadFamily()加载整个族和族所有的类型或者
标签到项目中 。文档类别提供类似的方法 LoadFam-ilySymbol(),加载特定的族标签 。 LoadFamilySymbol
()只从族文件中加载特定的族标签到项目中 。
4.2 族、类别、族文档创建
R evitAPI 中 Family Creation 函数可以创建和编
辑族和族类型 ,但是 R evitAPI 不能编辑系统族 。如
果外部系统有已存可用的数据要传入到 R evit族库
中,可以使用此函数有效地实现 。
(1)获取族类别
FamilyBase FamilyCategory.属性表示族的类别 ,如
Columns、Furniture、Structural Framing、Windows。通过
如下代码确定一个开放的 R evit族文件的族类别 :
string categoryName = familyDoc OwnerFamily. .
FamilyCategory Name.;
(2)获取族参数
基于 R evit二次开发的电气设备族平台的搭建 63
可以通过族文档的 OwnerFamily 属性得到族参 设备族 ,如图 4 右边部分 。
数,代码如下 :
Family family = familyDoc OwnerFamily.;
Parameter param =
family get._Parameter(BuiltInParameter FAMILY.
_WOR K_PLANE_BASED );
(3)创建族文档
由 IsFamilyDocument()属性确定文档是否是族
文档。如果文档是族文档 ,修改 R evit族文档 、获取族
类型和参数可通过族文档类别获取 。在一个项目文
档中编辑一个已有族 ,可以使用文档类别的 EditFam-ily ()函数,编辑完成之后 ,使用 LoadFamily()重新加载族到所有者文档 。本文使用 Application NewFami.-lyDocument()创建一个新族文档 ,代码如下 :
string templateFileName = @ " C: Documents and Settings All Users Application Data Autodesk
R ST2014\Imperial Templates\Generic Model.rft" ;
Document familyDocument = application New.-
FamilyDocument(templateFileName);
if (null = = familyDocument)
{
throw new Exception(" Cannot open family docu-
ment" );
}
(4)嵌套族标签
使用
Family Symbol
从族文档中过滤族标签
,
获
取加载到族中的所有族标签
。
5 基于 BIM 的电气设备族平台构建
使用 IExternal Application 完成添加电气项目视
图、电气设备族统计两个模块人机界面面板的功能
。
族属性导入模块不添加面板
,
直接用外部工具加载
实现。
图 4 电气设备族统计
项目已加载的电气设备族拖动模块可以从已统计出的项目电气设备族列表视图中 ,拖动相关族直接放置于当前项目中 ,方便电气设计中设备族的加载与使用 ,提高工作效率 。
5.2 族属性导入
本模块用外部命令方式实现 。将.addin 文件放
置于 C:\ProgramData\Autodesk \ R evit\Addins \2014 。
首先 ,归纳 R evit2014 系统族有 :门、窗、柱
、屋
顶、楼板 、天花板 、Cont .Footing、风管 、风管附件
、管
、
。
,
,
,
件 管路附件
接着 过滤出族实例
提取属性
插
入数据表 。然后 ,找出模型中的系统族和构件族的
,
实例 分别提取系统族实例的属性和构件族实例的
属性
。
,
。
最后 分别插入到系统族表和构件族表
打开 SQL Server 2008 数据库链接 ,保证外部数
据可以插入到数据库中已建立的表
SystemFamily和
[8]
。执行 外部 命令“FamilyProper-
ComponentFamily
ties”,族属性导入入口位置如图
5(a)所示 。
插件完成当前项目的族属性数据插入后
,
自动
统计出 已 插入 到数 据库 中的系 统 族实 例 个 数 为
141,构件族实例的个数为 813,如图 5(b )所示 。
5.1 电气设备族统计与拖动
本模块使用 IExternal Command 的继承类 Dra-
gAndDropCommand实现,使用 R evitAPI 过滤器获取项目已加载的电气设备族和本地族库中电气设备
族的类别 ,并做相关显示处理 。笔者选用电气项目
文件“某建筑地下二层变电室 .rvt”作为案例 ,对平
台的可行性和可靠性进行验证 。
项目已加载的电气设备族统计模块显示项目中所有用到的电气设备族 ,如图 4 左边部分 。本地电气设备族统计模块显示本地族库中所有的电气
图 5 族属性导入入口与结果
查询数据库系统族表和构件族表 。分别对表
SystemFamily 和表 Component-Family 进行查询 。使用查询语句如下 :
64
图 6 构件族表查询结果
(1)select instanceName,categoryName,catego-
ryName from SystemFamily;
(2)select instanceName,categoryName,catego-ryName from ComponentFamily。
查询结果如图 6 所示 ,表 SystemFamily中有 141
行属性数据 ,表 ComponentFamily中有 813 行属性数据。通过对比之前的族实例插入个数统计结果可知,族属性导入模块在对当前项目的族属性数据进行导入是可靠的 。
6 结语
实验结果表明 ,基于 IFC 标准的电气设备族平
台进行项目相关项统计
、
电气设备族的统计与拖动
是可行的 ,可以提高工作效率
。经过与 SQL Sever
数据库查询结果的对比
,
表明族属性数据导入功能
是可靠的 。由于 R evitAPI 数量和功能随着版本的
更新越来越丰富和完善
,
短时间内无法将其功能充
分发挥 ,因 此 可 以进 一 步 加强 R evitAPI 的 应 用研究。
参考文献
[ 1] 李宁 .基于 BIM 与 IFC 的混凝土坝施工仿真信息模型构建方法研究 [D].天津:天津大学 ,2012 .
[ 2] TanyerAli Murat,AouadGhassan MovingBeyondthe. Fourth Dimensionwith an IFC-basedSingleProjectDatabase[J].Au-tomationin Construction,2005,14(1):15-32.
[ 3] 朱立红 ,杨鹤标 .海量结构化数据查询系统的研究与实现[J].计算机应用与软件 ,2014,31(2):29-32 .
[ 4] Lipman,R obertR.Details of the mapping between the
CIS/2 and IFC
product datamodels for
structural steel
[J]. Electronic
Journal of Information Technology in
Construction 2009.(14):1-13.
[5
] 满庆鹏 ,孙成双 .基于 IFC 标准的建筑施工信息模型
[J].土木工程学报 ,2011,44(S1):239-243 .
[6
] 来侃,马小军 ,朱亮.电气设备族在 BIM 照明设计中的
应用[J].电气应用 ,2015,34(2):30-34 .
[7] 林良帆 .BIM 数据存储与集成管理研究
[D].上海:上
海交通大学 ,2013 .
[ 8] 陆宁,马智亮 .利用面向对象数据库与关系数据库管
理 IFC 数据的比较 [J].清华大学学报 ,2012,52 (6):
836-842.
Building Platform of Electrical Equipment Family based on BIM
Qian Hai,Ma Xiaojun ,Lai Kan
(College of Electrical Engineering and Control Science,Nanjing Tech University,Nanjing 210000,China)
Abstract :Electrical design oriented application researchin BIM technology is relatively little ,for this kind of situation,on the basis of R evitwhich is widely used at home and abroad,we built electrical equipment based on
BIM platform .After studying parametric information model of electrical equipment,we used expansion method of
R evitexternal API function and achieved the accessof R evitobjects,filtered ,edited and created with R evitob-jects .We achieved the accessof electrical equipment types,edited and created with Family API.Combined with SQL server,we realized R evitmodel elements data storagebased on relational database .This platform can realise
electrical equipment group,electrical equipment drag and importing family attributes Through. the actual case,the
feasibility and reliability of the platform are verified .
Key Words :BIM ;IFC standard;Parametric;Electrical Equipment Family;API
展开阅读全文