Triangulation patterns in .ifc file format using coordinates and indexes

I’ve posted this in another forum as well due to the mathematical nature of the issue: forum post

I’m doing some manipulation of raw string data from an .ifc file exported from Archicad. I thought that this problem might be addressed also here.
I have an .ifc file in which the raw data exported describes a wall in the xy plane by a set of coordinates and their corresponding indexes according to the link explanation:


Attached is a txt file where the data is divided into the coordinates in xyz space, then indexes and some other data.
coordinates.txt (17.5 KB)

I was hoping that someone can help me understand how to link the indexes to their corresponding coordinates. There are 164 coordinate pairs and 324 index pairs so it doesn’t make sense to me that each index relates to only 1 coordinate pair.

The goal is to establish a relationship between indexes and coordinates such that this type of data can output the wall thickness, which is in this case ‘10’. I was thinking that (according to the link above) by taking the first triangle described, it should describe the edge of the wall in 3D and therefore give us one of its sides as the shortest segment in the wall which is the thickness.

I received an answer in the mentioned forum post, that I should "…expanding out each coordinate in terms of X’s, Y’s, and Z’s [instead of (X,Y,Z) triples) and then use every index triple to get the actual coordinate for the individual coordinate instead of one triple. So for example you have X[], Y[] and Z[] and you have an index (a,b,c) then you find X[a], Y[b], and Z[c] not Point(a,b,c)… "

I didn’t quite understand this explanation, and would appreciate any help or further explanation in order to achieve my goal, especially linking the indexes to actual coordinate xyz points.

Thank you

@jonm, is this something you can help with?

1 Like

Hi Dale,

Thanks for the mention.

I’ve developed rhino and grasshopper plugins to import and generate IFC files.
So you can directly work with them, including using my toolkit (the reading and writing of the IFC file is open source). You can find the ggRhinoIfc plugin at

I have developed various routines such as converting the triangulated face set into rhino mesh that might help you.

I can assist further if you post or email the IFC file.