Skip to content
BIMpedia
Chapter 1 · Lesson 1 of 2Topic: Data and dashboards

The model is a database

Behind the geometry, a model is a table of things with properties. Seeing it that way, and keeping its values consistent, is the start of every automation, check and dashboard.

3 min read3 quiz questions
Skip to the quiz
  • Watch out
  • What it costs
  • Experienced readers
  • Remember
  • In BIMpedia
Adadata and automation lead
Even if you do this every day, watch for this: Allowed values. Teams agree which properties are required but not which values are allowed, so every model has its own spelling of the same thing.

We usually look at models as shapes. Scripts, dashboards and AI assistants see them differently: as a long table where each element is a row with a type, a location and properties. Every question ("how many doors on Level 3 have no fire rating?") is a filter and a count on that table. If the table is tidy, the answer is instant. If it isn't, every tool gives the wrong answer.

The table behind the model

ElementCategoryTypeLevelZoneFireRating
3cUkl…DoorD1 900×2100L03ZAEI 30
1Gq8x…DoorD1 900×2100Level 3ZA(blank)
0wa6Q…DoorD2 1200×2100L03Zone BEI 60

Three doors, three problems: a level written two ways, a zone written two ways, a missing value. A person reading the model barely notices. A filter, a 4D rule or a quantity export silently gets them wrong.

Basics

A property (or parameter) is a named value on an element: FireRating = EI 30. Software groups properties into property sets (in IFC, for example Pset_DoorCommon). Some properties are typed in by people; others are calculated (area, volume).

Consistent beats complete

A model where every door has a level written the same way is more useful than one where doors have twenty properties spelled three ways. Agree allowed values for the properties people filter by:

PropertyAllowed values (example)
LevelB1, L00, L01, L02…
ZoneZA, ZB, ZC
SystemUse the project's system list
StatusExisting, New, Demolish

See it as a table

Before any script or dashboard, export elements and their properties to a spreadsheet. Sort by each column. Gaps, duplicates and inconsistent spellings jump out in minutes.

Adadata and automation lead
Your turn. Give it about 15 min and work it out on your own before you open the model answer: that is where it sticks.
Exercise: Query a messy export 15 min

An export of doors gives:

DoorLevelFireRating
D-001L01EI 30
D-002Level 1(blank)
D-003L01EI30
D-004L02EI 60
D-00502(blank)
D-006L02n/a
D-007L02EI 30
D-008Level 2EI 60
  1. Clean the values: what are the allowed values you'd use for Level and FireRating?
  2. After cleaning, how many doors per level have no valid fire rating?
  3. Which of these problems would you fix in the model, and which with a check?

Key takeaways

  • Every element is a row: a type, a location and properties; every question about the model is a query on that table.
  • Consistent values matter more than more values: 'L03', 'Level 3' and '03' break every filter.
  • Agree allowed values (lists) for the properties people filter by: level, zone, system, status, classification.
  • Export to a spreadsheet early to see the data the way scripts and dashboards will.

Your notes

Related tool

Export element properties from an IFC model to a formatted Excel schedule.

Open IFC to Excel Schedules →

Check yourself

3 questions · 2 right to complete
  1. 1. A filter for Level = 'L03' misses half the doors on Level 3. Why?
  2. 2. What's the most useful first step before automating anything?
  3. 3. Which properties most need a fixed list of allowed values?
0 of 3 answered