BIM建筑环境规则和分析(BERA)语言介绍(三)第二章 背景

7 篇文章 0 订阅

       本章是一份调查,旨在回顾计算机语言设计和 实现方面的相关工作,并介绍了设计和开发BERA 语言的经验教训。根据编程语言历史网站[HOPL,2010], 其数据库列出了8,512种计算机语言,其中17,837条书目记录包含 来自这些参考文献的11,064条摘录。维基百科在 计算机语言页面下引入了600多种语言,它代表性地列出了89种常用的 计算机编程语言,用于比较它们的一般和技术信息[维基媒体,2010]。而且,计算机语言每天都在诞生[Mashey,2004]。
     本研究的目的不是解决与编程语言有关的一般和广泛问题。然而,有许多有用的参考资料来研究和开发一种语言,作为数百种仍然具有生命力的语言的扩展。BERA 语言旨在成为专门针对特定领域的领域特定语言,即AEC 行业。为了做出有影响力的努力,BERA语言应该反映复杂和实际的问题,但也易于使用。本章介绍了要处理的问题以及需要的特定于域的建模需求根据从其他类型语言中学习的经验教训,实现这种有效性和易用性。

      该问题在特定领域的语言发展的主要问题: 通常是如何其使用的有效性和易用性可以完成。

      程序应该在构建设计规则和分析的高级操作中编写,而不是在具有更高粒度级别的低级操作中编写。

      该程序语言使用涉及两个主要方。一个是建筑设计和评估专家,如建筑师或工程师,另一个是国际金融公司专家,他的专业知识是软件实施。

      BERA语言允许为负责设计评审过程的人员提供更多控制和选项。如果高级域特定语言与其他通用编程语言一样复杂,学习或使用它没有任何优势。在另一方面,如果过于局限于处理具体问题,也不会有价值,甚至如果它是很容易学习和使用。这个问题非常困难,但应该在语言设计层面解决,以便恰当地找出这两个相互冲突的问题之间的最佳折衷方案。甚至美国国家航空航天局(美国国家航空航天局)也使用自己的特定领域语言来控制航天飞机,以提高可靠性并降低风险,成本和开发时间[Parr,2007]。

     BIM中的特定于域的语言
     IFC作为BIM领域特定的建模语言

     在20世纪70年代到80年代,当只有少数计算机辅助设计(CAD)系统时,早期尝试在不同系统之间交换一组几何数据而没有数据丢失。CAD系统之间的互操作性是在每个领域特定领域开发标准产品模型的主要动机。从那时起,国际金融公司由国际互操作联盟(IAI,目前称为buildingSMART)自1994年起为AEC工业部门开发。

    IFC是用于表示建筑信息模型的基于ISO STEP的建模语言之一,并且它被认为是建立行业产品模型的主导标准。该截至2010年,当前版本的IFC是2x3TC1。它不是一个封闭的定义。将发布具有行业认可和所需功能的新版本。基于IFC 模型,建筑模型代表了有关建筑物及其相关属性的大量几何和拓扑信息。(请参阅第3.2.3节和图3.1,作为当前IFC如何代表本研究范围内的构建对象的概述。)IFC上有许多材料,如[ISO 10303,1994; 伊士曼,1999年; IAI,2000; IAI,2003; 伊士曼,2007年; Eastman等,2008; buildingSMART,2010a; buildingSMART,2010b]。 
       BIM特定于域的编程语言与BIM 领域特定建模语言领域的可靠研究和开发工作相比,BIM领域特定编程语言领域的研究和开发很少。(参见图1.1,区分BIM领域特定的建模和编程语言)在1970年代,被认为是建筑信息模型研究的早期阶段,有18个是BIM领域特定语言开发的重大努力。伊士曼开发了GLIDE和GLIDE II(交互设计的图形语言)[Eastman和Henrion,1977],尝试使用一组功能性交互操作来生成建筑设计。这项工作之前是卡内基梅隆大学开发的一项名为BDS(建筑描述系统)的早期工作
[Eastman,1975; Eastman等,1976]这不是一种完整的语言,而是一组操作和对象。GLIDE是众所周知的,并在其他八个大学
研究小组中实施。

       然而,在地理信息系统(GIS)领域,已经做出了努力。承担开发用于操纵地理空间数据的语言和系统,如Spatial SQL [Egenhofer,1987,1994]。这些系统包含空间数据,例如城市,街道,河流,地块等的位置和形状。由于该域的性质,它们仅支持2D中的空间对象。这些系统主要是基于关系数据库系统开发的,因此它们的特定于域的语言也基于SQL语言。例如,自20世纪80年代后期以来,引入了不同的方言,如Spatial SQL [Egenhofer,1987,1994 ],KGIS [Ingram等,1987],PSQL [Roussopoulos等,1988],GEOQL [Ooi等,1989]。 ],TIGRIS [Herring等,1988],等等。不仅在GIS领域而且在BIM领域,已经有很多尝试为3D建筑模型设计和实现不同类型的“空间查询语言” ,因为基于IFC 已经使用了建筑产品模型服务器环境。 ,特别是由[Borrmann等,2009a; Borrmann等,2009b; Borrmann,2010a](见图2.1)。但是,通过使用IFC,有时很难检索空间拓扑,空间拓扑,关系以及对域专家更重要的特定属性等空间语义。示例是SECOM IFC Model Server 的部分模型查询语言[Adachi,2003] [Adachi,2010]和EuroStep Model Server的产品模型查询语言[Eurostep,2010]。

       随着对空间语义重要性的认识的提高,一些基于类似SQL的语言实现了以建模模型为中心的查询[Renz,2002; Borrmann 
等,2006; Schultz等,2008]。基于空间语义的查询示例如下:
- 选择第2级中的所有空格。
- 获取地下楼层中的所有墙。
- 选择触摸此特定板的所有列。
更具体地,图2.1中的示例是由[Borrmann等人,2010a]开发的用于3D空间查询语言的原型应用的快照。这是一个很好的例子,用于演示语言驱动的BIM方法是如何有用的。本例中使用的输入程序代码如下。它检索站在特定板对象顶部的所有列对象。
SELECT 
Col.id 
FROM IFCColumn COL,IFCSlab slab3 
WHERE ABOVE_HS_RELAXED(col.id,slab3.id)AND TOUCH(col.slab3.id)
AND slab3.id =`Oid23089_IfcSlab_Floor_” 
20
图2.1。3D空间查询语言原型应用程序的屏幕截图
[Borrmann,2010a]。
构建模型上的这种类似SQL的查询语言非常简单有用,尤其适用于具有数据库和SQL查询语言经验的人员[SQL,2010]。此外,图2.1中所示的原型应用程序具有用户友好的对话界面,可轻松编写语言。这种菜单驱动的界面对于用户来说是一个有用的实用工具,即使它的执行最终是通过程序代码的形式完成的。

        BERA语言应该在语言语法和语义中具有此查询语言功能,因为它是收集用户定义对象的基本功能4。 最近的努力包括慕尼黑技术大学和芬兰VTT 的Borrmann研究小组为4 开发“空间约束语言”的工作。请参阅6.3节,预览BERA语言如何查询和处理建筑物。在 BERA语言中,此查询功能用于对象实例化和规则检查。 但是,这并不意味着BERA语言仅限于查询语言。第6.4,6.5 和6.6节说明了其规则定义和执行示例。

        智能建筑规则检查[Borrmann,2010b]。这项工作侧重于空间语义,涉及基于空间查询语言的项目,但仍处于开发阶段。其范围主要在建筑施工阶段,因此该项目中的建筑元素主要是结构对象而不是空间对象。

        另一方面,BERA 侧重于建筑环境规则和分析,最初的发展主要是空间对象。由于特定领域语言的性质,很难研究和审查各种类似的案例。但是,根据本章中审查的案例,我们可以制定战略,方法和方法BERA语言设计和实施的技术手段。
       

       回顾其他语言的经验教训虽然它们的界限通常过于模糊,无法区分,但计算机编程语言可以根据几个角度进行分类,例如
年代,类别,生成,范例,目标用户,标准化等。一个标准的语言甚至可以有许多用于不同目的的方言。本研究介绍了两套语言,并说明了在BERA语言设计中可以借用哪些功能。作为简要介绍,第一组包含JavaScript和ActionScript脚本语言,以便审查它们的有效性和可扩展性根据目标对象的扩展而定。第二组是Processing 语言,它是基于Java的特定于域的语言之一,以便推测
它是如何设计的,以减轻用户和开发人员的困难。这些语言在某些方面彼此相似,因为它们的创建是为了缩短传统的语言执行过程,例如编辑编译运行周期[Scott,2005]。

        特别是脚本语言旨在最终用户更快,更轻松地支持软件应用程序。
       基于ECMAScript的脚本语言ECMAScript是一种广泛使用的脚本语言,尤其适用于万维网。它通常用于众所周知的JavaScript和ActionScript方言中。它已由ECMA International在ECMA-262规范和ISO / IEC 16262中于1997年标准化[ECMA International,2010a; ECMA International,2010b; ISO 16262,2010 ]。依靠万维网联盟(W3C)[W3C,2010a]支持各种
Web标准和API,ECMAScript成为用户最流行的脚本语言之一。许多常见的Web浏览器都支持JavaScript进行处理客户端Web文档。大多数基于HTML [W3C,2010d]的网页开发人员熟悉JavaScript并知道如何处理Web文档元素,如文本字段,图像,按钮,选择框和其他各种Web表单。JavaScript最近越来越受欢迎,因为在Web 2.0 [ Web2.0,2010 ]中开发Web界面有许多现有的基于标准的新方法,例如XHTML [W3C,2010d; XHTML,2010],CSS [W3C,2010b],XML[W3C,2010e],AJAX [W3C,2010f],jQuery库[JQuery,2010]等。JavaScript于1996年通过Netscape网络浏览器[Netscape Communications,2010]推出。由于万维网的成功,JavaScript已经存在甚至对那些不熟悉计算机语言的人也很受欢迎。它是一种面向对象的脚本语言,可在客户端Web浏览器上运行,以访问应用程序中的对象。它受到许多语言的影响,其语法与其名称所暗示的Java语言类似,因此新手程序员更容易开发动态网页。它可以控制网页中的元素,如W3C的文档对象模型(DOM)[W3C,2010c],并使用户界面更具
交互性。图2.2显示了DOM的简化概述。它允许访问页面文档并通过脚本控制其元素。JavaScript使用点符号不仅可以访问文档的关联对象和属性,还可以直观地访问函数调用。这也是面向对象概念和实现的另一个重要的显着特征。实例化对象具有其属性以及其预定义的行为(例如,方法,函数调用)。最近很多面向对象商业编程语言通常接受它只是因为它写得更快更清晰[Lethbridge,2005]。例如,基于图2.2中的DOM,可以通过点符号:window.history访问导航历史记录,并且可以通过符号:window.document.forms.button访问表单中的按钮。以下JavaScript代码显示了 在页面加载后确定内部HTML内容
的未确定宽度
和高度时动态控制内部框架(HTML关键字:iframe)的宽度和高度的示例。
function 
reSize()

var objBody = ifrm.document.body; 
var objFrame= document.all [“ifrm”]; 
objFrame.style.height = objBody.scrollHeight + (objBody.offsetHeight - objBody.clientHeight)

objFrame.style.width =`100%' 

window.reSize(); 

图2.2。JavaScript目标对象的示例:文档对象模型(DOM)。

另一种着名的ECMAScripting语言是ActionScript。它也广泛用于网络,嵌入Flash电影剪辑[Gay,2010]。随着Adobe FlashTM(以前称为Macromedia Flash)[ActionScript,2010] 越来越多地在网络上使用,ActionScript在制作复杂电影时变得越来越流行。以下示例显示了一个非常简单的操作:如果用户释放鼠标,则影片剪辑将移动到第35帧并开始播放。ActionScript中的习语非常直观且用户友好。
on(release)

gotoAndPlay(35); 
}
这些示例代码是两种脚本语言的非常有限的片段。但是,它们证实了它们的有效性和易用性,这是开发特定领域语言时需要克服的主要问题。

        当JavaScript控制Web DOM时,ActionScript控制电影的帧和行为。它们非常有效且易于处理每个目标域中的特定问题。

        由于脚本语言和特定领域语言的性质意味着,基于ECMAScript的特定于域的语言影响了许多用于开发BERA语言的特性,特别是关于它们的抽象原理和处理目标对象的方法。BERA试图处理预定义的复杂模型和建筑信息模型。建筑信息模型,例如在IFC中实施的建筑信息模型,已经在其自己的方案中提供了结构良好的数据格式,但其内部数据结构对于临时用户而言通常是复杂且繁重的(参见并比较图3.1和3.2)。

      在BIM软件中,构建数据结构以明确的方式表示,但是用户倾向于以隐式方式处理它,因为建筑设计的本质。ECMAScript是一个先例,因为它支持基于以域为中心的用户定义名称的预定义和标准化对象模型。该方法的目标对象(DOM或Flash动画)是由这样的脚本语言管理不是对领域专家如此困难。

      例如,在JavaScript中,用户习惯于在高级别上使用目标对象模型。他们不需要理解文档模型,客户端浏览器,网络协议和Web服务器如何在低级别上以计算方式相互操作。


       基于Java的特定于域的语言特定于域的语言通常难以区分小型语言通用编程语言和脚本语言,如JavaScript。但是,它们通常出现在现代计算环境中。示例包括嵌入在Web编程语言中的HTML ,用于Web脚本语言的CSS [W3C,2010b],嵌入在许多其他编程语言中的Regular Expressions [The Open Group,1997] 等等。域特定语言通常具有由于其特定目的而变小的含义。 
由于Java [TIOBE Soft,2010]的普及,许多特定于域的语言是基于Java虚拟机(JVM)开发的,包括基于Java的DSL处理。
自2001年以来,Casey Reas 和Ben Fry在麻省理工学院媒体实验室[Processing,2010]开发了加工工艺。其目标用户是想要编程图像,动画和交互式图形的学生,艺术家,设计师,研究人员等。它起源于另一种领域特定语言,由John Maeda于1999年开发的[数字设计] (DBN)[MIT Media Lab,2010]。
        Processing语言是一种易于学习新手程序员的语言,但却创造了使用少量编程线的强大的2D和3D图形。由于其开放许可政策和易用性,即使对于开发人员来说,它也有很多方言被不同的域用户采用,例如Wiring和Arduino用于设计微控制器[Wiring,2010; Arduino,2010]和Fritzing支持产品的物理原型设计[Fritzing,2010]等.

         Processing有自己的用Java 开发的IDE(集成开发环境),它使用户可以根据自己的兴趣进行尝试。它使用Java的Applet库执行源代码并显示图形窗口,该库也可通过Web浏览器获得。总的来说,界面非常直观和简单。处理程序语法与Java非常相似,代码在内部翻译成纯Java代码,由JVM编译执行。这使得Processing语言非常易于移植和管理,因为它继承了Java环境带来的好处。图2.3显示了一个Processing程序的示例,该程序在执行时只显示矩形和三角形。该过程显示了语言在使用和开发中的易用性,因为大多数特定于域的语言都是这样做的。如图2.3所示,用户只需要键入简化的函数调用,如triangle(args)和rect(args),其中triangle和rect是“PApplet”Java中的预定义方法类文件(它们也来自Java 2D / AWT库),args是它们给定的参数(在这种情况下,所有都是2D坐标点或长度值)。用户输入代码被转换为图2.3中的(2)所示的纯Java代码,并立即由JVM执行。 


图2.3。处理语言执行的简化示例。
       这种基于Java的领域特定语言的体系结构在某些方面对BERA语言的开发有影响,特别是在实际实现中。然而,BERA语言还有另一个巨大的实施层:建筑模型平台及其与BERA语言的桥梁。正如2.2.1节所述,IFC是一个合理的目标构建模型,因为它是为了规范化BIM平台中嵌入的各种原生建筑模型。

       目前的BIM平台有支持IFC导入和导出的翻译器,以及IFC 与平台特定的原生建筑模型非常接近。因此,在本研究的范围内,建筑模型采用IFC格式,它基本上将BIM数据传输到BERA语言框架中。因此,需要用户可用的更简单和中性的建筑模型。用户可以轻松访问此模型,而不是访问平台相关或通常非常复杂的本机数据结构(包括IFC)。此外,即使它被简化和中和,它仍应提供高保真度以在特定问题域上有用。

       下一章将详细介绍该模型(BERA对象模型:BOM)。为了使它成为不同环境的可移植和可管理语言以及类似于基于Java的域特定语言的实现,本论文中的BERA 语言实现和应用程序利用了JVM 及其相关实用程序。 

        

---------------------------------------------------

译者注:

       专业领域语言,与通用语言的不同,表现在与具体数据模型的结合程度。通用语言,可以定义表达任何数据模型。领域语言,则与特定专业领域模型紧密结合,其实是专业领域模型的一套语言接口。

       专业领域语言典型样例:

             Javascript+DOM(操作html网页)   

             sql+二维表(操作关系数据库)

      专业领域语言的简单,表现在数据类型上,专业领域语言的类型有限,并与领域模型中的对象类型对应。

      专业领域语言的简单,还表现在计算方法上,专业领域语言的计算方法是专业的,并且计算的对象都是领域模型中的对角类型。

      

 

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园建设方案旨在通过融合先进技术,如物联网、大数据、人工智能等,实现校园的智能化管理与服务。政策的推动和技术的成熟为智慧校园的发展提供了基础。该方案强调了数据的重要性,提出通过数据的整合、开放和共享,构建产学研资用联动的服务体系,以促进校园的精细化治理。 智慧校园的核心建设任务包括数据标准体系和应用标准体系的建设,以及信息化安全与等级保护的实施。方案提出了一站式服务大厅和移动校园的概念,通过整合校内外资源,实现资源共享平台和产教融合就业平台的建设。此外,校园大脑的构建是实现智慧校园的关键,它涉及到数据中心化、数据资产化和数据业务化,以数据驱动业务自动化和智能化。 技术应用方面,方案提出了物联网平台、5G网络、人工智能平台等新技术的融合应用,以打造多场景融合的智慧校园大脑。这包括智慧教室、智慧实验室、智慧图书馆、智慧党建等多领域的智能化应用,旨在提升教学、科研、管理和服务的效率和质量。 在实施层面,智慧校园建设需要统筹规划和分步实施,确保项目的可行性和有效性。方案提出了主题梳理、场景梳理和数据梳理的方法,以及现有技术支持和项目分级的考虑,以指导智慧校园的建设。 最后,智慧校园建设的成功依赖于开放、协同和融合的组织建设。通过战略咨询、分步实施、生态建设和短板补充,可以构建符合学校特色的生态链,实现智慧校园的长远发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值