ifc是干什么的,看下图

ifc架构图

下文转自:http://www.bimcn.org/cjwt/201506053789.html

IFC目前是国际通用的BIM标准,现在很多BIM软件都采用其作为数据交换的标准,之前笔者也介绍过相关文章,今天笔者要给大家介绍的是BIM标准IFC的四个层级介绍
       1. 资源层
       资源层为IFC 架构之最低层级。资源层所定义的类别(classes),为一般性的低阶观念与对象,可以不依赖其他类别而独立存在。在IFC Release2.0 中所制定的资源层纲目包含测量资料(measure)、辅助资料(utility)、几何资料(geometry)、对象性质(property)、以及对象性质型别(property type)。在Release 2.0 中,则针对 Release 1.5 的内容进行部份的重组,并进行部分扩充。
       2. 核心层
       核心层为IFC 架构的第二层级。核心层所定义的类别可被界面层与领域/应用层的所有类别所参照(referenced)与特殊化(specialized)。核心层提供了IFC 对象模型的基本结构并且定义了大部分的抽象观念。核心层本身包含了两阶抽象内容:基本核心(The Kernel)和核心延伸(Core Extensions):
       (1)基本核心
       基本核心提供了IFC 对象模型所需的所有基本观念,并且定义了对象模型的结构与组成成分。基本核心所定义的抽象观念为高层级所必须用到的。基本核心并且包含了关于对象关系、型别定义、属性及规则的基本观念。
       (2)核心延伸
       核心延伸的内容包含基本核心的延伸观念或特殊观念,提供营建/设施管理相关产业使用所需。每一个核心延伸为基本核心所定义类别之特殊化。
       3. 界面层
       界面层定义了不同的领域/应用层模型之间所共享的观念或对象模块。接口层的纲目类别包含了共享建筑组件(shared building elements)以及共享建筑服务组件(shared building service elements)。
       4. 领域/应用层
       领域/应用层为IFC架构的最高层级,提供了营建和设施管理领域所需要的对象模型。目前IFC所定义的领域模型(Domain Models)包含建筑Architecture)、设施管理(Facility Management)、估价(Cost Estimating)、以及机电设备(HVAC)。
       IFC之架构遵循阶梯原则(ladder principle):每一个层级的类别可参照(reference)同一层级或较低层级的其他类别,但不能参照较高层级的类别。阶梯原则的内容如下:
       1. 资源类别(Resource Classes) 只能参照或使用其他资源类别。
       2. 核心类别(Core Classes)能参照其他核心类别,以及无限制地参照或使用(use)资源层的资源类别。核心类别不能参照或使用接口层或领域/应用层的类别。
       3. 核心层本身亦遵循阶梯原则。因此,基本核心类别(Kernel Classes)能被核心延伸的类别所参照或使用,反之则否。基本核心类别不能参照核心延伸类别。
       4. 接口层的类别能参照任何核心层或资源层的类别,但不能参照领域/应用层的类别。
       5. 领域/应用层的类别能够参照界面层、核心层以及资源层的任何类别。
       关于BIM标准IFC的四个层级介绍笔者就说这么多,由于目前国内的BIM标准还在编制当中,发布日期尚不明确,所以现在还是都以IFC等国际标准为主,但是就我国建筑业的特性,这些国际标准在国内应用时经常出现水土不服的现象,所以适合我国国情的BIM标准的推出,将会对推动BIM发展起到即为重要的作用。

注:

1、IFC官方文档 http://www.buildingsmart-tech.org/ifc/IFC2x3/TC1/html/
2、IFC解析库 IFC-SDK官网 https://joinup.ec.europa.eu/software/ifc-sdk/description
3、IFCplusplus 另一个IFC解析库与OSG集合 http://ifcplusplus.com/

IFC SDK
有着详细的示例代码
库相对来说比较轻量级(足够满足项目需要)

IfcPlusPlus
相对比较笨重与OGS结合的比较深(附加功能太多) 不过其中的从IFC解析数据用OSG渲染的例子可以参考

感谢:今晚打老虎 的整理

四川某学校的论文:

IFC架构及模型构成分析

1) IFC 标准资源层( IFC-Resource Layer) :作为整个体系 的基本层,IFC 任意层都可引用资源层中的实体。该层主要定义了工程项目的通用信息,这些信息独立于具体建筑,没有整体结构,是分散的基础信息。该层核心内容主要包括属 性资源( Property Resource) 、表现资源( Representation Resource) 、结构资源( Structure Resource) 。这些实体资源主要用于上层实体资源的定义,以显示上层实体的属性。
2) IFC 标准核心层( IFC-Core Layer) : 该层之中主要定 义了产品、过程、控制等相关信息,主要作用是将下层分散的 基础信息组织起来,形成 IFC 模型的基本结构,然后用以描 述现实世界中的实物以及抽象的流程。在整个体系之中起 到了承上启下的作用。该层提炼定义了适用于整个建筑行等: IFC 架构及模型构成分析业的抽象概念,比如 IFCProduct 实体可以描述建筑项目的建 筑场地、建筑空间、建筑构件等。
3) IFC 标准共享层( IFC-Interoperability Layer) : 共享层 主要是服务于领域层,使各个领域间的信息能够交互,同时 细化系统的组成元素,具体的建筑构件如板( IFCSlab) 、柱 ( IFCColumn) 、梁( IFCBeam) 均在这一层被定义。
4) IFC 标准领域层( IFC-Domain Layer) : 作为 IFC 体系 架构的顶层,该层主要定义了面向各个专业领域的实体类 型。这些实体都面向各个专业领域具有特定的概念。比如 暖通领域( HVAC Domain) 的锅炉、管道等。

有个:何关培谈BIM的个人BBS可以看一下

http://blog.fang.com/25866228/10602651/articledetail.htm

里面提到ifc能支持的对象有:

一个对象代表在工程项目中要使用的某个“东西”的一个实例,IFC的发展目标是包含工程项目中要使用的所有“东西”,对象的范围包括:

a)实际构件或部件:例如门、窗、管道、阀门、量、灯具等

b)空间:例如房间、楼层、建筑、场地、其他外部空间等

c)在设计、施工和运营维护中进行的流程

d)参与的人和组织

e)对象之间存在的关系

下面几张图(图片来自于buildingSMART)是IFC对象的一些例子,可以给大家一个直观感觉:

最后要说明一点,IFC是给软件使用的,不是给人直接使用的,因此对于广大BIM用户(建筑信息创建者和使用者)来说,只要知道下面几件事情就可以了:

a)所有使用的BIM及相关软件除了各个软件专用的数据模型格式(文件格式)以外,还有一个基于对象的、公开的数据模型格式IFC;

b)当业务流程需要在不同软件之间进行信息交换或者信息需要长期保存的时候,如果两者的专用数据模型不能直接交换,那么两者之间通过IFC格式进行交换是其中的一个选择,如果考虑到需要这种交换的软件数量有几种、十几种、几十种甚至更多,那么IFC可能就会成为唯一的选择。

c)了解自己及其他项目成员正在使用的软件是否支持IFC以及支持的版本和程度。IFC对支持的软件有一个认证程序,下面是经过IFC认证的软件的一个清单(资料来源:buildingSMART)。

[BIM]BIM中IFC介绍的更多相关文章

  1. BIM数据格式中IFC的标准及格式

    传统工程数据往往零散且片段的储存在各个不同的地方,数据格式也有各种不同的形式互相搭配,最常见的有图形(施工图.大样图.断面图.流程图等).文字(各种说明文件).数字(各种统计.数量或价格数据),这些数 ...

  2. [BIM]BIM中IDM介绍

    参考:http://blog.fang.com/25866228/10613454/articledetail.htm IDM的全称是Information Delivery Manual,信息交付手 ...

  3. ios中框架介绍

    ios中框架介绍 参考博客: 参考文章:框架介绍 框架介绍 框架就是一个目录,一个目录包含了共享库,访问共享库里面的代码的头文件,和其他的图片和声音的资源文件.一个共享库定义的方法和函数可以被应用程序 ...

  4. Burp Suite Intruder中爆破模式介绍

    Burp Suite Intruder中爆破模式介绍 - Introduction to Burst Mode in Burp Suite Intruder 1.sniper模式  使用单一的Payl ...

  5. Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM)

    Django中ORM介绍和字段及字段参数   Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简 ...

  6. [转]C# 互操作性入门系列(一):C#中互操作性介绍

    传送门 C#互操作系列文章: C# 互操作性入门系列(一):C#中互操作性介绍 C# 互操作性入门系列(二):使用平台调用调用Win32 函数 C# 互操作性入门系列(三):平台调用中的数据封送处理 ...

  7. 6月20日 Django中ORM介绍和字段、字段参数、相关操作

    一.Django中ORM介绍和字段及字段参数 二.Django ORM 常用字段和参数 三.Django ORM执行原生SQL.在Python脚本中调用Django环境.Django终端打印SQL语句 ...

  8. [BIM]BIM中IFD介绍

    第三大支柱IFD - 确定交换的信息和你要的信息是同一个东西 IFD的全称是International Framework for Dictionaries,中文可以叫“国际字典框架”,和前两者IFC ...

  9. bim模型中所有IfcWallStandardCase构件

    ifc中的IfcWallStandardCase构件 //执行吊装 void startHoisting() { osg::Vec3f vec3f1 = index_node1->getBoun ...

随机推荐

  1. iOS开发——XML/JSON数据解析

    NSJSONSerialization 接下来就正式开始.苹果官方给出的解析方式是性能最优越的,虽然用起来稍显复杂. 首先我们在上面已经有了我希望得到的信息的网站的API给我们的URL,在OC中,我要 ...

  2. iOS UITableView点击按钮滚到顶部

    #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...

  3. SQL Server 2012大数据导入Oracle的解决方案

    在实际工作中需要把SQL Server中的表导入Oracle.之前尝试过直接用SQL Server的DTS进行都没问题.但这次因为数据量在千万级所以报虚拟内存不足.最后通过SQL Server导出tx ...

  4. Java基础之一组有用的类——为标记定义自己的模式(ScanString)

    控制台程序. Scanner类提供了一种方式,用来指定如何识别标记.这需要使用next()方法的两个重载版本.其中的一个版本接受Pattern类型的参数.另一个版本接受String类型的参数,用来指定 ...

  5. PAT 解题报告 1047. Student List for Course (25)

    1047. Student List for Course (25) Zhejiang University has 40000 students and provides 2500 courses. ...

  6. JAX-WS(一)之使用wsgen从Java创建简单的WebService

    概念 JAX-WS2.0的全称Java API for XML-Based Web Service 2.0.JAX-WS2.0是对JAX-RPC1.0规范的扩展,是JAX-RPC1.1的后续版本,JA ...

  7. SignalR实时聊天功能

    使用vs2013新建一个空的asp.net 工程 添加SignalR集线器类MyHub.cs using System; using System.Collections.Generic; using ...

  8. Eclipse中进行Gradle+Jetty部署的web项目的断点调试

    1.自行配置好build.gradle文件和按照gradle的web项目目录结构规范建立java.resourece和webapp文件夹 可在build.gradle文件中自由设定“http端口” 1 ...

  9. SQL 分组查询 group by

    select * from emp --deptno 为部门号 --输出每个部门的编号 和 该部门的平均工资 --group by deptno; 通过deptno分组 select deptno, ...

  10. each实现原理

    <script> function isEach(arr, callback) { for (var i in arr) { callback(i, arr[i]); } }; funct ...