4.4.2. Chaincode Query Access to Revit DynaWeb (BIM Platform)

This section illustrates the last step required to centrally integrate (store) on-chain data delivery with the BIM platform or tools. "*Revit DynaWeb*" is used as a BIM platform to demonstrate this integration. As explained previously, *DynaWeb* is a "*dynamo package providing support for interaction with the interwebz in general and with REST APIs in particular*" [91]. Thus, it assists in retrieving (GET) information from the web and sending (POST) information to the web. It also contains some handy JSON de/serialization nodes for using web data directly in Dynamo graphs as native types [91]. Using DynaWeb, which is included in the Dynamo package, simplifies routine tasks by providing a centralized interface for linking on-chain data transfer with the BIM model (Revit model). Therefore, this solution guarantees that the distributed database (from the Hyperledger Fabric Network) may be linked to several BIM models (Revit models) to store supply chain data delivery. At the same time, the traditional BIM CDE will go operating as a hub for a network of datasets sources. The *Dynamo* workplace environment was accessed from the *Manage* tab in the *Revit* visual programming panel and by clicking on *Dynamo*. Then, the *DynaWeb* package was successfully implemented in the *Dynamo* workplace environment. The "*DynaWeb"* package includes "*WebRequest: the web request that gets executed*", "WebClient: the context in which a request is executed", "*WebResponse: this contains the response from the server as well as additional metadata about the response and server itself"*, "*Execution: this provides nodes that simply execute requests, making it easier and clearer to use standard Hypertext Transfer Protocol (HTTP) verbs such as GET"*, and the "*Helpers: a few helper nodes, with a particular focus on deserialisation*". In addition, the above *DynaWeb* package was extended to add new scripts (new nodes) to automate repetitive processes that check if the on-chain dataset has been linked centrally to the *Revit* model or not, as shown in Figure 8. To check if selecting a CSC element on the Revit model has linked the on-chain dataset (return values of query application), the watch function displays the message "*URL found and opened*" and, if it is not found, the watch function displays the message "*Valid URL not found*", as the on-chain dataset is not linked to this item.

**Figure 8.** Implementation of the DynaWeb package in the Dynamo workplace environment.

Assimilating the above, the on-chain dataset based on the URL that was created from *Ngrok* (as explained in the previous Section 4.4.1) was copied in the *String* node, and the data resulted in the *Watch* box with JSON format. At the same time, as shown in Figure 9,


the BIM user may access the on-chain dataset from inside *Revit* by selecting the element's attributes and then choosing the *URL property*.

**Figure 9.** Successful linking of the on-chain dataset (the return values of the query application) to Revit (the BIM platform) and displaying (accessed) its transaction values.

Considering this, the system prototype successfully demonstrated the solution for or integrated blockchain and BIM using *Hyperledger Fabric v2.3* and *Revit DynaWeb v2021*. According to Qing and Yu-Liu [37], evaluating the prototype is the next step for which a virtual business scenario is utilized in this research, as explained in the following section.
