Enrich Data – Introduction
Raw BIM data is not complete. This is NOT because the data itself is bad or the model authors made bad job. The data is just raw and it needs to be refined. This has always been the case. Architects and engineers don’t produce all the data needed to run a construction. BIM doesn’t change that.
Ok. So what are your options? You could process the data in each function and related application separately, mostly manually and case-by-case. This wastes time, introduces errors, and limits large-scale use of the data.
The good news is that there is a better and more efficient way. You can complete the data with centralized and automated data processing. This way, the process is efficient, and everybody in the downstream works with the same data. Analysis, reporting, and visualizations can be automated.

The enrichment step is where BIM data processing gets exciting and fun. This is where data processing starts adding exponential value and opens up endless use cases for your BIM data.
Remember that Simplebim is an open system. All the data enriched with Simplebim can be exported back to IFC or as data tables to CSV or Excel files.
Let’s go through all the different ways enrich model data: Add Data from Outer Source, Use Formulas, Calculate Quantities, Split Objects, Organize Data Based on Locations, Derive Objects, Create and Use Connections, Colorize Objects and Create Foreign Keys.
Add Data from Outer Source
The common way to enrich data is to add new information to your models from external sources. The data can be linked or it can be merged to the models. There are many use cases for this, for example:
- Add property data about doors or HVAC products.
- Add for example floor material, tenant, or subcontractor information for rooms.
- Add data to support further enrichment, like prices for cost calculations or work performance for work time estimations.
- Add analysis results, like indoor climate and energy calculation results.
All you need is some way to connect the data from an external source and your model data. You need a key that can be used for mapping the data together. In a proper data processing workflow, the keys can be automatically generated based on already consistently structured and normalized data. The rest is then easy, and can be done fully automatically with dataflows. Currently, in Simplebim, the external data can be merged into the model from Excel files.
Use Formulas

Using formulas to derive new measure properties to the models is a powerful way to enrich data. This can be for example:
- Calculating specific kinds of weights to the objects based on their volumes.
- Derive new identifier based on multiple properties.
- Or even calculating cost and working hours to the model objects based on their quantities.
Another common data processing task using formulas is to aggregate data. This can be for example:
- Count of specific types of objects within a room.
- Sum of volumes for specific types of objects within groups.
- Total costs for a cost items.
- Working hours for production tasks.
- Finding minimum or maximum planned dates assigned to objects.
- Even using logic to find answers to your questions in an automated way. Is there a cooling beam in each meeting room?
Calculate Quantities

Quantities are one of the key data points in construction. They are used in almost every downstream task.
Many model author tools calculate quantities, but they do it inconsistent way. Quantities from one model author tools can have a different logic than quantities from another. With Simplebim the quantities are always calculated with the same logic, no matter where the model comes from.
You can enrich model data with dimensions, areas and volumes. The quantities can be calculated to assemblies and parts. You can calculate any quantity to any object class. For example, if there’s a building element proxy object in the model, which represent a wall, you can calculate wall quantities to it. Unlike in most of the other BIM tools.
Additionally, all the same consistent quantities can also be calculated for the derived objects. Learn more about them below.
Organize Data Based on Locations

In construction, everything happens in a location. You need to organize your objects and data locations, for example, for:
- Cost estimation
- Production planning and scheduling
- Tendering
- Procurement
- Logistics
- Design coordination
- And so on…
The location information is not in the models you get from the designer by default, nor they should be. It would be madness to try to guide all different designers to add this information to the models. It is not information they produce. They don’t make these decisions. And the work would be done distributed, which is would be very inefficient. Organizing the data to locations in a centralized and automated way is the only rational and most efficient way to do this.
In Simplebim the locations are described by volumetric 3D objects. You can create the prisms either in Simplebim or some other application. You create them once and the same ones can then be used for organizing model data from all disciplines based on the locations. Or any model updates.
In practice, locations create a connection between the object representing locations and the building elements inside them. This connection can be used for copying and setting any information to the building elements based on the related location. Simplest way to use the connection is to copy the location identifiers like Section A, Building Storey 1 from the prism to the building elements.
There can be multiple ‘location systems’ in the models, for example…
- Buildings
- Sections
- Building storeys
- Concrete pours
- Apartments
- Spaces
- Takt areas
- With infra models the locations could be segments of the road or railways.
Split Objects
Designers don’t always model the building elements, the way that you need them, or the way they are built. There are several reasons why you would want to split object geometries to add resolution to your data.
- The most common reason to use splitting is to define locations for the objects.
- You might want to split cast-in-place objects based on their pours.
- Sometimes you want to isolate a geometric region from the model and only share that.
Combining splitting with other data processing techniques, like trimming, opens up a lot of possibilities. You could for example automatically create a separate sub-model of each section of the building.
In practice, the regions you want to use for splitting are defined with volumetric objects, just like for organizing data based on locations. The building elements that are placed inside multiple locations can be split from the borders. New objects are created for the split objects. They inherit all the properties from their parent. New quantities can be calculated for them. Many times the splitting also sets a location information for the objects.
Simplebim has industry leading tools for splitting the objects. The whole process can be automated with dataflows.
Derive Objects
One revolutionary way to enrich BIM data is to derive new objects and data to the models based on objects from the original, or a combination of original models.
Deriving new objects means adding new object to the models, based on the existing objects and their data. The derived objects are just like any original objects. They have geometry, properties and all other needed data structures. And they can of course be exported to IFC together with the original objects.
Surfaces
You can automatically generate new objects based on the object geometry’s surfaces. Top, bottom, sides, and even openings.
So why would you want to do this? Because not all objects that are needed, for example, in production are modeled by the designers.
A classic example of this is scheduling. Any given building element has multiple tasks associated with it, but the model only has one object to represent it. For example, a cast-in-place footings. There’s formwork, which usually doesn’t have a dedicated object in the model. There is reinforcement, which can, but many times and many states of the project, don’t have dedicated objects for it. How can one object, or data point, be many in the scheduling? Well, it cannot not. Not in an easy-to-manage way, anyway.
The very simple solution to this is to derive an object for each task from the original one.

Space Surfaces

Deriving new objects based on space surfaces and their bounding objects is an interesting possibility. The geometry is created based on the common area of the surface of the space and the surfaces of the bounding objects.
The derived surface objects not only have geometry, but they also have a connection to their parent objects, both the space and the building element. Through this connection, the space surfaces can inherit any information from the parents. This enables you to fully use the new objects in quantity take-off or the internal works, or in production planning and scheduling, both as a basis for the task estimation and 4D simulations.
Overlapping Objects

How about a combination of objects? From the different models? We can create derived objects also from the interface of these objects. Pretty cool.
Let’s take, for example, a duct from an HVAC model and a non-load-bearing wall from an architectural model. These objects don’t know anything about each other, because they were created in totally different model author tools. Not even if you place them on top of each other in a model viewer.
In Simplebim, you can not simply clash these two objects together and create a dedicated derived penetration object. The penetration also knows which wall and its properties it is penetrating. It also knows what kind of duct is causing the penetration, where it is located. How many are there, and which kind, and so on…
Linear Objects
So far we have been talking only about surface and volumetric derived objects. Derived objects can of course be also created based on the dimensions of the parent objects. Just like any other derived object, they can inherit any information from their parent.
Linear objects could be used, for example, to represent the eaves of the model, or any other secondary linear objects, which are often missing from the models, but are needed in the QTO or production planning.
Duplicates
Adding copy of an object doesn’t sound like a good idea. Usually we want to avoid that. But what is there is simply some objects missing and the model author is not available or willing to add them? You can copy objects. They can inherit the properties of their parent. You can change the properties of course and for example the placement of the objects. And there you have it. Again an enrich model with all you need for your downstream use case.
Create and Use Connections Between Building Elements

One of the most powerful ways to enrich BIM data is to create and use connections between building elements.
There are many kinds of connections and relations in BIM models, and there are many ways to use them. Some connections are already created in the model author tools. The walls might have a connection to the adjacent walls, or ducts from a ventilation system might be connected. These connections are between building elements of the same model.
Even more powerful connections can be created between building elements from multiple models from different disciplines. The easiest way to create the connections based on the geometric proxity of the objects. Simplebim has a very powerful tool for doing this.
Once the connections have been created there are many ways to use them to enrich model data, and countless use cases for this kind of enriched data. The connections can be used for message passing, in other words to exchange or copying data between the connected objects. They can also be used for organizing the data in to groups.
Enriching data with the help of connections opens up a whole new range of practical applications for BIM data. Here are some use cases we have come across so far:
- Find the number and type of electrical sockets for each room.
- Find doors for walls for internal walls for fire rating checks or enrichment.
- Find windows for precast elements.
- Find spaces, that are served by an HVAC system.
- Match colours of sprinklers and ceilings.
- Calculate the area of windows and doors for rooms.
- Check that the hot and cold water pipes are not too close to each other.
- Find and derive new objects for HVAC objects, which penetrate internal walls.
This is just the beginning.
Colorize Objects

Coloring objects might seem a trivial thing compared to all the other enrichment possibilities. However it can be a very powerful tool with BIM.
The colors can be of course used inside Simplebim for data exploration and visualization. More importantly, modified colors can be exported back to IFC and used in the downstream applications. Maybe you are required to set the colors in a specific way, or just want the colors to be consistent, or maybe there is a specific thing you want to communicate. Finally, it is a good idea to give derived objects a distinct color for further use.
Create Foreign Keys to Support Data Modelling
Creating foreign keys based on the raw data enables you to automatically connect BIM data to other data sources. In real-life data usage, you rarely use only one data source.
In data science, connecting multiple data sources (or tables) together is called data modelling. If you need to connect BIM data to other data sources, and you want to do it in an automated way. The standard way of doing this is with the help of so-called foreign keys.
The idea is that the BIM data and the other data source need to have some data point, a key, that explicitly connects them together. With Simplebim dataflows, you can generate these keys in an automated and consistent way. While this might not be the first data processing action you will do, it will open up a whole new set of use cases for BIM-based data. It will connect BIM data to other industry data sources. Or, like some companies like to call it, to the data fabric.
Next Steps
If you read the data processing documentation in order, you now have a good idea of data exploring, structuring, cleaning and enriching. The next step in a basic data processing workflow is data validation. Read more about it here.