IFC学习相关资料加强版 致敬黑夜的骑士
我的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学习相关资料加强版 致敬黑夜的骑士相关推荐
- 深度学习相关资料总结
FROM:http://blog.csdn.net/chenyusiyuan?viewmode=contents 近这两年里deep learning技术在图像识别和跟踪等方面有很大的突破,是一大研究 ...
- go语言学习相关资料
1.环境搭建,参考下面链接 https://blog.csdn.net/Koren_Wei/article/details/83048369 2.书籍 推荐下面两本入门书籍,评分高,讲的很透彻,建议两 ...
- scratch学习相关资料汇总
1.温州张晓胜老师的scratch1.4的入门视频 个人觉得非常经典 2.Scratch Programming Language-The Basics 这是英文的视频,入门非常不错,还可以学英语哟 ...
- 网络表示学习相关资料
收藏夹有一点爆炸,所以在这边开一个帖子直接扔这吧,下面的资料常看,温故知新. 网络表示学习(network representation learning,NRL),也被称为图嵌入方法(graph e ...
- TensorFlow及深度学习相关资料积累汇总【不定期更新】
此为学习TensorFlow及深度学习方面时收集到的一些资料,不定期汇总到这里,与大家一起学习.交流.讨论. 1.文档.书籍 TF官方文档中文版 首本中文教程:TensorFlow实战(京东) TF入 ...
- 机器学习、深度学习相关资料下载
1:数据挖掘:概念与技术(中文第三版) 链接: https://pan.baidu.com/s/1skTjb69 密码: 6ixx 2:矩阵分析.美国 Roger.A.Horn. 链接: https: ...
- 游戏程序员的学习相关资料
想 起写这篇文章是在看侯杰先生的<深入浅出MFC>时,突然觉得自己在大学这几年关于游戏编程方面还算是有些心得,因此写出这篇小文,介绍我眼中的游戏程序 员的书单与源代码参考.一则是作为自己今 ...
- Python学习相关资料
#Python开发者门户网站 http://www.pythontab8888.com/ webserver服务器: tornado #Python和tornado介绍 --Tornado源码分析之h ...
- jQuery Mobel 学习相关资料整理(一)
在Jquery Mobile中,一个页面"就是一个data-role属性被设为"page"的容器(通常为div容器),里面包含了"header", & ...
最新文章
- 关于PHP的 PHP-FPM进程CPU 100%的一些原因分析和解决方案
- Android开发中使用七牛云存储进行图片上传下载
- “口碑营销”产品模型推测与分析
- 运行个Hello Word也能出Bug?Python、Java、C++等16种语言中枪,最严重可导致文件丢失...
- 帝国cms微信小程序多语言相亲交友制作记录难点使用的小程序组件分析
- vue component created没有触发_详解在Vue中使用TypeScript的一些思考(实践)
- SQL With As 用法Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
- 数据结构五——二叉树
- tf.contrib.data.Dataset 读取数据的原理--buffer
- Rust: 如何在Windows下Atom中配置Rust环境?
- 一文看懂:边缘计算究竟是什么?为何潜力无限?(上)
- 前端网页设计必逛的六个宝藏网站(非常值得收藏)
- 什么软件硬盘测试修复最好,什么软件检测、修复硬盘坏道最好?
- m-bom,p-bom,e-bom 这是什么意思
- 看图工具MassiGra使用指南
- DIN数据电缆行业现状调研及趋势分析报告
- python c++混合编程文档缩减版笔记 -2
- 《钻石王牌》:热血青春·棒球1号位
- python读取单元格前几个字的值_EXCEL表格中怎么取前一单元格中的前几个字符
- 下载图片到指定文件夹