从 IT 的角度思考 BIM(一):面向对象

还记得那个笑话吗:要把大象放进冰箱,总共分几步?这不仅仅是一个笑话,还是一个值得我们好好分析的笑话。

如果要放进冰箱的是一个苹果,那么也就不可笑了,但换成大象,就引起了我们的兴趣和注意,为什么?

我们现在对 BIM 已不再陌生,但如果跳出建筑的视角来思考 BIM,我们是否会有全新的认识呢?

本文将从 IT 的角度来思考 BIM,希望能给大家带来一些启发。

面向对象与面向过程

当我们把一个苹果放进冰箱时,我们其实并不太关注它(或者试试把苹果手机放进冰箱!),我们关注的是放进冰箱这个事儿。不,事实上我们也不太关注冰箱,我们真正关注的是“保鲜”这个事儿(谁说我不关注苹果的,我可不想吃一个烂苹果)。把苹果放进冰箱的目的是保鲜,且通过简单的开关冰箱就可以达到这个目的,太方便了,顺便拿出一盒酸奶来喝。

然后我们听说要把大象放进冰箱里!哦,不,怎么可能!大象那么大个儿,冰箱那么小点儿,这不科学!

非常好,现在我们关注的不仅仅是”保鲜“了,大象和冰箱已经进入了我们的视野。

在程序开发者的眼中,大象和冰箱都可以理解为是对象。面向对象编程将对象作为程序的基本单元,关注对象及对象间的关系。我们对于把大象放进冰箱的困惑,其实正是因为我们在关注对象,在不知不觉使用面向对象的思维方式考虑问题,而放苹果的时候,我们关注的是“开门,放入,关门”这个动作及“保鲜”这个结果,使用的是面向过程的思维方式。

看,就是这样,秘密就蕴藏在生活之中,看上去是那么的普通,只待我们去发现。

仅仅通过一个笑话还不足以对面向对象和面向过程进行充分的了解,其实建筑师和各专业的工程师一直都在“编程”,只不过用的不是计算机语言而是建筑语言,而且面向对象和面向过程的思想都有涉及。“面向对象的编程并不在于编写代码”这句话可以让我们好好地思考建筑师和工程师在建筑领域里的“面向对象编程”。

BIM 与 CAD

面向对象的概念和应用已超越了程序设计和软件开发,扩展到了多个领域,现在我们不妨对照着百科中的说明看看 BIM,哇哦!没错,BIM 就是面向对象的概念在建筑领域的延伸。

等等!难道说 CAD 就不是面向对象了吗?从图形的角度来说,CAD 是面向对象的,从建筑的角度来说,这个真没有!

从不同的角度来看问题,我们的关注点也不同。如果从产品的角度来看待建筑,我们关心的是建筑及其组成部分,而不是图形及立体几何中的元素。

当你指着图纸里的一条带有线宽的线段说“这根梁的位置需要调整”,没有人会误会你,因为大家都在用这种方式在图纸上表达。我们都知道梁是有轮廓的,而且节点形式还比较复杂,可这些信息在这段粗线条里却无法看到。有人会说:没问题,我是个 CAD 高手,可以按照真实的情况来画,且不但会画二维还能画三维的。实际上这完全可行,只要技术过硬,完全可以基于 CAD 继续开发,实现我们想要的功能。有一些软件的确也是这么做的。但对于普通用户来说,这种规模的开发是不切实际的。并不是每个会骑自行车的人都能发明一个“A 型自行车马达” 对自行车进行改造升级,作为普通用户,直接买一辆改造好的自行车比较方便。幸运的是科技发展的很快,虽然去探索潘多拉还需要点时间,但现在我们已经有种类繁多的摩托车和电动自行车可以选购了。

永远相信美好的事情即将发生!软件技术的发展为面向对象思维在建筑领域的应用提供了强大的支持。

回想一下我们是如何使用 CAD 软件进行工作的:点,线,矩形,圆……使用各种图形对象进行组合来画图,通过处理图形对象之间的关系来实现建筑表达的目的。再想一想我们是如何使用 BIM 软件进行工作的:柱,梁,墙……使用各种建筑对象进行组合来建模,通过处理建筑对象之间的关系来在数字环境下创造建筑客体。如果把 CAD 比作是绘画,那么 BIM 就是雕塑。通过在不同角度描绘物体,我们可以得到多幅画像,但每一次我们都要从头开始画,且关注的是当前角度描绘表达的准确性,这就是绘画的方式。即便现在我们可以使用数码相机快速地拍照,那也仅是绘画技术的升级,方式并没有改变。雕塑关注的是客观对象,通过对每一个细节的琢磨,雕像可以展现客观对象的真实形态,我们可以从无数个角度进行观察,只要雕像在,我们随时可以绘画和拍照。如果你是个”冰冰棒“,是在家里挂一张大照片给力呢,还是3D 打印一个1:1的真人模型给力呢?

实际上 BIM 中也有很多的几何细节,并不比 CAD 少,但这些几何细节经过了封装,我们通过建立建筑对象和建筑对象之间的关系后,才能得到这些几何细节。这些几何细节对我们的意义在于它们是建筑对象的属性,而不是独立存在的。

尼古拉斯·尼葛洛庞帝曾说过:真正想要了解一只青蛙,传统的解剖不是办法,更好的方式是构造一只青蛙。

我们先放下手中的建筑切片,看看通过 BIM 我们是否可以真正地了解建筑。

敲响 BIM 世界的大门

敲门前我先讲一个真实的故事。新办公室装修,我决定采用千兆网络来布设这个局域网。我对网线的事不放心,再三确认下,装修公司说他们经验丰富,放心好了。结果等到测速的时候发现问题了。因为装修公司做预算的时候网线的长度是按箱计的,粗算下来觉得一箱够了。结果施工的时候少了几米,他们也没在意,就随手把一根六类线一分二,以填补他们因缺乏准确的计算而导致的遗漏。如果是百兆网络,这种做法没有什么影响,但千兆网络要是这样做的话,网速就会降级到百兆,六类线就失去了原有的作用。装修公司表示他们一直是这样处理的,也没见客户提出异议,由于重新穿这根网线太费周折,反复交涉下,最后他们做出了一些补偿。

你也许会纳闷,这和 BIM 有什么关系?如果我们把 CAD 比作百兆网络,把 BIM 比作千兆网络,现在看起来清楚点了:因为用得久,所以我们对百兆网络太熟悉了,以至于我们升级到千兆网络后对旧有的原理和方法毫不怀疑,自以为这些同样可以使用在新技术上。

有时候让我们犯错的恰恰是我们的经验,当我们迎接新世界时,我们也要重新审视自己。

如果新郎认为新娘是个女人就可以,对红盖头下的新娘没有任何期盼和掀起盖头的冲动,那么这段婚姻很可能只会走个过场,不管新娘有多美,新郎也不会懂。

如果这个故事敲响了你,那么说明你已经做好了准备。

是时候敲响 BIM 世界的大门了!

时间: 2024-10-03 15:14:11

从 IT 的角度思考 BIM(一):面向对象的相关文章

从IT的角度思考BIM(二):模式与框架

我们满怀着美好期许,鼓起勇气敲响了 BIM 世界的大门.忽然人群中有人高呼:BIM 已死,大家都散了吧! 这时人群开始骚动起来.“我早就说这玩意是忽悠人的吧,你们不信还偏要来”,“我花了好多钱准备这次探索,这都死了,咋办?导游在哪呢,我要投诉!”有些人原路折返,有些人捶胸顿足,有些人呆若木鸡. 门慢慢地开了,人群又开始骚动起来…… 本文将继续从 IT 的角度来思考 BIM,希望能给大家带来一些启发. 模式与框架 软件设计中的“模式”源自建筑师克利斯托弗·亚历山大(Christopher Alex

Spark源码的角度思考Scala中的模式匹配

学习了从Spark源码的角度思考Scala中的模式匹配,如case class应用,伴生对象中用apply,所以没有new class,直接进行模式匹配,例子如下 Case class RegisterWorker( Id: string, Host: string, Port: int, Cores:int, Memory:int, webUiPort:int, publicAddress:string, Extend DeployMessage{ Utils.checkHost(host,”

培训感悟---站在客户的角度思考

"好"并不一定就能够解决问题,适合我们的才是最为重要的               ---题记 最近一直在思考,自己是否要准备一个为期5天的大数据的课程.从自己知道的几个部分全面去讲解大数据的产生,发展,落地及与我们的关系.比较担心的是自己没有做过相关的项目,这样只讲原理是否会有更大的效果. 为什么会产生以上的想法,是因为后来发现,当我们站在客户的角度来思考问题的时候,才能更加深入的感受到客户对技术更迭的期待以及变革自身营利模式的迫切. 从当初的滴滴打车与快滴打车的竞争中,我们就能够看

从集合的角度思考DP问题

从集合的角度思考DP问题 如上图展示了DP问题思考的一个简单步骤来自y总直播,"就像计算乘法一样,学会分析DP问题就像学会列竖式一样,让处理DP问题更简单"这就话让我瞬间意识到分析问题的重要性,处理DP问题不应该是想出转移过程,应该是一步步分析出来的.这篇博客记录以后做题过程中我对DP分析方法的理解和总结 #one. 杨老师的照相排列 (第一篇废话较多) DP问题 这道题目前我解释不出为什么要用DP做,但Count是DP一类题型 分析过程 DP一般就是一个状态向另一个状态转移,在这个过

PLC编程再思考之4 - 面向对象

PLC编程有诸多限制,如: 传统的西门子PLC单个DB的存储容量为64KB. 每次DB结构变更时,都需要编译并重新下载覆盖原DB. 每次DB结构变更时,OPC变量需要重新映射地址. 但有时候我们希望把DB设计得灵活一些,当给PLC增加一些小的元素时,我们不希望覆盖大量的DB. 有时我们希望PLC程序设计得模块化.产品化.基于配置. 在这些应用场景中,我们可以参考面向对象的方法进行PLC编程. 本文以质量安灯实例说明了面向对象的PLC编程方法. 业务需求为: 每个工位配置1条拉绳. 当拉绳拉下时,

第74讲:从Spark源码的角度思考Scala中的模式匹配

今天跟随王老师学习了从源码角度去分析scala中的模式匹配的功能.让我们看看源码中的这一段模式匹配: 从代码中我们可以看到,case RegisterWorker(id,workerHost,........){}这里为模式匹配,而我们的模式匹配类RegisterWorker之前就已定义好,如下图: 我们可以看到,我们的模式匹配类是已经定义好的,当我们的master接收到worker发来的消息时,进行模式匹配: . 这里还有一个知识点,我们可以发现,当我们进行模式匹配时,我们并没有使用new方法

从数据库、页面加载速度角度思考 id设计 sku asin

w 超值套装 [小米红米4A][超值套装]小米 红米 4A 全网通 2GB内存 16GB ROM 香槟金色 移动联通电信4G手机 双卡双待[行情 报价 价格 评测]-京东  https://item.jd.com/4891234.html#crumb-wrap [小米红米4A][超值套装]小米 红米 4A 全网通 2GB内存 16GB ROM 玫瑰金色 移动联通电信4G手机 双卡双待[行情 报价 价格 评测]-京东  https://item.jd.com/4096723.html#crumb-

从社交的角度思考如何更好的做产品

1 根据“邓巴数字”,人类社交圈的上限是150人.这个限制是指你能与其维持稳定社交关系的人数,这样的团体中每个人都能相互了解~也就是强关系圈. 2 如果感觉自己并未身处此圈子之中,可能就会感觉得被人疏远,孤立,感到紧张. 3 在社交网络中很多关系都是弱关系. 4 在设计一个注重社区关系的产品时,请考虑其中的交互是为强关系还是弱关系设计的还是为弱关系设计的. 1 人天生会模仿,如果你想影响用户的行为,直接给一个示例也不错. 2 研究表明,故事情节在大脑中产生的图像也能触发镜像神经元活动,所以讲故事

【备忘】思考角度 - 跳出语法限制

今天读到一段内容,大意是说 一些开发者认为自己的工作就是把复杂业务问题翻译成某种编程语言: 而另一些开发者不会拿问题去硬套语言,而是想法揉捏手中的语言来迎合问题. 最近对颠覆思维的东西比较敏感. 读到这句话,有一种发现宝藏的感觉,便顺着想了下去. 我总拿学英语来类比学编程. 学习语法特性就好比在学英语单词和句式.一个意思可以用不同的单词句式来表达,不同语境下,表达方式各有优劣,和编程的情况很相似. 今天读到文章开头那句话,我发现自己的思维是被限制在已有语法句式内的,从没跳出这个限制思考过. ES