IFC Revision Export

Versioned IFC Export to accelerate process (Early Work in Progress)
Users exporting IFC from Revit might find the processing time is not acceptable, as the entire project is converted to IFC each time.
When working on a work shared Revit model, the entire project is not uploaded/download upon each sync to central, rather the changes are transmitted.
Geometry Gym has developed functionality to for IFC export. As typically not all elements are changed between IFC exports, you can have a much faster export process. It might take hours to author an IFC on a large project with significant properties and differing geometry (such as flexible ducts).
Demonstration of revised IFC export.
If you've previously exported an IFC file, this process can compare the version guid (introduced in Revit 2021) for each element, write a smaller IFC file with only elements potentially changed and then merge unchanged elements into this revised file. Note that the revit version guid might reflect changes not impacting IFC.
This process stores the guid on the IfcElement/IfcElementType tag attribute (final field on a typical IfcElement), appended on the revit integer element id (ie 416010:95977bec-cc1b-4ed8-8a63-c799c9ee330a ).
// #38= IFCCOLUMN('164stSIiP6kR26wVw4sLpn',#102,'UC305x305x97',$,'UC-Universal Columns-Column:UC305x305x97',#93,#96,'416010:95977bec-cc1b-4ed8-8a63-c799c9ee330a');
When a user executes the Revise IFC command, they will be prompted to select a previous exported IFC file (cancel this selection if you want to create a new baseline). Then they will be prompted for a save file location (you can overwrite the existing file).
Any revit element deleted since previous export won't be included (we might write a separate data set with obsolete elements). In addition to the benefit of a much quicker export, the resultant IFC has elements with varying owner history assigned to differentate elements created/modified at each revision. Few implementations have supported owner history beyond the most basic implementation, so the resultant IFC file has groups created to permit easier user review to identify added or modified elements.
You can save your IFC Export configuration as a json file into the folder where the IFC file is saved. Note that if you change the settings (or if the export plugin is revised), changes will be applied to elements from previous exports. It would be recommended to create an IFC export anew for milestone and critical exchanges. Using a consistent viewport is also essential for an accurate file (and change log).
This is new functionality so please review carefully and report any problems. We have seen one large model where the revision operation is very slow (particularly after exporting a large IFC data set, we're trying to resolve why). You can create a baseline by exporting an IFC using the Revit IFC export command, and then "injecting" the version guids into this file using the specific command.
An accurate version history (and efficient processing time) is dependent on the IFC GlobalIds being reused. It won't try to detect similar elements (ie a delete and a new added), it's better to modify existing elements. If elements are purged and created anew from a generative process such as dynamo, modifications will not be tracked. The export option to save GlobalIds on elements is enforced in the revision process.
All feedback and suggestions for improvements are welcome.