Although yes, the way things work right now is not the best, because each authoring tool supports IFC in a different way.
However I don’t think the different ASCII syntax is a problem at all. I can take an OBJ, edit it in Blender, then edit it in 3DS Max, and I can still compare the two, regardless of the OBJ being written differently each time. It is the same with IFC - the diff tool simply has to:
- parse each IFC file into a data structure
- canonicalise and sort the data structure
- where GUIDs match, compare attributes (geometry, centroids, data attributes) within a certain set precision value
Therefore, the ASCII structure doesn’t matter, and the only prerequisite is that the GUID isn’t mangled in the authoring program, which it shouldn’t be (see discussion in other thread how the current spec for IfcGloballyUniqueId is currently inaccurate, but when this is fixed it can help ensure tools like this diff and others can work reliably).