This project aims to implement a computer programming language: the Building Environment Rule and Analysis (BERA) Language on top of the Autodesk BIM authoring tool - Revit. BERA Language has been designed as a high-level domain-specific programming language for handling building models so that users can define and check building design rules in an easy and intuitive way. The initial version of BERA Language and its Tool has been developed for a neutral data exchange format - IFC (Industry Foundation Classes) using an IFC viewer and rule checking software - Solibri Model Checker (SMC), based on the research and development for my PhD dissertation. Target users of this language are people working in the area of building information modeling (BIM) for modeling, rule checking or design analysis purposes in the AEC-FM (Architecture, Engineering, Construction, and Facility Management) industry. This project aims to facilitate enhanced object querying and rule checking of Autodesk Revit models as an added value on top of its BIM authoring capability.
- This project is not about creating design geometry, but about using BIM - BERA Language is Building Environment Rule and Analysis Language.
- Focus: design review, analysis and rule checking issues in building design - One of promising directions of BIM Application.
- BERA Language is:
- A Domain-specific Computer Programming Language
- A new way to interact with given BIM models
- Open-ended: Running on multi-platforms
- Demonstrate it as a Revit Plug-in
Evolve into BIM
How an "Office" could be represented by AutoCAD and Revit?
AutoCAD mechanically defines this room using a 2D geometry - "office" labeled polygon. Some more data can be added on it - for example, a AutoCAD layer named "Level 1" represents this is in Level 1. However they are still separated "label texts" mechanically associated with their geometry shapes.
This is a room instance in Autodesk Revit. Its room name is "office" - not a label on it. A label can be differently tagged. What's different between this room instance and the "office" labeled polygon? This is one of building elements - in this case, Revit Room object. It contains multiple data such as its department name, space number, associated floor. When a user assigns this room on the building model, amount of behind data would be populated in automation. Its net area, height, and volume is a good example. What are behind its data? Revit also computes its relations. Its associated Wall objects, doors, or windows are good examples. If you place a door object on this room, you just made not only its decently pre-defined 3D door's geometry, but also created a spatial network to other rooms.
These are something beyond data - that is why we call this is building information modeling. Revit did all these in automation.
Even Revit supports amount of more information on this room defined by you - ANSI/BOMA category on this space, some US GSA specific data, security information on this room are good examples.
So, what is next?
This project tackles one of tasks you can do using this BIM model.
A new way to interact with given BIM models
We need a good "remote control" for handling given building information models.
BERA Language could be an intermediate interface to handle such tasks before we got such a remote control - What if we have a query language for this BIM model?
What if such language can retrieve and visualize behind information like spatial network?
If there is a good way to populate such behind information to users for further tasks - this is one good ways to use building information.
Of course, at last, we need to define our own rules and evaluate them via this language interface.
The rules could be spatial program rules, circulation rules, and so on.
How to deal with "Rules"?
Here are very tiny subset of rules, derived from the US Courthouse Design Guides and AIA Hospital Design Guide.
First one is the simplest one. District judge's courtroom should be 2400 NSF.
But the second one shows a little bit complex rule. District Judge's Chamber does not mean a single space - it contains a lot of sub spaces such as Judge chamber, clerk office, judge's rest room, vestibule, judge's conference room, and so on. Even harder one is its area - usable square feet is differently calculated from the NET area. It means that the sum of all those spaces NET area is not enough to calculate this USF. A language-driven method can deal with this complex rules thanks to its expressive query-language and rule-language features.
The other rule examples show you the spatial circulation related rules. How to evaluate the trial jury suites are accessible only through restricted corridors, rather than public corridors?
Fortunately, BIM model can distinguish given information as follows: building objects and their properties. In BERA Language, BERA Object Model (BOM) handles this issue.
How BERA Language describes building objects and properties?
The language syntax style is a subset of the most popular computer languages such as Java or C#.
Static building object means the entire set of the building elements defined in the given building model.
Dynamic building object means the object of interest - if you want to collect all office spaces for checking a specific office rules, you can collect them and define your variable name myOffice.
How to represent their properties and rules? Dot notations here will show you some examples. They also can represent some series of conditions - in other words, rules. Rules are series of certain conditions. Moreover, dot-notation simply represents its object relations.
Extensibility: BERA will be runnable on several BIM platforms
BERA Language Tool on an IFC-based platform (Solibri Model Checker) has been developed by the author - page is under the development
BERA + Revit Demo Videos
Autodesk IDEA Studio link
Georgia Tech Digital Building Laboratory link
Chuck Eastman, Director, Digital Building Lab email
Jin Kook Lee, Georgia Tech email