我的Revit二次开发跟着黑夜的骑士学习了一遍,感觉很受启发。因此也订阅了他的博客。无意间翻到了骑士关于IFC的一个文章,我在去年5月到今年4月一直从事IFC的压缩 优化工作,对IFC还是比较了解的,因此我想在骑士基础上,给大家更完整的介绍一下IFC。

1、什么是IFC

industry foundation classes(IFC)数据模型旨在描述建筑,建筑行业的数据。它是不受平台限制的开放文件格式规范,不受单个供应商或供应商组控制。它是一种基于对象的文件格式,带有由buildingSMART(以前为国际互操作性联盟,IAI)开发的数据模型,以促进建筑,工程和建筑(AEC)行业的互操作性,并且是建筑信息中常用的协作格式基于建模(BIM)的项目。

简单说,IFC是一种数据规范。

2、IFC有哪些“官方”的格式?

IFC-SPF 以.ifc为后缀,算是最通用的一种格式方案。STEP物理格式(SPF或IFC-SPF)是IFC在实践中使用最广泛的格式,它是列出的格式中最紧凑的格式,可以作为文本阅读。 IFC-SPF基于ISO标准,用于EXPRESS数据模型ISO 10303-21的明文表示。

IFCXML,以.ifcxml为后缀,可扩展标记语言(XML)提供了增强的可读性,并从各种软件工具中受益。 ifcXML基于ISO标准,以XML格式ISO 10303-28表示STEP数据。

IFCZIP,以.ifczip为后缀,内存非常小,但是revit目前打不开这个格式。只能打开.ifc .ifcxml格式。

TTL和RDF,这两种属于“语义”格式(需要引入另一个概念叫IFCOWL,然后OWL又要引入新概念ontology 本体,这就多了先不解释了)

以上几种属于官方认证现存的,其中前两个revit能打开直接读取。

目前还有ifcjson、HDF、sqllite等几种格式正在开发中,尚未得到官方认证。

3、怎么学习IFC

首先用户要会自行导出IFC文件,无论是.ifc 还是 .ifcxml都可以,这个自己操作下吧不多说了,不算很难。

然后打开之后就会蒙,这都是啥玩意?一堆字母密密麻麻的。

好的这就用上了骑士之前的一些资料。他给的有:
1.IFC Wiki,这个网站描述了IFC的各个方面
http://www.ifcwiki.org/index.php?title=IFC_Wiki
2.IFC 4 结构描述
https://standards.buildingsmart.org/MVD/RELEASE/IFC4/ADD2_TC1/RV1_2/HTML/
3.IFC 开源软件集合
http://www.ifcwiki.org/index.php?title=Open_Source
4.IFC免费软件集合(可视化,编辑,解析)
http://www.ifcwiki.org/index.php?title=Freeware
5.IFC商业软件集合(可视化,编辑,解析)
https://technical.buildingsmart.org/community/software-implementations/

但是说实话我觉得最根本的一些东西没给出来。这个我来补充。

3-1 IFC官方文档(在线)
https://standards.buildingsmart.org/IFC/RELEASE/IFC4/FINAL/HTML/

1234属于介绍,大家可以随便看看,个人觉得不是很重要。
5678四大schema,这四个是最重要的,其中6是最重要的,建筑中的关键东西梁板柱之类的都在这个里面。其次是8,各种几何资源都在8当中。
在线文档的编辑格式类似于revit API,对每一个实体都有详细的介绍和实例、继承关系的解说。我自己是先IFC后API,所以我觉得看API很顺利,那么反过来也一样,二次开发搞得多了,直接去看IFC的doc也没问题。
API学习可以看这篇文章:Revit数据库学习-完整数据库调试-分类整理_shanmama2434的博客-CSDN博客_revit数据库学习 https://blog.csdn.net/shanmama2434/article/details/107973802

3-2 土建领域软件大集合:

AEC领域(可理解为土建类)开源软件总结_shanmama2434的博客-CSDN博客_speedx aec https://blog.csdn.net/shanmama2434/article/details/105324777

这个基本上大于等于骑士给出的资料。

3-3 IFC文档桌面版

这个软件叫IFC doc,直接在桌面上能阅读IFC的实体解说和EXPRESS关系图。

GitHub - buildingSMART/IfcDoc: IFC Documentation and Toolkit https://github.com/buildingSMART/IfcDoc

3-4 EXPRESS语言

2中提到了: IFC-SPF基于ISO标准,用于EXPRESS数据模型ISO 10303-21的明文表示。

那么EXPRESS语言是很关键的一个学习工具,必须要具备面向对象的思维模式才能理解IFC的实体关系之所在。3-3提到了“EXPRESS关系图”,这个东西我曾经在知乎上提问过,如下所示:

这个东西叫EXPRESS-G,就是用图来表示EXPRESS语言中各个实体的关系,那么IFC的实体之间关系也是这么表示的。在IFC在线的doc和ifcdoc软件中都有大量的这种图,所以先了解一下express语言是很有必要的。

4、我的一些工作。

在今年3-6月份我开发 完善了两款针对IFCXML格式的压缩器,旨在去掉IFCXML文件中的重复引用问题,减小文件的格式。经过测试可以达到20%-60%的轻量化,比如一个30M的ifcxml经过我的软件压缩后,能减少到20M左右。而且压缩后的文件,在REVIT中还能正常显示,没丢东西。

https://blog.csdn.net/shanmama2434/article/details/105079113

https://blog.csdn.net/shanmama2434/article/details/105590559

以上就是我目前对IFC学习资料的一个概述,具体的一些课题,开发,研究还可以进一步交流。致敬黑夜的骑士,也是对他文章的补充。

IFC学习相关资料加强版 致敬黑夜的骑士相关推荐

  1. 深度学习相关资料总结

    FROM:http://blog.csdn.net/chenyusiyuan?viewmode=contents 近这两年里deep learning技术在图像识别和跟踪等方面有很大的突破,是一大研究 ...

  2. go语言学习相关资料

    1.环境搭建,参考下面链接 https://blog.csdn.net/Koren_Wei/article/details/83048369 2.书籍 推荐下面两本入门书籍,评分高,讲的很透彻,建议两 ...

  3. scratch学习相关资料汇总

    1.温州张晓胜老师的scratch1.4的入门视频 个人觉得非常经典 2.Scratch Programming Language-The Basics 这是英文的视频,入门非常不错,还可以学英语哟 ...

  4. 网络表示学习相关资料

    收藏夹有一点爆炸,所以在这边开一个帖子直接扔这吧,下面的资料常看,温故知新. 网络表示学习(network representation learning,NRL),也被称为图嵌入方法(graph e ...

  5. TensorFlow及深度学习相关资料积累汇总【不定期更新】

    此为学习TensorFlow及深度学习方面时收集到的一些资料,不定期汇总到这里,与大家一起学习.交流.讨论. 1.文档.书籍 TF官方文档中文版 首本中文教程:TensorFlow实战(京东) TF入 ...

  6. 机器学习、深度学习相关资料下载

    1:数据挖掘:概念与技术(中文第三版) 链接: https://pan.baidu.com/s/1skTjb69 密码: 6ixx 2:矩阵分析.美国 Roger.A.Horn. 链接: https: ...

  7. 游戏程序员的学习相关资料

    想 起写这篇文章是在看侯杰先生的<深入浅出MFC>时,突然觉得自己在大学这几年关于游戏编程方面还算是有些心得,因此写出这篇小文,介绍我眼中的游戏程序 员的书单与源代码参考.一则是作为自己今 ...

  8. Python学习相关资料

    #Python开发者门户网站 http://www.pythontab8888.com/ webserver服务器: tornado #Python和tornado介绍 --Tornado源码分析之h ...

  9. jQuery Mobel 学习相关资料整理(一)

    在Jquery Mobile中,一个页面"就是一个data-role属性被设为"page"的容器(通常为div容器),里面包含了"header", & ...

最新文章

  1. 关于PHP的 PHP-FPM进程CPU 100%的一些原因分析和解决方案
  2. Android开发中使用七牛云存储进行图片上传下载
  3. “口碑营销”产品模型推测与分析
  4. 运行个Hello Word也能出Bug?Python、Java、C++等16种语言中枪,最严重可导致文件丢失...
  5. 帝国cms微信小程序多语言相亲交友制作记录难点使用的小程序组件分析
  6. vue component created没有触发_详解在Vue中使用TypeScript的一些思考(实践)
  7. SQL With As 用法Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
  8. 数据结构五——二叉树
  9. tf.contrib.data.Dataset 读取数据的原理--buffer
  10. Rust: 如何在Windows下Atom中配置Rust环境?
  11. 一文看懂:边缘计算究竟是什么?为何潜力无限?(上)
  12. 前端网页设计必逛的六个宝藏网站(非常值得收藏)
  13. 什么软件硬盘测试修复最好,什么软件检测、修复硬盘坏道最好?
  14. m-bom,p-bom,e-bom 这是什么意思
  15. 看图工具MassiGra使用指南
  16. DIN数据电缆行业现状调研及趋势分析报告
  17. python c++混合编程文档缩减版笔记 -2
  18. 《钻石王牌》:热血青春·棒球1号位
  19. python读取单元格前几个字的值_EXCEL表格中怎么取前一单元格中的前几个字符
  20. 下载图片到指定文件夹

热门文章

  1. 考研807程序设计C语言教程,中央财经大学
  2. SQLI DUMB SERIES-1-2
  3. SAP中文档管理用户需求与简要分析笔记
  4. 简单力场护盾效果ASE实现笔记
  5. ceph1--ceph基础/搭建ceph高可用集群
  6. 基于4G工业路由器的智慧厕所管理方案
  7. vue实现跑马灯抽奖
  8. 通过pdf的url在线浏览pdf
  9. 芮城县县名由来 芮伯庙 古魏城 芮伯万 永乐县
  10. CSS精华敏感肌护肤品,修复成分大揭秘|敏感肌屏障修复