Property sets: standard sets, custom sets and empty values
Summary
Properties are where the facts about an object live: its fire rating, whether it is load-bearing, its manufacturer, its maintenance interval. In IFC they are grouped in property sets, and measured quantities such as area, length and volume in quantity sets. When they are empty, filler or named in a way only the author understands, whoever needs the data next has to collect it again.
The report asks four questions about properties: how many real facts each object carries, whether their meaning is defined, whether the standard sets follow the IFC standard, and how much is empty or filler. You meet the answers on the Information and Consistency pages.
Standard sets and custom sets
buildingSMART, the body behind IFC, publishes standard property sets with names that start with Pset_, such as Pset_WallCommon, and standard quantity sets that start with Qto_. Each standard set lists its allowed properties, their data types and the classes of element it applies to.
Custom sets, with names chosen by the author or the client, are allowed and often hold the most valuable data. Their meaning is clear to software only when each property is linked to a definition on the web (a URI), for example in the buildingSMART Data Dictionary (bSDD). The report counts a property as linked when its specification or description field holds an address starting with http://, https:// or urn:.
A set only counts as standard when its name appears in the official list for the file's IFC version (IFC2X3, IFC4 or IFC4.3) and it applies to that kind of element. A set called Pset_ something that is not in the list is not standard, whatever its name suggests.
Where you meet it in the report
| Page | Card | What it shows |
|---|---|---|
| Information | Coverage per class | Per IFC class, effective facts per element next to the raw number of properties. The filter No information lists classes without facts. |
| Information | What kind of properties | All property slots by the role of their values (see below). |
| Information | Standard Property & Quantity Sets Compliance | Compliance score, standard sets evaluated, total violations, custom sets, and a table of each violation. |
| Consistency | Property values: signal vs. noise | All property values in the file as informative, disguised missing or empty, plus the share of values repeated across elements. |
| Consistency | Where empty properties sit | The ten classes with the most empty or placeholder slots. Grey means a property defined on the class but always empty or a placeholder. |
How values are judged
The report looks at each property slot, one property in one set on one IFC class, across all elements of that class. Each slot gets one role, as shown in What kind of properties:
| Role | When a slot gets it |
|---|---|
| Categorical | Content with nine or fewer distinct values, on a class with at least two elements. Fire rating or load-bearing are typical. |
| Dimensional | Only decimal numbers. These usually follow from the geometry. |
| Identifier | Text that is different on nearly every element (95% or more unique over at least ten values), such as a tag or serial number, unless the IFC standard defines the property as content. |
| Other | Any other content. |
| Unshared | Filled on only one element of its class. |
| Placeholder | Filled only with disguised missing values. |
| Empty | No value at all, or only spaces. |
Disguised missing values are text that fills a field without saying anything: n/a, na, none, null, undefined, default, unknown, tbd, ?, not defined and not known, ignoring capitals, spaces, hyphens and underscores, and a bare dash (- or --). Numbers are never counted, so a value of 0 stays a value. A value that merely repeats the name of its own property, or of another property in the same set, counts as well.
Effective facts are counted only for categorical and other slots. A value that is the same on every element counts as one fact. Otherwise each distinct value counts once and every element that differs from the most common value adds one more. Dimensional, identifier, unshared, placeholder and empty slots add nothing. The result is divided by the number of elements and shown as n/a for models with fewer than 25 elements.
The checks and how they are scored
Each check scores 0 to 100. Information checks count double in the overall quality score, Consistency checks three quarters. All checks are listed in What we check.
| Check | How it scores | Weight |
|---|---|---|
| Effective facts per element (Information) | 15 effective facts per element or more scores 100; fewer scores in proportion. | 1.5 |
| Informative property values (Information) | The share of values that are neither empty nor disguised missing. | 1 |
| Properties with a defined meaning (Information) | Shown as % standard · % custom with URI · % undefined. The score takes 60% from the defined share and 40% from the larger of the share of standard sets and the share of properties with a URI. | 1 |
| Data stored at type level (Information) | The share of values the elements inherit from their type, multiplied by three, so a third or more scores 100. | 0.5 |
| Standard Pset & Qto compliance (Information) | The compliance score of the standard sets (see below). | 1.25 |
| Quantity coverage (Information) | The share of elements with at least one quantity set. | 1 |
| Empty property values (Consistency) | Minus 2.5 points for each percent of values that are empty, so 40% empty scores 0. | 1 |
| Disguised missing values (‘-’, ‘n/a’, ‘tbd’) (Consistency) | Minus 20 points for each percent of values that are disguised missing, so 5% scores 0. | 0.5 |
Whether the declared quantities agree with the geometry is a separate check, described in The quantity check.
Standard set compliance
A set can carry a standard name and still break the standard. The card Standard property & quantity sets compliance on the Information page compares every Pset_ and Qto_ set with the official definitions for the file's IFC version. It lists the violations grouped by type, set and property, or every issue one by one, with a search, a filter per set and per type, and a line on how to fix each type that occurs. The violation types:
| Violation type | Meaning |
|---|---|
| Unknown standard set | The name starts with Pset_ or Qto_ but is not in the official list. |
| Forbidden prefix | A custom set that starts with pset or qto in another spelling, such as PSET_ or qto_. |
| Inapplicable entity | A standard set assigned to a kind of element it does not apply to. |
| Disallowed property | A property or quantity that the standard set does not define. |
| Wrong property type | For example a single value where the standard expects an enumeration. |
| Wrong value data type | For example text where the standard expects a true/false value. |
| Invalid enumeration value | A value that is not on the standard's list of allowed values. |
The compliance score is the share of checks passed, where each property in a standard set, each standard set and each wrongly named set counts as one check. A file without standard or wrongly named sets is not scored. Custom sets with their own names are counted on the card but not judged. This is a forensicBIM check, separate from the buildingSMART validation service; see Passing the buildingSMART validation is not the same as good data.
Capabilities that depend on properties
| Capability | Condition involving properties |
|---|---|
| Real IFC | Carries effective data; ≥ 30% standard Psets or URI-linked properties. |
| AI ready | Informative values ≥ 80%; ≥ 5 effective facts per element; ≥ 30% standard or URI-defined properties. |
| Operations / FM, Product passport | ≥ 5 effective facts per element, among other conditions. |
| Take-off ready | Quantities ≥ 90%, among other conditions. |
| bSDD | A bSDD address on a property also counts. |
In the Forensic BIM score™, effective facts per element drive the Richness factor, informative values the Reliability factor, and properties with a defined meaning the Semantics factor. The full rules are on Capabilities.
What to ask your supplier for
- Use standard
Pset_andQto_sets where they fit, with the property names, data types and values the standard defines. - Keep custom properties that you need, give them a name without the
Pset_orQto_prefix, and link each one to a URI. - Leave a property out rather than filling it with n/a, tbd or similar filler, and filter empty properties in the export settings.
- Store shared values on the type, so a correction is made once.
Frequently asked questions
Our model has thousands of properties. Why are the effective facts so low?
Raw counts include empty values, filler, dimensions, identifiers and values repeated on every element. A property that says Phase: New on all 3,000 walls is one fact, not 3,000. The Coverage per class card shows both numbers per class.
Should we remove our custom property sets?
No. Keep the custom properties that carry value, and link each one to a URI so its meaning is machine-readable. A custom set only causes a violation when its name pretends to be standard.
Does a property that says “n/a” count as empty?
No. Empty means no value at all, or only spaces. A filler such as n/a or tbd counts as a disguised missing value. Both lower Informative property values; each also has its own check on the Consistency page. If a property does not apply to an element, leave it out.