Is there a "database" with all the IFC entities and their corresponding psets/qto's?


I’m doing a small project were it would be very handy to have a “database” (spreadsheet, webpage, even a text file would suffice!) where I could find IFC entities and all their corresponding psets (and/or Qtos), in one place. Without this, I have to navigate to each IFC entity’s page, search for the pset section, click on each pset link (e.g. “PSet_BeamCommon”), and rinse and repeat for each entity type, which can be a bit tedious.

Thanks in advance for the help!


1 Like

Maybe the alphabetical list of properties could help you gather the information in the form you need it. Or take a look at the computer-interpretable listings.

For IFC4.3 that “database” is an UML/XMI model IFC4.3.x-development/IFC.xml at master · buildingSMART/IFC4.3.x-development · GitHub

The JSON that we generate from it [0] probably comes pretty close to what you want.

It’s 4.3 only atm, but we’ll regenerate the same setup for the earlier IFC releases as well at some point.


Thank you all for the answers! Those files definitely help.

I should have mentioned, that I am not a developer/programmer, so that is perhaps why I was looking at something easier to digest like a spreadsheet for example. I don’t really know how to programmatically extract what I need from those files, but I can try!

Another example of something I find myself needing, is a breakdown of the predefinedtype enums for different entities and how they have changed/ been augmented in IFC2x3, IFC4, IFC4.3 etc. Wouldn’t it be wonderful to have this in spreadsheet form, with a clear top down view of all the different enums, in one place, with highlights of deprecations and changes across versions, etc? Maybe I am just surprised these are not readily available in Buildingsmart pages.

1 Like

A while back OSArch had produced some spreadsheet formatted lists:

In your OP you asked for a website listing, every IFC spec has an alphabetical list of all entities and psets and qtos. Is there a reason that is not good enough?

I’ve produced enums for IFC2X3 and IFC4 in a document form for consultants. Here’s the standard reference I provide to all consultants / subcontractors at my company:

ifc-classes.pdf (40.8 KB)
ifc-classes-ifc2x3.pdf (39.2 KB) might also help for the most common parts

I’d recommend the free “DDS IFC Schema Navigator” - works for both IFC 2x3 and IFC 4.

1 Like

Thanks! The DDS IFC Schema navigator sounds exactly what I was after. Basically an “all in one place” application to see property sets of different entities.

@Moult, thanks for those pdfs, they also help! To answer your question, the alphabetical listing of the entities is definitely enough…I was just looking for something easier to use. Using the listing, the psets are “buried” under each individual page, sometimes more than one click away, in sub-sections of that page. Then you need to go back as many steps, and repeat for the next entity. If you need to compare different IFC versions, it gets even more tedious.

As you have for sure figured out already, you basically select schema (like “IFC 4”), use the free form search (e.g. for “door”) and get all relevant hits (IfcDoor, IfcDoorType, IfcDoorTypeEnum, PSet_DoorCommon etc) with hierarchy listing top left and all attributes, applicable psets, relations etc to the right. Bottom right you also get a URL to the formal builingSMART schema listing (IFC 4 only). Enjoy! :slight_smile: Credits to Graphisoft DDScad / Bjørn Stangeland for providing this excellent free tool to the IFC community.

Thanks for the JSON for the IFC4.3 schema. That is exactly what I was looking for; unfortunately, I need it for IFC 4add2 TC1. Have you already started to regenerate these files for previous IFC releases? If not, how did you generate this JSON, any hints on how to reproduce it myself?

No progress yet.

If not, how did you generate this JSON, any hints on how to reproduce it myself?

The JSON is derived from the UML IFC4.3.x-development/ at master · buildingSMART/IFC4.3.x-development · GitHub

But if you take the schema and the pset definitions ( you can build something similar.