
Fig. 1:
Example of GUIDs highlighted within an IFC entity.
GUID, global unique identifier; IFC, Industry Foundation Classes.

Fig. 2:
Illustration of the main sections in a generic IFC file.
IFC, Industry Foundation Classes.
Tab. 1:
Hash formula used to generate the entities hash list.
| Parameter | Value | Parameter description |
|---|---|---|
| Hashing algorithm | SHA256 | Determine the desired hashing algorithm |
| Salt | IFC | Salt is a set of characters used to increase the complexity of the original hashed content |
| Iteration | 1 | Number of times that the hash should be rehashed |
| Length | 64 | The number of characters in the generated hashes |
Tab. 2:
Examples of the input and output of the hashing function.
| Input (entity) | Output (SHA256 hash) |
|---|---|
| #12=IFCDIRECTION((1.,0.,0.)); | “3d896c6580d86c5895a178d5bdb45ec3901cf3118881495c86caf38b70730a5b” |
| #14=IFCDIRECTION((-1.,0.,0.)); | “fd7a34687b10e217a47657bd93c49340ed00fa59a2f8667a072453160aef9767” |
| #16=IFCDIRECTION((0.,1.,0.)); | “8eeea131de37b45cc0057d63a7e115942257f3315791061adca5ff0704e7f9ea” |
| #18=IFCDIRECTION((0.,-1.,0.)); | “69f375f1c87d560e5981d8168070afdcf6f85953cad3e9d9b6a7e8b218a0c327” |

Fig. 3:
Example of CID DAG.
CID, content identifier; DAG, directed acyclic graph.

Fig. 4:
NFT smart contract written in Solidity.
NFT, non-fungible token.

Fig. 5:
Transaction confirmation page for deploying the smart contract.
UTC, universal time coordinated.

Fig. 6:
Design information example formatted to comply with JSON schema.
JSON, JavaScript Object Notation.

Fig. 7:
Brownie Python script to mint a design NFT.
NFT, non-fungible token.

Fig. 8:
Transaction input data show the URI of the minted NFT.
NFT, non-fungible token; URI, uniform resource identifier.

Fig. 9:
OpenSea listing for the minted NFT as proof of ERC-721 compatibility.
ERC, Ethereum Request for Comment; NFT, non-fungible token.

Fig. 10:
Test design models: (a) original design; (b) derivative design.