我们满怀着美好期许,鼓起勇气敲响了 BIM 世界的大门。忽然人群中有人高呼:BIM 已死,大家都散了吧!

  这时人群开始骚动起来。“我早就说这玩意是忽悠人的吧,你们不信还偏要来”,“我花了好多钱准备这次探索,这都死了,咋办?导游在哪呢,我要投诉!”有些人原路折返,有些人捶胸顿足,有些人呆若木鸡。

  门慢慢地开了,人群又开始骚动起来……

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

模式与框架

  软件设计中的“模式”源自建筑师克利斯托弗·亚历山大(Christopher Alexander)与萨拉·石川佳纯(Sara Ishikawa)及墨瑞·西尔弗斯坦(Murray Silverstein)在1977年合著的书《建筑模式语言》(A Pattern Language: Towns, Buildings, Construction)。书中说道:每一个模式描述了一个在我们周围不断重复发生的问题以及该问题的解决方案的核心,这样你就能多次使用该解决方案而不必做重复劳动。后来这一理念被引入到了软件设计中,在四人组(Gang of Four,简称 GoF。指 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人)合著的《设计模式——可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)一书中被人们熟知,广泛地应用在软件设计中。使用模式可以让代码更容易管理、重用和扩展,从而提高软件开发的效率和质量。

  软件设计中常提及两种模式:一种是架构模式,一种是设计模式。架构模式是从系统的层面上定义各个子系统的职责并据此进行组织设计,而设计模式是从子系统的功能层面上来定义功能的实现方式。

  与建筑结构中的框架相似,软件设计中的框架也是指结构。这个结构实现了一些通用功能,开发者在特定的框架下只需要实现核心的业务逻辑设计,从而提高了软件开发的效率和质量。

MVC

  MVC 是一种模式(主要体现为架构模式,也体现为设计模式),也有使用各类技术实现的各种 MVC 应用框架。

  MVC 是三个字母的缩写,分别是 Model(模型)、View(视图) 和 Controller(控制器)。它的中心思想是“分离”,目的是降低代码的耦合性,提高代码的重用性,使软件更易于测试和维护。简单来说 MVC 的工作原理就是 M 产出数据,V 展现数据,C 响应用户请求并对 M 与 V 进行控制和协调,整个软件的代码就围绕着这些角色来组织编写。M 和 V 的工作方式有点像是使用 Excel 为数据创建图表。在 Excel 中我们可以使用各式各样的图表来展现同样的数据,对于一个 M 来说,可以使用多个 V,每一个 V 都有其适用的情况。不过实际情况比上述比喻要略微复杂一些,比如在 M 和 V 之间通常还有一个角色,就是 VM(ViewModel,视图模型),VM 通过业务逻辑(Business Logic)处理 M 而获得,用于与 V 直接绑定,实现“数据驱动 UI(User Interface,用户界面)”的理念。

建筑、信息与模型

  如果我们从模式和框架的角度把 MVC 的概念“生搬硬套”过来,BIM 该如何分离呢?从字面上来看,就是建筑、信息与模型。不过 BIM 里的 M 并不是 MVC 里的 M,而是 V,它代表着工具。我们根据需要选取工具创建信息,同样的信息也可以在不同的工具中展示及使用。从这一点看,BIM 软件就像是一个复杂的 UI,通过它可以实现使用者与数据的交互。BIM中的I是MVC中的M,它既包含元数据(关于数据的数据,定义并规范着数据),也包含大数据(所有的工作流程数据及工作成果数据)。BIM 中的 B 比较特殊,它既包含业务逻辑又包含控制器。在 BIM 中,所有的信息都通过复杂的建筑逻辑进行处理,又在各个专业和不同工作阶段中流动。

  从上述角度对 BIM 重新分解,它包含以下部分:

  • BI(Building Intelligence,建筑智能),由建筑知识,建筑逻辑和建筑流程组成。
  • I(Information,信息),由建筑信息与工作流程信息组成。
  • IM(Information Maker,信息制造者),由各专业团队和生产力工具组成。

  目前我们主要还是在局部范围内使用 IM 产生的信息片段,还没有能够有效地在全局范围内使用 I。由于目前 IM 的问题已基本解决,软件公司正在朝着I和BI进发,当他们解决了 I 和 BI 问题的时候必将爆发建筑业的空前革命。

  对建筑企业来说,如果不想被各类软件 “绑架”,就要从以上各部分着手将各类软件“消化”为企业应用平台的组成部分。

踏上 BIM 之路

  门慢慢地开了,人群又开始骚动起来,因为人们看到了远处美丽的胜景和阻挡在眼前宽广的河流。

  有些人自信满满地跳入了河中打算孤身游过彼岸,可是却失败了。

  有些人匆匆忙忙地造了船胡乱地滑向彼岸,可是也失败了。

  要想继续这段探索之旅,众人必须齐心协力紧密合作。

  是时候把一群人变成一个团队了。

转载于:https://www.cnblogs.com/radium/p/4579850.html

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

  1. 从IT的角度思考BIM(三):敏捷开发

    人们看到了远处BIM的美丽胜景和阻挡在眼前的宽广河流.有些人自信满满地跳入河中打算孤身游过彼岸,可是却失败了.有些人匆匆忙忙地造了船胡乱地滑向彼岸,可是也失败了. 要如何继续这段探索之旅? 无论是&l ...

  2. 互补性:从不同的角度思考同一个事物时,发现它同时具有不同甚至相互矛盾的性质...

    来源:混沌巡洋舰 检验一流智力的标准是头脑中能同时持有两种截然相反的观点,却能并行不悖. --弗朗西斯·斯科特·菲茨杰拉德 显然,这种互补性推翻了学术的本体论.真理是什么?我们之所以要提出彼拉多的问题 ...

  3. 为何BIM二次开发势不可挡?

    [前言] 目前BIM技术越来越火,那么BIM的前途如何呢?今天安全人生就和您一起分享一下BIM技术的本质以及未来发展方向,为何学习BIM二次开发未来5~10年内非常具有优势? [BIM本质] 不论是央 ...

  4. 从产品经理的角度思考内容平台(一)——开启时不宜过于专业

    写在最前面 随着币乎平台引入Streamr模式,开启了国内区块链内容平台的先河,随后支点.QunQun.ONO.Primas.IveryOne.知币.币车.方球.币嗨.向北.优享.区分等像雨后春笋一样 ...

  5. 高等组合学笔记(九): 球盒模型的十二模式,分拆的生成函数

    球盒模型的十二模式 n球⟶fk盒n球\stackrel{f}{\longrightarrow}k盒 n球⟶f​k盒 nnn球 kkk盒 fff单 fff满 fff不加限制 不同 不同 ① ② ③ 相同 ...

  6. 关于降低锁的竞争程度------从奶爸的角度思考

    关于降低锁的竞争程度------从奶爸的角度思考 题外话:这篇文章的灵感来源于近日带娃耍. 锁竞争带来的问题 在锁上发生竞争,导致串行操作花费的时间比例增加,进而降低程序的可伸缩性.具体可参考Amda ...

  7. 橄榄山建立的Revit二次开发2群317179938,专门讨论Revit和BIM二次开发问题

    橄榄山Revit二次开2群317179938开通,里面有近百人讨论Revit和BIM二次开发.欧特克的研发部门以及ADN开发技术咨询部门也有牛人在其中. 由于本博创业后各种事情比较多,没有太多时间来答 ...

  8. android 状态机的作用,Android 状态机、状态模式 基础框架实现

    一.StateMachine 要解决的问题 从设计模式的角度来讲,状态模式和策略模式类图是一样的,所以工作原理也类似.但相比较于策略模式,状态模式需要管理好状态树,以及维护状态对象的生命周期. 所以, ...

  9. b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释

    b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释 继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更 ...

最新文章

  1. 目标检测(或分隔)算法Mask R-CNN简介
  2. [云炬学英语]每日一句2020.9.3
  3. xilinx SoC学习笔记之PetaLinux
  4. linux下nand flash驱动工作原理,1.3.4. Nand flash驱动工作原理
  5. scikit-learn:在实际项目中用到过的知识点(总结)
  6. abb机器人工具坐标系设定方式_设定abb机器人工具坐标的方法
  7. 简单控制 xLang 窗体
  8. 改进YOLOv7的早餐价格检测系统
  9. 安装Hspice2014时仿真键为灰色不可点击和Windows缺依赖项问题的解决方法
  10. DPM learn.cc编译
  11. python requests接口自动化测试 (数据库断言)
  12. soj2093: Farmer John
  13. Chips-2.0(二)DEMO工程综合实现
  14. STM32之HAL库详解 及 手动移植
  15. 【java】函数式接口和Stream
  16. 清理Java缓存步骤:
  17. python读取nc数据_python读取nc文件
  18. SystemVerilog HVL:面向对象编程(Object Oriented Programming, OOP)
  19. 如何设计一个优惠卷系统
  20. 分享:软件全面国产化替代,10款数据库TPC-C测评哪家强

热门文章

  1. openjudge #输出一个整数序列中与指定数字相同的数的个数。
  2. 设计模式之-简单工厂模式
  3. Linux安装Java
  4. Swift变量名的一种玩法
  5. 输入特定字符和只能输入数字。
  6. 项目管理工程师:第二章信息系统服务管理
  7. JavaScript实现图片旋转构成3D圆环代码
  8. rstudio和matlab,R语言与matlab循环时间对比
  9. 2020江苏省计算机等级考试题库,2020年江苏省计算机等级考试易考套餐:三级数据库技术题库+教材...
  10. 开源优势_企业开源的10大优势