新闻资讯

从BIM迈向数字孪生;3D建模的核心技术

2020/2/12 17:13:09 人评论

(一)从BIM迈向数字孪生

在讨论软件技术之前,我们先讨论一个问题:CATIA算不算一个BIM软件?如果在十年前提出这个问题,答案应该是“否”,因为当时的CATIA V5版本并不含有建筑相关的信息标准。而在今天,最新的CATIA软件是基于达索系统的3D体验平台之上,支持建筑行业的IFC国际标准,完整的包含建筑信息,这应当称得上一个BIM软件了。然而,如果把今天的CATIA当做一个BIM软件,实在是有大材小用之嫌,因为CATIA(严格来说,应当是基于3D体验平台的整体解决方案,包括CATIA、DELMIA、SIMULIA、ENOVIA、3DEXCITE等多个品牌,但我们姑且使用CATIA作为代表)的理念不是BIM,而是“数字孪生(Digital Twin)”。那么,这两个概念有何区别呢?了解这个问题,有助于我们思考软件的技术本质,所以本系列文章就从这里正式开始。

BIM(Building Information Modeling,建筑信息模型)这一名词提出于2002年。在此之前,3D数字化技术在制造业已经发展了约20年,并被制造业采纳成为普遍的工作方式,但它对建筑行业还是新生事物。出于向先进制造业学习的目的,一些软件工程师开发了专门用于建筑业的3D设计软件(如ArchiCAD、Revit),并由此产生了BIM这一概念,并逐渐在建筑行业广为人知。然而,经过近二十年的发展,建筑业对3D数字化技术的应用仍然远称不上成功,不仅未能成为普遍的工作方式,离制造业的差距甚至越来越大。造成这种情况的原因是多方面的,但我们必须认识到BIM这一理念(以及传统BIM软件)存在相当的局限性,无法满足普遍性的行业需求。

正如其名称所表示的,BIM是由建筑师提出的,代表了建筑师眼中的数字化建筑。然而,由于现代建筑业日益复杂和专业化,建筑师眼中的建筑其实是不详尽的。举例而言,建筑师会要求在大楼中放置一套电梯系统,但他并不会设计电梯系统的内部结构——这是电梯工程师的职责。类似的,建筑师会提出外立面幕墙的造型和外观效果要求,但他并不会设计幕墙的制造方式和安装细节,这是幕墙工程师的职责。更不要说楼宇智能系统、安保系统等,这些都远远超出了建筑师的能力范围。现代建筑实际上是由多个子系统组成的复杂整体,建筑师负责创建由这些子系统构成的整体体验,但大部分子系统对建筑师只是一个黑盒子,并不掌握其内部细节。各个专业人员也只了解自己负责的内容,没有人完全清楚整个建筑物的所有细节。这是今日建筑业的现状,和古代建筑工匠一手掌握全局的情况已经完全不同了。那么接下来的问题是:当我们要创建数字化建筑时,需要做到何种程度?

如果BIM只是为建筑师服务,它描述的是建筑师眼中的建筑,其目标是完成建筑师的职责,例如方案可视化、生成图纸、以及解决不同构件/子系统之间的碰撞冲突。这对建筑师是有价值的,但对其他专业人员则是不够的。例如当我们需要对电梯系统进行维修时,传统BIM模型并不包含电梯系统的细节构造以及控制逻辑,因此这种模型对电梯维护人员几乎没有价值。类似的,传统BIM软件也难以处理精细的幕墙构造和各种复杂的智能系统。因此,专业工程师常常感到BIM软件的功能不足,而运维管理人员也经常发现BIM模型并不包含他们所需的全部信息。 

BIM的另一个局限是它对于建造过程(包括工厂预制和现场安装两个阶段)的关注不够。BIM描述的是建造的最终成果,但建造本身是一个动态过程。建筑师眼中的一个构件(例如一块幕墙面板)可能是由多个零件组成,它们需要分别进行设计、生产、运输,再按照一定的工艺流程进行预装配或者现场安装。建造的方式不仅在很大程度上影响了施工成本,也会影响到最终的用户体验。传统的建筑师并不太关心建造过程,而作为对比,制造业的设计师不仅要设计一个产品的功能和造型,也要设计产品的生产工艺和装配流程。随着建筑业本身从传统的现场人力劳动迈向预制化、装配化和机械化施工,行业也需要把这些构件/子系统的生产工艺和装配流程纳入到数字化模型中来,形成动态的全过程数字仿真。这种全过程数字仿真不仅包含建筑产品本身,更要把生产设备、施工工艺、人员、工期、质量记录等各种信息包含进来, 形成建造过程的完整记录。

BIM的概念也缺乏拓展性。顾名思义,BIM是建筑(building)的信息模型,但什么叫做建筑?船舶的数字模型通常不被认为是BIM,尽管船舶同样提供人居空间。那么桥梁、隧道、铁路、大坝、矿山、工业生产线……这些算是BIM吗?如果认为这些也是BIM,那么BIM软件就应当具备这些专业领域的信息处理能力。但是,传统BIM软件往往是专门针对房屋建筑而开发的,对其它领域的信息处理能力是不具备或者不完善的。——举例而言,很多BIM软件不能创建道路中心线这样的专业对象,也无法定义房屋构件之外的对象类型(如轨道或者大坝)。 

07.jpg

与BIM相比,数字孪生(Digital Twin)理念在本质上具有更先进的普适性意义,因此达索系统(还有其它软件企业)使用这一名词来描述我们的愿景。“Digital Twin”是由美国NASA首先提出的,尽管它没有教科书式的定义,但大致而言,一般认为数字孪生包含以下几层含义:

在数字空间内,使用高度精确的数字模型来描述和模拟现实世界中的事物 

将现实世界中采集的真实信息反映到数字模型,使之随现实进行更新 

在数字空间内,使用模型和信息进行预测性的仿真分析和可视化

从业务流程来看,数字孪生不仅是建模,还包括全生命期的仿真模拟;而从适用范围来看,数字孪生的理念不是面向建筑这样的特定领域,而是面向整个客观世界,大到宇宙星球,小到分子原子,一切都可以用3D数字化方式进行建模和仿真。通过数字孪生技术,我们可以在虚拟世界中对现实世界进行分析和优化,从而做出更加明智的决策,改善我们所生活的现实世界。正如同建筑业本身是现实世界中的一个环节,建筑业所涉及的数字模型——无论是城市建筑、基础设施还是工业产品——也都是这个虚拟世界中的一环。我们必须以统一的数字化技术和平台来处理现实世界中方方面面的数据和流程,才能真正消除信息的断裂和隔阂。

由于历史原因,BIM一词在建筑行业已经被广泛使用,这一状况或许难以改变,甚至本文也仍然使用BIM作为主关键词。但我们必须认识到,需要用数字孪生的思想来看待建筑业的3D数字化技术转型。不应局限于传统的建筑师视野,而是把城市、建筑、产品和人员结合起来,实现整个人居环境开发的全流程数字化,才能给建筑业带来全面的数字变革。因此,基于数字孪生理念的达索系统“3D体验”解决方案在建筑业也必将拥有更大的发展潜力。在本系列的后面几篇文章,我们会讨论一些更具体的技术问题,并展示这些理念如何在软件中体现出来。

(二)3D建模的核心技术

3D软件的建模机制 

既然BIM是以3D数字模型为信息载体,那么从理论上说,优秀的BIM设计软件就应当具备精准的3D建模能力,这好像是一项合理的要求。然而令人惊讶的是,事实并非如此,几乎所有的传统BIM软件都不具备这样的能力。为什么这么说呢?我们需要先介绍一点计算机图形学的基本知识:

在计算机软件里,描述3D几何的算法可以分为两大类:网格建模和曲面建模。前者是用网格单元(包括三角形、四边形、多边形等)去拟合几何形体,后者是用数学语言去精确描述各种曲面形体。(可以类比于2D的光栅图和矢量图,这两个概念不清楚的请自行百度,不解释了。)两类算法在本质上截然不同,在实战中各有优劣。 

网格建模的优势是算法简单、计算速度快,而缺点是不够精确,因此常用于对计算速度要求较高、而精确性要求不高的场合,尤其是各种视觉渲染、影视特效、电脑游戏等。在这些场合中,网格建模的一大优势是可以通过合并三角形来减少其数量,从而提高计算性能(三角形越少则精度越低、速度越快)。游戏玩家们往往对这一点深有体会——早期3D电脑游戏中的人物造型经常可以看出明显的三角面片,而随着电脑性能的改善,新的游戏中这种现象已经基本消失。在BIM领域,很多所谓的“模型轻量化”软件实质上都是把模型转为三角网,然后通过减少三角形数量来压缩模型。这种做法对提高显示速度是有效的,但代价是模型精度的降低,因此轻量化之后的模型只能用于可视化,而不能用于工程建造。同时,在土木工程中,网格建模的另一个重要应用场合是数字地形模型,因为地形模型的特点恰恰是数据量巨大而精确性要求较低,因此几乎所有的数字地形处理软件都会使用网格算法来表达地形模型。

由于网格建模的精确性差,追求精确的工程软件(尤其是在制造业)不会用它来描述设计对象,而是使用曲面建模。然而,如果仅仅是用数学语言描述立方体、圆柱体这样的规则形体那还好说,如果要用数学语言描述汽车、飞机的外形,就不是一般人可以轻松做到的了。在工程领域,描述这类自由曲面的公认最佳方式是NURBS算法(NURBS=非均匀有理化样条曲面),它使用严格的数学函数来描述曲面,因此无论如何放大都能保持精确和连续,这是网格建模无法实现的。当然,除了NURBS之外也有其它的数学算法(例如Hermite),但都不如NURBS出色,因此在国际标准化组织(ISO)颁布的工业产品数据交换标准(STEP)中把NURBS作为定义工业产品几何形状的唯一数学方法。NURBS曲面有很多优点,但对它的处理需要相当高超的数学功底,并非所有软件公司都能做到这一点。有些擅长数学的软件公司可以自己开发建模引擎,而那些数学不好的软件公司就只能基于别人的建模引擎来搭建自己的设计软件。这就产生了“内核”这个概念,因为3D软件的建模引擎就好比电脑里的CPU,是其最关键的核心。在BIM江湖中,围绕内核技术的腥风血雨明争暗斗可以单独写一篇文章,本文就不介绍这些历史掌故,而是从技术角度分析一下几个常见软件。

13.jpg

建筑软件的建模技术 

先看两款常见的小型建模软件。SketchUp是一款典型的网格建模软件,它虽然方便易用,但并不精确,尤其是涉及曲面造型的时候就很不给力。因此,SketchUp只能用于建筑概念方案,而不适合于工程设计。与之相比,Rhino以非常小巧的自主内核实现了灵活、精确的NURBS曲面建模。尽管Rhino在实体建模等方面存在不足,也不是一个真正的BIM软件(因为它不具备建筑信息管理功能),但它不仅可以用于建筑的曲面造型,甚至在一定程度上可以承担一些工程设计的任务。当然,更好的方法是把Rhino生成的NURBS曲面精确导入到CATIA等高级软件进行深化设计。

再看看建筑行业的软件巨人Autodesk。众所周知,Autodesk公司的产品线很广,但它的多款软件数据格式各不相同,导致在Autodesk的不同软件之间交换数据的时候都经常损失信息。为什么会有这种现象呢?原因是Autodesk的很多软件(包括3ds Max、Revit、Navisworks等)都是收购来的,并不是Autodesk原生开发的,因此从一开始就分别采用不同的3D内核。

就Revit而言,它是Autodesk在2003年收购的,其3D内核也不是Autodesk原生开发的。虽然Autodesk的产品文档中并没有透露多少关于Revit内核的技术细节,但在维基百科[1]中提到,Revit不是一个NURBS建模工具。在Revit API官方文档[2]中也有说明,Revit支持的Face Type不包括NURBS Face,而只包括一些简单曲面(如圆柱面,但不包括球面)和Hermite Face。因此,它在曲面处理方面带来一些问题。例如,当我们在Revit中创建一个半径为1的球体,可以很明显看到这个球体不是光滑的,而是似乎由多个面片拼接起来。而同样半径为1的圆柱体就没有出现这样的问题,这是因为Revit内核支持圆柱面而不支持球面。 

更隐蔽的问题是,当你把Rhino软件创建的NURBS曲面导入到Revit,表面上似乎可以导入,实际上会出现偏差,这是因为两款软件内核采取的数学算法不同[3]。如下图所示:

从上面的分析中我们可以看出,Revit的3D内核只适合描述平面形体和圆柱体等简单几何,而不适合球面和NURBS曲面。不仅如此,由于Revit内核算法的局限性,导致它对曲面对象的操作存在诸多限制,例如你很难在曲面上进行精确的几何测量,也不能在一些曲面实体之间进行布尔运算。所以很多用户都有感觉,如果是针对方方正正的普通建筑、绘制传统的施工图纸,Revit的建模精度尚可接受;但如果涉及复杂曲面,Revit就力不从心了。同时,Revit的构件模型也不适于预制加工,因为制造阶段对模型精度有更高的要求。


土木工程软件的建模技术

土木工程软件对数学算法的要求远比建筑软件更高。一方面是因为土木工程(例如铁路、大坝、隧道)中存在更多的曲线/曲面,更重要的是,土木工程师经常要跟地形打交道,因此就需要处理设计模型和地形模型之间的交互。无论是场地平整、大坝开挖、道路边坡、隧道洞口,都涉及到边坡计算问题,其本质是要在人工设计的几何实体与自然地形之间进行布尔运算。从土木工程师的角度来看,这一需求是非常简单清晰的,但对软件工程师来说,这却是一个超级难题,因为设计模型(几何曲面)和地形模型(大型网格面)分别是用两类不同的建模机制描述的。 

在大型3D软件中,为了适应不同的需求场景,往往具有不止一种建模机制,而是以一套机制为主,结合其它机制作为辅助。例如Autodesk公司的Civil 3D 软件是基于AutoCAD平台自主开发的,它既有曲面(实体)建模能力,也同时具备网格建模算法。然而,一旦需要在两者之间进行布尔运算,问题就出现了。Civil 3D无法很好的解决这个混合运算难题。因此,在Civil 3D软件中,不是用NURBS曲面生成道路和放坡,而是用网格面来生成这些设计模型,从而把边坡计算问题统一简化成网格面之间的运算。这种做法的好处是回避了混合运算的难题,缺点则是牺牲了设计的精确性和可靠性。如果是用过这款软件的人,都可以很直观看到它所建的道路和边坡模型不是连续曲面,而是按指定间距创建离散的横断面,然后像皮皮虾般一节节连接起来,与真实世界相差甚远。这样的模型在细微复杂之处就容易产生问题,工程量计算也不够准确。同时,使用Civil 3D的网格面也很难完成桥梁、隧道等结构物的建模,因此Autodesk又在Revit上面提供了桥梁建模工具,但仍然不能克服其曲面能力不足的技术局限,反而又带来了不同软件之间的数据集成问题。 

接下来看看Bentley公司以MicroStation为平台的一系列设计软件。从表面上看,MicroStation具有一定的高级曲面造型能力,并且曾经在一些复杂建筑中得到应用。但是,MicroStation的高级3D建模内核不是自主研发的,而是使用西门子的Parasolid技术。这并不是什么秘密,而是清楚地写在Bentley公司网站上: 

上面的帖子来自Bentley中国论坛[4]。它和另一个帖子“MicroStation中使用的三维技术”[5]明确告诉我们,MicroStation同时具备几种不同的建模技术:

网格面(Mesh元素):主要用于地形模型

简单3D实体(Solid元素):Bentley自主技术

高级3D实体(ParametricSolid等元素):使用西门子的Parasolid技术

虽然我们不了解MicroStation内部的实现方式,但从软件行业的开发经验来看,由于Bentley并不掌握Parasolid核心技术,这很可能会对MicroStation平台上的专业软件开发造成影响。尤其是涉及到高级3D实体的部分,就取决于Parasolid是否提供所需的API。另外,与AutoCAD Civil 3D相似,Bentley很可能也没有解决这个关键问题:如何在网格面和Parasolid这两类不同实体之间进行布尔运算。因此,在Bentley OpenRoad软件中采取了与Civil 3D相同的做法,用网格面来生成道路和边坡。它的道路模型和Civil 3D相同,都是用网格面连接而成,不是真正的曲面,这一点也大大降低了Bentley产品在土木工程中的价值。与Autodesk不同的是,Bentley的桥梁软件OpenBridge与道路软件OpenRoad都基于MicroStation平台,因此相互之间的集成要优于Autodesk。但与CATIA相比,Bentley产品的高级曲面建模能力、高级参数化建模能力都有所不足。下图左侧是Bentley OpenRoad建立的道路模型,右侧是CATIA Civil Engineering建立的道路模型。可以清晰的看出两种软件的建模方式不同,效果也有很大差异。

CATIA软件的建模技术

达索系统的CATIA软件具备业界顶级的3D建模引擎,并且是完全自主开发的。与传统BIM软件相比,CATIA在3D技术上的优势体现在以下几个方面:

(1)CATIA支持精确的NURBS曲线和曲面,因此无论尺寸比例如何,都可以获得精确、连续的几何信息。

(2)有了精确的空间曲线,就可以将其作为骨架线进行参数化建模。例如下图中,每个构件单元都使用同一条骨架线进行定位;一旦调整骨架线,所有相关的构件都随之自动更新。

(3)参数化构件不仅可以用骨架线控制,还可以根据公式和关联参数进行计算。例如根据A构件的某一属性计算出的值,作为B构件的某个尺寸输入。这给用户提供了强大的参数化控制和协调能力。

(4)在面向土木工程行业的CATIA Civil Engineering最新版本中,既能以NURBS曲面生成设计模型,也能以多边形网格面生成数字地形模型。更重要的是,CATIA通过强大的数学功底实现了曲面建模和网格建模之间的混合运算,从根本上解决了边坡计算问题。在CATIA Civil Engineering中,我们不仅可以生成连续光滑的3D道路中心线,还可以生成同样连续光滑的曲面作为道路的路面和边坡,然后通过布尔运算求出边坡与地形之间的交界,以及土方挖填体积。这样一来,设计的质量更高,工程量也更加准确。混合建模技术给土木工程的3D数字化设计提供了更加广阔的空间。

为什么本文花了这么多篇幅讨论3D内核问题?因为内核从本质上决定了一款软件的几何建模能力。如果一款软件本身不具备精确描述3D几何的能力,这是作为使用者的用户无论如何努力都无法弥补的。传统BIM软件主要是面向常规建筑、解决出图而不是制造问题,因此往往使用相对简单的算法,创建简化的3D模型——这对于传统BIM应用或许就足够了。但对于面向数字孪生的软件来说,其目标是为现实世界中的事物创建精准可靠的数字孪生,因此必须具备更加强大的3D内核。建筑与土木工程行业的用户或许也有必要思考:自己的目标是用软件完成传统的工作任务,还是为了迎接建筑工业化、数字化转型?然后再根据自己的目标选择具有合适内核能力的3D软件。