IFCJSON example files

I have made a single IFCJSON file available here. It is a single cube-shaped IfcActuator.

It is part of the ifc-test-files repository. Many thanks to @Jesusbill for integrating the BlenderBIM Add-on with the IFCJSON team’s work. If others would like to produce IFCJSON, the BlenderBIM Add-on is now capable of exporting the format.

I will not participate in the monthly developer meeting today due to inconvenient timezones, but I did want to publish the test file which may help people consider some of the impacts of GUIDs. As you can see, a single cube results in 800 lines of IFCJSON, which even though it is pretty-printed, is still symptomatic of the verbosity and unsuitability of certain transports towards monolithic file exchange.

GUIDs are one strategy (but not the only strategy) towards allowing partial model exchange, and therefore also increased usefulness of transports like IFCJSON. GUIDs are also not an exclusive strategy - they may be used as a root selector to index IFC data and quickly jump to portions of the dataset, and then a syntax to describe relationships may then be used … just putting the ideas out there…

1 Like

This is remarkably similar to the IFC4XML representation (which is different to the IFC2 XML representaiton). This is specified by a configuration file which determines which relationships can be inverted so as to put as much as possible of the model into a tree structure, whilst still retaining the ability to add other relationships using referencing. I suggest both ifc4xml and ifc4json use the same configuration file so that there is a direct equivalence and easy conversion between them.

On closer examination, it is a hybrid between the two XML (ISO10303 p28 ed 1 and ed 2) styles. I’d recommend picking one or the other as an implementation style.

The example leave unanswered how to relate or borrow entities that don’t have GlobalIds - such as common coordinates, directions, local-placements and other resources. SPF uses the line #123 number. IFC2 XML used id/ref following the XLINK standard. IFC4 XML uses id/href which allows for remote cross referencing, which is analogous to semantic web usage.