BIM建筑环境规则和分析(BERA)语言介绍(四)第三章 BERA语言设计

7 篇文章 0 订阅

          设计策略

          什么是好的语言设计?没有明确的答案,但许多研究人员 声称,新语言有重要因素可以获得接受和 长寿。就领域特定语言的主要目的而言,新语言 应首先以一种简单的方式有效地解决新问题[Mashey,2005]。在这 方面,BERA处理建筑模型,旨在评估其有效性和设计 性能。
          其次,新语言应该大大提高 现实世界复杂状态的抽象水平。至于BERA语言,这表示建筑设计的复杂性。BERA语言尝试以一种转换良好的计算方式处理复杂的建筑设计问题,这些问题通常被视为定性因素。此外,新语言应该能够处理当前语言很难或很难解决的新数据类型。

         BERA 语言使用自己的建筑对象抽象作为其基础数据结构,从给定的建筑模型中导出和计算。(参见3.2.BERA对象模型)
例如,BERA语言使用“Space”对象作为从“BuildingObject” 继承的包装数据类型(在面向对象的概念中的通用名称,超类)来自IfcSpace实体的“BuildingObject”及其子类“Space”),类似于由数组或用户定义数据集合组成的其他包装类的方式类型包括最近通用语言中的原始数据类型。

        类似地, 根据其域规则和分析,可以在BERA 对象内填充“Wall”对象或任何其他类型的构建对象。它是一种复合数据类型,包含构建环境规则和分析所需的多个属性。在“空间”的对象是在BERA语言最重要的数据类型的一个评估在实施建设循环和空间的编程规则本文的范围。
       在建筑师的设计过程中,建筑物通常在语义方面被认为是空间(房间)的集合。它通常是空间为住户命名或编号(例如房间名称或房间号码)而不是砖块,墙壁或楼板,即使它们也为建筑承包商命名/编号。这种面向对象的构建方法影响语言设计中的基本问题:其对象,属性和运算符。为了将BERA设计为领域特定的语言,已经在文献中的先例案例研究中建立了对这种“良好语言设计”问题的有用答案5 。 


        BERA语言设计策略

        BERA语言的设计和实现要求基本设计策略与其他类型的语言相同。

        本节提出了一个BERA语言设计策略通过综合介绍章节中描述的问题和从背景调查章节中吸取的经验教训。正如之前的所述,对语言及其设计的最终评价是一个问题的答案:“BERA 语言是否有良好的设计?” 将来自用户。计划开放测试,获得反馈 和支持安排。见第6章和附录D.
           语言设计中的主要关键词将是有效性和易用性。据他们介绍,在处理低级战略之前,高层次的设计策略总结如下。 

          1)允许新手程序员(如建筑师或设计师)的领域专家轻松学习和编写BERA语言。
          2)提供高级方法,轻松处理建筑物及其属性。
          3)启用语言以提供直观的建筑和空间对象为中心的标记/习语,而不是建立建模语言的词汇,关于应用程序的范围。例如直观的单词“Space”而不是IFC中的“IfcSpace”,SMC中的“SSpace”,Autodesk Revit中的“Room”或“BSpace”。
          4)允许用户在BERA语言定义中导入和导出用于构建空间类型定义和/或预定义规则的外部数据集。在这些情况下,BERA用户扮演程序执行者的角色,他/她根据他/她自己的建筑模型6 上的预编程规则语句执行规则检查。 

           BERA语言是用户在使用给定建筑模型时与计算机交谈的另一种方式。这就是为什么易用性是一个重要的关键词; 但是,如果BERA语言用户拥有最大的控制权,那将会好得多。而且,就此而言语言可扩展性,是一种开放式和可管理的BERA特定数据结构。这解释了为什么关键字有效性也很重要。考虑到6作为BERA语言的预览,这解释了 在当前BERA语言组件中设计和实现“BERA参考”语句(参见4.1和4.2节)。 需要预先定义几个特定于建筑类型或特定于域的数据集,以处理与 建筑类型相关或特定于域的问题[JK Lee,2010b],并且可以轻松地通过 “BERA参考”声明处理它们。作者意识到这在 实际项目中非常重要。

         在设计阶段考虑所有这些方面,应该建立设计策略。下面描述了一种低级设计策略。本论文的每一部分都将涉及它们,结论章节将对它们进行回顾。
          1)为BERA语言定义开放式对象模型。域主要由构建对象,构建对象组,对象关系以及它们的详细属性组成。这些应该是可扩展的。
          2)BERA对象模型上的操作员应该易于使用。它们不仅是基本的运算符,例如检索对象的单个属性,还有复杂的操作,例如a的动态实例化。对象组,特殊扩展结构,例如循环路径,邻接和距离计算等
          3)为了定义“良好”的BERA对象模型,对于不同的建筑物信息模型的一定程度的抽象是一致且通常定义的。IFC或本机构建模型的数据结构通常在低级实现方面进行不同的管理,但BERA用户应以通用方式访问它们。这是BERA语言的便携性和易用性的重要方面。
         4)即使本研究主要关注空间要素,BERA对象模型也应该能够支持许多其他类型的建筑物。这个意味着开发一个开放式和可管理的BERA对象模型。
         5)处理BERA对象模型需要更高级别的集合。它们在BERA执行级别动态实例化,并且需要支持其他操作。一个例子是Java [ArrayList,2010]中的类ArrayList,它是一个有序集合。
        6)BERA语言应该像其他通用语言一样支持高级程序的操作语句,例如逻辑运算,逻辑值,递归,自动迭代,自动转换,否定,继承,多态和等等,以及基本的代数运算。这些应该是BERA语言的基本结构,以便处理可以定义和检查的任意复杂规则。

         BERA的抽象:BERA对象模型
       

         在开发特定领域语言时要考虑的重要因素之一是为问题提供高保真度。不仅需要解决新的特定领域问题的能力,而且强烈要求提高目标要素抽象水平的实质能力[Mashey,2005; Parr,2008]。 

        BERA语言与建筑信息模型有很强的联系,例如IFC。给定的建筑模型总是在其自己的数据结构中定义:
        来自本地建筑模型的本地和部分开放数据结构,来自IFC的开放和中性数据结构等。本节描述如何从这些现有建筑模型构建抽象模型,特别是来自IFC,名为BERA对象模型(BOM)。

        在本研究的范围和初始实施目标中,我们假设给定的建筑模型是IFC。即使BERA用户仅使用BOM,面向IFC的数据结构仍然需要以BERA中的低级实现作为其后端来处理。一些语言设计中抽象是一个重要的过程语言关键字标记和语法将从此模型派生。换句话说,前端用户将使用这种简单但隐式的抽象,但仍需要在实现阶段访问和使用复杂但明确的IFC数据结构(或主机本机对象模型)。

         BERA语言。关于 的问题这两个不同对象模型的分辨率将在以下实现章节中描述。BOM的定义是开放式的,作者意识到
定义通用和有价值的BOM是另一个挑战,因为它越来越详细。在实现范围内,本文描述了关注空间对象以及其他建筑对象的BOM结构。(参见5.6.2 可扩展BERA对象模型)
   

         构建环境规则


         在处理构建模型之前,本节简要介绍什么是“构建环境规则”及其与构建元素的关系。BERA字面意思是对建筑环境规则的分析。正如前几章所介绍的那样,BERA语言试图定义规则并检查它们。一般而言,特别是在本研究的范围内,设计规则是最佳实践,所有最佳实践均以设计指南或法规的形式编写,如医院设计指南[AIA,1997],美国法院设计指南[USCDG] ,1997年,2007年]。它们是设计评审的“规则”。

         这些最佳实践通常是特定于建筑类型的,并且在特定的绑定代码或规则中存在另一种类型的规则。其他规则称为代码。代码包含生命安全要求,例如消防代码在发生火灾时[NY,2004,OSHA,2010]规定某些出口路径相关的条件,以及无障碍要求,如来自无障碍设计指南的ADA相关代码[US Access Board,2002; 2006; 它们因各种要求而异,作者和他的团队制定了相关的设计规则和要求,主要侧重于建立流通和空间规划问题。

        本节简要介绍如何在计算机可读35中表示这些规则结构使用一些示例规则。此外,6.2节将详细介绍此问题。更详细的问题在[Eastman等,2009b; Lee,J等,2010]。
        以下是美国法院设计中用自然语言表示的规则的一些实际示例。 - 区法官审判室的面积为2,400 NSF7。[USCDG,007(表
4.3)] - 地区法官的钱伯斯套房的面积要求总计为6,000 USF8。
   

     (X市法院的具体要求)
        - 审判陪审团的套房可通过限制性的流通走廊进入。[USCDG,1997(第3-14页)] 
        - 评委的会议室必须可以从评委会议室进入通过限制流通或受控接收区域。[USCDG,1997(pp 6-11)] 

       乔治亚理工学院团队开发了关于美国法院大楼建筑流通和空间计划审查问题的自动化建筑设计审查系统[Eastman等,2009b; GSA-GT,2010]。目前,上述规则使用两个不同的程序,一个用于空间区域验证,另一个用于
循环和安全检查[Eastman等,2009a; Eastman等,2010b; Lee J等,2010]。因为这些规则不是计算机可理解的语句,所以我们
将它们翻译成某种结构化形式并将它们放入参数化表中。

       参数化表定义了规则所需的构建元素,对象或属性的类型,并且它包含几个不同的值。例如,上述规则可以用伪程序代码翻译如下:
       - 空间(“地区法官法庭”),NET_area = 2400 7 NET Square Feet。8可用的方形脚。 
       - SpaceGroup(“地区法官的钱伯斯套房”),Usable_area = 6000 
       - 路径(“审判陪审团”,“审判陪审团”),安全= “限制” 
       - (路径(空间(“评委会议室”),空间(“评委会议室”),安全=“限制”) 或(路径(空间(“评委会议室”),空间(“评委
会议室”)),mustHaveSpace =空间(“受控接待区”) )

      如示例所示,即使它们只是现有规则的片段,规则也基本上处理可能在每个空间对象或空间对象组上分配的对象属性。在这些示例中,对象是“空间”或“路径”两个“空间”对象作为其起始和目标空间。目标对象可以用带括号的给定名称表示,并且其要求和/或规则可以由条件或条件集表示。在将规则分解为原子级别之后的底层,这个“条件”基本上由一个操作组成,该操作由左操作数,右操作数,它们的操作符和result9组成。最后一个示例还显示了各种空间属性,其规则中带有连接“OR”语句。为了解决规则的复杂性,在语言设计阶段应该认真考虑一些功能如下: 
         1)如何提供轻松访问BERA对象模型定义的所有对象属性, 
         2)如何在计算机可读和可执行操作中明确有效地表示它们的要求, 9这类似于ALU(算术逻辑)的概念单位)[Hwang,2010]是一种 执行算术和逻辑运算的数字电路,是计算中的基本操作之一。
         3)如何允许富谓词表达各种规则语句,例如 连词“AND”,“OR”和一系列操作的否定“NOT”, 
         4)如何处理必须从中派生的新属性其他,以及
         5)如何生成可以轻松导出复杂属性的新结构。

         第三个语句还包括逻辑运算,逻辑值,递归,自动迭代,自动转换,否定,继承,多态等等,作为最近开发和广泛使用的语言的适应性特征。特别是,点符号支持对属性的任何相关访问,并具有稍后解决的量化问题部分。本章中的常规构造语句定义将定义第二部分。这样的条件语句和丰富的谓词将使BERA语言在处理构建对象属性和规则的能力方面更具表现力。此外,作为一种可扩展的语言,BERA语言还需要处理必须从其他人派生或计算的其他对象及其属性。(参见5.6 BERA语言可扩展性)

       构建以模型为中心的建筑物抽象

       截至2010年,IFC的官方最新版本为2X3 TC1。官方2X4 版本正在开发中,用于公开发布[buildingSMART,2010]。目前
version共有653个实体,涵盖建筑物,几何,关系等。根据其定义和层次结构,墙在树下有一个特定的跟踪:IfcRoot IfcObjectDefinition IfcObject IfcProduct IfcElement IfcBuildingElement IfcWall。图3.1描述了的简化图 表示IFC结构中的建筑元素。它是计算机的明确且明确定义的数据结构,而不是人类。图中省略了许多实体。突出显示的对象是需要在BERA语言范围内处理的对象的子集。
        图3.1。建筑元素的简化IFC实体层次结构。

         BERA建筑的以用户为中心的抽象


         BERA语言的目标用户是有兴趣审查建筑模型的领域专家,而不是熟悉IFC数据结构的计算机程序员,如图3.1。他们是建筑师,工程师,主管,经理或业主。我们为这39个建筑物提出了一个抽象的建筑模型领域专家,如图3.2所示。理解起来相对容易得多,而图3.1中的IFC结构在层次结构和关系方面难以理解。图3.2。BERA用户建筑模型的抽象(以BERA为中心)。 建筑物包含多个层次结构中的各种对象。在为各种目的的建筑物的数字表示建立产品建模领域已经做了许多努力[Eastman,1999]。

        本研究的主要目标不是定义最佳建筑数据模型,而是为了实现BERA语言可用性的直观抽象建筑,类似于Document 
JavaScript语言的对象模型[W3C,2010c]。图3.3显示了初始研究中使用的BERA对象模型的子集范围。建筑物有一层或多层,地板有一个或多个空间。一个空间有零个或多个楼梯或电梯作为循环设施,它可以有零个或多个门10。楼梯和电梯对象被认为是空间循环类型的决定因素。这些对象的详细属性将在以下章节中描述。
          还有一个名为“ SpaceGroup ” 的重要对象。从技术上讲,它是“BuildingObject” 的子类,但可动态实例化以表示任何组或
建筑物的分类(在这种情况下,它们都是空间)。“Floor”是SpaceGroup的另一种情况,但是在建筑物建模时明确定义并静态确定。作为特定于域的属性的示例,“部门”,“BOMA空间类别”[ANSI / BOMA,1996]或“防火安全区域”可以代表用于特定目的的一组空间对象。它们很重要,因为它们为空间计划审查任务确定每个空间的其他相关属性。

         BERA定义了一个动态可实例化的对象SpaceGroup。在IFC定义中,如图3.1所示,ifcZone用于类似目的和模型视图定义(MVD)试图使其成为标准[MVD,2010],但BERA认为它属于此模型中的SpaceGroup。可以在执行中实例化任何空间组或分类。BERA试图基于这些动态可实现的对象实现各种类型的空间分类。类似地,关于建筑物循环,可以使用一系列空间物体在该动态分类中定义两个空间之间的路径。以下章节将介绍详细的实施问题。

       理论上,一个空间必须至少有一扇门,但这项研究的范围涉及初步的概念设计,其中内墙没有在这个细节层面明确定义。空间对象是在没有内部墙的情况下定义的,因此是零门空间对象的条件。而且,空间和楼梯/电梯之间的这种关系并不意味着楼梯/电梯总是从属于空间物体。

      BERA对象模型设计,在本研究范围内。BERA用户可以在实际程序中利用这个BERA对象模型。例如,如果存在名为“department”的空间组,并且其名称和关联属性在IfcClassification中定义,则BERA用户可以检索实例化空间对象空间的名称,如下所示:
        - space.department 
       但是,对于此实现代码,BERA可以将其转换为以IFC为中心的语句,如下所示(参见图3.1):
       - space.ifcRelAssociatesClassification.ifcClassificationReference.ifcLabel.getString()
       在实现部分中,跟踪IFC结构可以用于替代形式,但这个基于点符号的示例描述了BERA对象模型如何直观且易于用于BERA用户。他们只需要知道前面的陈述。详细信息将在以下章节和附录中介绍。
        

        与作为动态可实例化对象的SpaceGroup类似,BERA对象
模型提供另一个对象结构11。如图3.2所示,可以通过“结构”对象以动态方式对物理构建元素进行分组和实例化。这在本研究中是原始开发的,但它明确声称可以针对不同类型的规则和分析扩展BERA 。

         BERA语言设计
         本节描述了BERA语言的词法和句法设计策略,该策略解决了命名和样式的基本规则。如前几节所述,设计策略旨在获得有效性和 易用性语言语义学[Liu,2003]。BERA语言定义和实现将在以下部分中介绍。 
         

          词汇设计
          本节描述将在BERA语言中使用的基本令牌和习语的词汇设计风格。基本上,灵活性是命名的关键之一,但基本策略可以如下: 
          1)这里的关键是一般语句中的简化主题 - 动词 - 对象(SVO)结构,如通常遵循的通用计算机语言。 它可以是“汇编”,“元素”或只是“对象组”而不是“结构”。在实施范围内 ,可实例化的建筑元素也是开放式的。
          2)BERA语言假定S是BERA框架或用户; 因此,VO结构将用于BERA 语言中的基本形式的习语。
          3)为了反映BERA中的话语世界,BERA对象模型(BOM)中的基本标记将是基本词典。
          4)对象名称将以大写字母开头,属性将以小写字母开头,类似于Java / C约定。

           词汇设计和口头标记可归纳如下:(参见图4.2和4.3了解实际定义和实际实现)
           1)构建BOM定义中定义的元素对象: 建筑,地板,空间,SpaceGroup,路径等,如BOM定义。 
           2)表示BOM属性和关系:点符号
           3)实例化用户定义的规则:规则
           4)获取用户定义的对象:get(arguments)
           5)VO结构也可以预先定义为基本方法如下:getSpace,getFloor,getPath等.

           句法设计
           本节简要介绍BERA语言的句法设计风格,作为语言定义和实现的预览。BERA 语法的详细语法将在下一章中定义:BERA语言定义。(形式语法定义在附录C:BERA语言语法中描述。)点符号将基本上用于跟踪对象和检索属性,如一般面向对象的语言(Java,JavaScript,C等)。BERA中的基本语句类型是构建对象和规则。反映典型的类,方法或用户变量定义样式,用户定义的对象可以表示如下: 
ObjectType name(args){ 
Statement; 
... 

- 其中“ObjectType”,“name”,“args”和“Statement”是非终端令牌。 

 BERA示例代码段可以表示如下:
Space myOfficeSpaces(Space ss){ 
ss.name = “office”; 
ss.Floor.height > 12; 

例如,非末端令牌对象类型可以是“空”或“在BOM词典中定义,名称可以是用户定义的变量名称,而Statement将以点符号方式访问BOM对象和属性。诸如ss.name =“office”之类的陈述; 是过滤选择了哪些对象实例的逻辑条件。这些条件将被大括号括起来。对于规则定义,ObjectType将为“Rule”,并且给定的参数args可以在括号中表示。这是实例化的基本形式,但BERA语言语法也
为用户定义了一些较短的形式:类似于所谓的语法糖。例如,只有基于名称字符串的定义将是用户定义的BOM 的最常用定义,如下所示:
Spacename = getSpace(“ space_name_strings ”); 

其中
“ name ”和“ space_name_strings ”是非终端令牌,“getSpace”是通过名称收集空间对象的语法糖方法。在这种情况下,用户定义的对象可以通过单行语句实例化。一个例子可以表示如下: 
Space offices = getSpace(“office”);. 
在此示例中,运算符“=”用于赋值运算符,但在前一示例中,它是相等的运算符。它与Java及其方言(所谓的C 族语言)相同。如前一章所述,Java在过去十年中很受欢迎,目的。关于句法设计的问题应该始终是开放的,以便进化。

         本研究侧重于语言的有效性和易用性,而不是新的语法风格,因此BERA语言语法将遵循现有的通用语言风格,如Java的方言。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值