## 2 Materials and Methods
### Custom-Tailored Plugins Development
Apart from plugins displaying settings, resources and data, plugins such as 2D-3D switch, _Isolate Elements_ and _Pick Stratigraphic Units_ are those (built with VueJS and JavaScript) with which more graphic interaction occurs. The first one, built by BIMData and unlocked inside the 0.8.26 viewer code, is fundamental for archaeological purposes, because it allows the model to be shown in a 2D environment (ground plan) coupled with the project tree with objects (Figure 9). Archaeological and reconstructive plans can then be compared with the help of the project tree. Furthermore, the _Isolate Elements_ plugin is a mandatory plugin for BIM and HBIM projects. It allows the isolation of 3D objects depending on IFC classification; for example,  
Figure 9: ARK-BIM (version 1.5.1): unlocked _2D-3D switch_ plugin for visualizing ground plans of IFC models and related elements. by selecting \"wall\" entities, the plugin will maintain visually active walls and will hide other elements (wired view). Hence, the 3D scene can be reset to start another graphical query (Figures 10 and 11). This plugin, included as shown by BIMData developers, is the starting point for future development. The actual version of ARK-BIM includes the possibility of isolating elements by IFC classifications. Based on this, the updated version is currently under development tests for the purpose of isolating parametric objects depending on material, descriptions, tags and specific archaeological properties. The _Pick Stratigraphic Units_ plugin (Figures 12 and 13) has been designed for annotating stratigraphic units directly on the 3D model. This functionality plays a key role in archaeological stratigraphy documentation and analysis. Briefly, stratigraphy is the method for understanding archaeological stratification, though it could also be utilized regarding other situations, such as historical architecture. In fact, this court of analyses generated a particular discipline called Building Archaeology [25; 26; 27] because this methodology can be applied to historical architecture where the stratification is evident (mostly medieval architecture). Figure 12: Part of source code related to the _Pick Stratigraphic Units_ plugin (the complete code is on the ARK-BIM website). Figure 13: ARK-BIM (version 1.5.1): _Pick Stratigraphic Units_ plugin. Sample archaeological stratigraphy picked directly from the sample model. Three classes of units available (US, USM, USR). Inside ARK-BIM, once units have been picked, the viewer displays alphanumerical annotations within a coloured circle, which will be placed at the object's centre of mass (Figure 13). Possible notes have been classified in three ways, related to archaeological unit classification [25; 26; 27]: simple stratigraphic unit (US-colour grey), refers to ground layers; render stratigraphic units (USR-colour yellow), for render and plaster layers of masonry remains and heritage buildings; masonry stratigraphic units (USM-colour red), for walls and masonry units referring to building archaeology. In fact, the plugin window was conceived for designating a desired unit identification (e.g., US30; USM54) and then the unit classification using the drop-down menu. Moreover, a conceptual legend can be displayed on the top-left of the environment in order to provide information feedback. This plugin could become fundamental for revisions based on archaeological stratigraphy. In addition to specific plugin design, the new platform environment was enriched by _informative modal popups_ (e.g., for brief text description): _right click_ on the 3D space with filtering plugin for IFC types; _edit mode_ has been confirmed inside the property tree of objects (no longer available on updated version of the viewer related to free plan). Plugins can be implemented by embedding custom-tailored source codes into the interface of the viewer (HTML). Their functionalities and languages (VueJS and JavaScript) have to respect the functions, constants and variables of the main viewer.