# Global Components
This example shows how to use the BIMDataViewer global components.
# Demo
# HTML
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<style>
html,
body {
margin: 0;
cursor: default;
}
</style>
<title>BIMDataViewer</title>
</head>
<body>
<div style="height: 100vh">
<div id="viewer"></div>
</div>
<script type="module">
import makeBIMDataViewer from "https://cdn.jsdelivr.net/npm/@bimdata/viewer@2.6.1";
const bimdataViewer = makeBIMDataViewer({
// do not display the header, the bimdata logo and the viewer version
ui: {
header: false,
bimdataLogo: false,
version: false,
},
// remove all native plugins
plugins: false,
});
bimdataViewer.registerPlugin({
name: "plugin-1",
component: {
template: `
<div style="position: relative; height: 100%;">
<BIMDataNoModelWindowPlaceHolder v-if="$viewer.localContext.loadedModels.length === 0" />
<BIMDataModelLoader />
<BIMDataStoreySelector style="position: absolute; left: var(--spacing-unit); bottom: var(--spacing-unit);"/>
<div style="height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center;" v-if="$viewer.localContext.loadedModels.length > 0">
<div> LoadedModel name = {{ $viewer.localContext.loadedModels[0].name }}</div>
<div v-if="!$viewer.localContext.selectedStorey">Please select a storey</div>
<div v-else> Selected storey name = {{ $viewer.localContext.selectedStorey.name }}</div>
</div>
</div>`,
},
window: {
name: "window-1",
header: false,
modelTypes: ["IFC"],
multiModel: false,
},
});
bimdataViewer.mount("#viewer", "window-1");
</script>
</body>
</html>