IFC for relational databases - ifcSQL

  1. BIMServer and the majority of solutions in the industry work for/with IFC output as .ifc (STEP) or .ifcXML (XML) files

#1=IFCPERSON($,$,$,$,$,$,$,$);

.ifc (as output) is so close to SQL structure and can be converted to SQL database as aforementioned

Converting .ifc file to SQL is an obvious method today in the industry, this is not issue

But IFC Schema is different

  1. I think EXPRESS or UML are just toolsets to develop schemas and databases and for sure UML, especially UML2 will help (And also people who know ArchiMate)
    The main point is that IFC will develop based on Object-Oriented approach or Relational or Object-Relational approach?

The idea of developing schemas based on Object-Oriented comes from those old-days when just some few companies like Microsoft were in the industry, I accept that today the majority of languages are Object-Oriented but are not good for schema and database development

yes, I looked at bimserver.org, but found no introductory application example.

To UML: As far as I know, UML is just a graphical schema visualization like EXPRESS-G. ifcDoc therefore also has an output option in UML instead of EXPRESS-G.
In any case, UML is a better representation than EXPRESS-G, since in EXPRESS-G inheritance and relationships can hardly be distinguished from each other.

XSD is derivied from EXPRESS. EXPRESS have more informations/rules than XSD.
OWL is also derived from EXPRESS and I think the idea behind is better understanding like UML.

For me the best common root of all is a self designed relational database to put all aspects together including bSDD.

The (not only) UML-design-tool Enterprise Architect for example use also a relational database as its underlaying system. But to switch to a modelling tool makes you dependent on the data model of the modelling-tool.

But to switch to a modelling tool makes you dependent on the data model of the modelling-tool.

This is why I introduced IfcXtreme project, in practice, it would be a custom-made schema modeling and editor which end users can put entities on canvas and set and control relationships, add templates and Psets, add rules, set processes, so on

It will open a door to a modern IfcDoc

1 Like

@sergej I found the secret [2012-2017, 2017-2022 project] :grin::

In 2017, i used to work alone around transposing IFC data into SQL format.
I came to the conclusion that it was not viable to reproduce every IFC concept in SQL format. Because we must not lose sight of the fact that each syntactic modification of the IFC would then have structural repercussions.

Also, I decided to create a meta-model type approach (the strategy number 5)

  • A first database serves as syntactic repositories; any IFC syntax element is placed on the same level to be referenced by a unique ID : objects, numerators, enumerator values, data types, PSET, Syntax version, … ; This is very advantageous, because it allows you to create dynamic and multicultural objects. If something change in IFC, you just add it in data.
  • Then there is the second SQL storage format dedicated to project data: An IFC_ENTITY table for the inventory of IFC entities, and a table for properties and property values. A DLL is responsible for reading/writing what we want and hides the SQL operations. The objects are reworked to generate an overloaded flow that casts the values ​​and renames the properties with the translations in effect for the language used in the presentation layer.

May someone else already did this before me… i wasn’t smart enough to check it. Anyway, whatever: I was very alone in doing all this and i choose to call it IFCX.

You are right. But, the fact is SQL format is missing. So, it means we need something like a wrapper to let server work with ifc data any stored support.

Hi yauron,

you find ifcSQL on IfcSharp/IfcSQL (github.com)

The syntactic repositories are stored in the tables of the namespace “ifcSchema”.
PropertySets are stored in bSDD (as far as I know), so the namespace “ifcProperty” is not filled in ifcSQL. See buildingSMART/bSDD: buildingSMART Data Dictionary repo (github.com)

A reading API example you find on IfcSharpApps/IfcSql/from_ifcSQL/from_ifcSQL.cs at master · IfcSharp/IfcSharpApps (github.com)

A writing API example you find on IfcSharpApps/IfcSharp/hello_project at master · IfcSharp/IfcSharpApps (github.com)

Hope this helps
Bernhard

Software vendors are indeed developing their own databases for buildings and infrastructure through Common Data Environments (CDEs). Perhaps their absence here is due to a reluctance to disclose their proprietary methods. :slight_smile: However, I’m curious about how a relational database addresses data exchange issues. Are you suggesting that buildingSMART International (bSI) should tackle this?