Skip to content
IFCConditional colouringModel QAFree tools

How to Colour an IFC Model by Property Values (Free, in the Browser)

A step-by-step guide to conditional colouring of IFC models: rules with AND, OR and NOT on any attribute, material, level or property set, saved as CSV, and exported as a coloured IFC file that opens in any viewer.

By Ignasi Fabrat Forcadell8 min read

Short answer: open the model in the free JidokaBIM IFC viewer, create a colour rule (for example IFC class is IfcWall AND Pset_WallCommon.IsExternal = true), and the matching elements are coloured instantly. Rules can be saved as a CSV file and reapplied to any other model, and the Coloured IFC button downloads a copy of the IFC with the colours written into the file. Everything runs in your browser: the model is never uploaded.

Why colour a model by its data?

Colouring by property is the fastest way to see the information inside a BIM model. Teams use it to:

  • Check the model before a submittal: elements with an empty fire rating, walls without a classification code, doors on the wrong level.
  • Explain scope: load-bearing vs. non-load-bearing walls, demolition vs. new build, phases or work packages per subcontractor.
  • Track progress on site: colour by status (installed, pending, inspected) when the status lives in a property set.
  • Review infrastructure models: in IFC 4.3, colour bridge substructure, superstructure and earthworks separately.

Step 1: open the model

Go to jidokabim.com/viewer and drop an .ifc file on the window, or open one of the two examples: an office building modelled in ArchiCAD (IFC4, with hundreds of properties to colour by) and a railway line and station in IFC 4.3 from a Swiss Federal Railways (SBB) project. IFC2X3, IFC4 and IFC4.3 are supported. The viewer uses IFCLite with WebGPU, so models of tens of megabytes open in seconds on a normal laptop.

Step 2: write a rule

In the Colouring panel, add a rule, give it a name and a colour, and add conditions. Each condition has three parts:

PartOptions
AttributeIFC class, Name, Type name, Level / container, Material, PredefinedType, ObjectType, Tag, Description, GlobalId, or any Property / Quantity
Operatorequals, does not equal, contains, starts with, ends with, is one of, is none of, >, ≥, , ≤, between, matches regex, is empty, is not empty
ValueText, number, list (IfcWall, IfcSlab) or range (10..20)

Property paths use the property set name and the property name: Pset_WallCommon.IsExternal, Qto_SlabBaseQuantities.NetVolume. Wildcards help when you do not know which set holds a value: *.FireRating matches a FireRating property in any set.

Step 3: combine conditions with AND, OR and NOT

Conditions live inside groups. A group is either AND (all conditions must match) or OR (any condition matches), and any group can be negated with NOT. Groups can be nested, so real checks are easy to express:

  • External load-bearing concrete walls: IFC class = IfcWall AND Pset_WallCommon.IsExternal = true AND Pset_WallCommon.LoadBearing = true AND Material contains concrete.
  • Openings: IFC class = IfcDoor OR IFC class = IfcWindow.
  • Everything except the structure: NOT (IFC class is one of IfcBeam, IfcColumn, IfcSlab, IfcFooting).
  • Doors with a missing fire rating: IFC class = IfcDoor AND *.FireRating is empty.

Rules are evaluated top to bottom and the first matching rule wins, so put specific rules above general ones. Each rule card shows how many elements it matched: click the count to select them in the 3D view.

Shortcut: colour by every value in two clicks

When you want one colour per value, for example every material, fire rating or level, use Smart colouring instead of writing rules one by one. Pick the attribute or property from a searchable list of everything in the model, optionally limit it to some IFC classes (only walls and slabs, say), choose a palette and press Colour. The viewer creates one rule per value, which you can still edit, reorder or delete.

  • Categorical palettes (including a colour-blind safe one) or random colours for text values.
  • Colour scales such as Viridis, Heat or Red → Green for numbers and ordered values.
  • Ranges for numeric properties with many values: equal-width ranges, or ranges with the same number of elements each.
  • From the Properties panel, the palette icon next to any property opens Smart colouring for that property directly.

Step 4: save the rules as CSV

Use the CSV download button in the Colouring panel to save the rules. The file opens in Excel, can be versioned with the project and can be loaded into any other model with the CSV upload button, or by dropping the .csv file on the viewer. The simplest format has one row per condition; rows with the same RuleID are combined with the rule's Logic:

RuleID,RuleName,Logic,Enabled,IfcClass,Attribute,PropertyPath,Operator,Value,HexColor,Transparency
ext_walls,External walls,AND,true,IfcWall,Property,Pset_WallCommon.IsExternal,equals,true,#ff6a2a,1
fire,Fire-rated doors,AND,true,IfcDoor,Property,*.FireRating,not_empty,,#d32f2f,1
windows,Windows,AND,true,IfcWindow,,,,,#80deea,0.6

Transparency is the opacity, from 0 (invisible) to 1 (solid). Nested groups and NOT are stored in an extended format with NodeID, ParentNodeID and NodeType columns, which the viewer writes for you.

Step 5: download the coloured IFC

The Coloured IFC button writes the rule colours into a copy of the model, as standard IfcStyledItem and IfcSurfaceStyle entities attached to each element's geometry. The result is still a valid IFC: open it in BIMcollab Zoom, Solibri, Navisworks, Revit or any other IFC viewer and the colours are there, with no plug-in and no rule file needed.

Common questions

Is the model uploaded to a server?

No. Parsing, rendering, rule evaluation and the coloured export all run in the browser, on your machine.

Why does a property rule match nothing?

Check the exact property set and property names in the Properties panel: authoring tools often export custom sets (for example Pset_Revit_Constraints or your own company set) instead of the standard Pset_*Common. Use a wildcard path such as *.FireRating to search all sets.

Can I automate this for every model revision?

Yes. The same rule engine can run without a user interface, in a server pipeline or a Revit plug-in, so every new revision is checked and coloured automatically. That is the kind of custom web BIM tool JidokaBIM builds for contractors and engineering firms.

Need this built for your team?

Custom Revit plug-ins, IFC web apps and BIM automation, scoped in a free one-hour call and delivered at a fixed price with the source code.