1. 编程语言
常用的编程语言,其中以C#为主。C#语言是Windows平台下的旗舰级开发语言,BIM应用程序主要的存在形态是桌面应用,因而C#被多数BIM开发公司作为首选开发语言。除了可以进行高效的桌面程序开发,C#还被多数应用软件和开发平台作为首选开发语言进行支持,如Autodesk公司的Autocad,Revit二次开发接口,open design Alliance的teigha.NET,techsoft3d的HOOPS引擎,以及Unity平台等都为开发者提供了C#接口。
2. 计算机图形学知识。
计算机图形学在BIM软件中的应用主要是两方面,其一是三维模型的渲染,BIM软件通常会为用户展现三维实体模型,开发者需要对图形学基础有所掌握,才能对模型进行逼真而高效的渲染。目前常见的有HOOPS、虚幻、Unity,以及企业自主研发的图形引擎,有些企业也利用Three.js或Babylon等WebGL引擎进行轻量化的BIM应用开发。另一方面的应用在于建模和计算功能的实现,这部分主要运用了计算几何的知识,对算法能力要求较高。常见的建模引擎有Dassault Spatial和开源的Open Cascade。
3. 二次开发技术。
由于BIM行业中有多家存在竞争关系的开发商,通常开发商不会公开自己软件的核心数据格式,因此如何利用商业软件所提供的干净开发接口进行数据转换显得尤为重要。目前比较成熟的二次开发接口以Autodesk公司的产品为主,包括Revit API、Autocad.net、Real dwg等,对于Autodesk的文件格式还存在像Teigha open dwg这类第三方的文件读写SDK。相比而言,Bentley和ArchiCAD之类的产品二次开发接口功能较弱,社区活跃程度也远不如Autodesk developer network。
4. 常用的BIM文件格式。
目前有两个成熟的BIM文件格式,一个是IFC(Industry Foundation Classes),另外一个是GBXML(Green Building XML)。这两种文件格式都是以XML的方式存储建模信息模型数据,能够保存大量信息,可作为BIM软件间的数据交换格式或直接用作软件核心数据格式。同时,这两种文件格式的社区还提供了文件读写的SDK。
其余常见的媒体文件格式。BIM软件一个重要的产出方式是对模型进行仿真或漫游,因此BIM模型通常需要导出成一些三维特效软件(如3D MAX/MAYA)或游戏引擎(如Unity)可读取的格式。常见的媒体文件为Autodesk FBX格式以及OBJ格式。
5. VR/AR开发技巧。
随着VR/AR技术的进步,越来越多虚拟现实、增强现实的设备走进设计院、施工现场和运维中心。通过虚拟现实进行模型设计是未来设计领域的新趋势。目前常用的VR/AR手段以Unity开发为主,少数开发团队会使用设备商提供的Native SDK进行开发。
6. 数据库与计算机网络。
作为信息化管理系统,BIM软件不能离开数据库与网络通讯。随着计算机网络技术的提高以及云计算的成熟,分布式客户端+集中化数据中心的模式越来越受到用户青睐。不同的企业会使用不同的数据库以及网络架构方案,其中有可能涉及的技术包括关系数据库、非关系数据库、RESTful API、Web service等等。
除了上述的技术外,物联网、大数据、机器学习、人工智能等技术也或多或少被用于BIM软件开发中。作为BIM开发者的你还接触过哪些技术呢?