// Initialize viewer component
let viewerConfigs = {
domElementId: "viewer",
showUI: true
};
let viewer = new bimU.Viewer(viewerConfigs);
viewer.initialize();
// Add custom button and action
viewer.addCustomButton("button1", "camera", "#e91e63", "Save Viewpoint", function() {
// Get BCF viewpoint
let bcfViewpoint = viewer.getViewpoint();
// Get screenshot
let screenshot = viewer.getScreenshot();
// Add clickable markup
addMarkup(bcfViewpoint, screenshot);
});
// Cache BCF viewpoint and screenshot
let addMarkup = (bcfViewpoint, screenshot) => {
let anchor = document.createElement("a");
anchor.setAttribute("href", "#");
anchor.onclick = () => viewer.setViewpoint(bcfViewpoint);
let img = document.createElement("img");
img.setAttribute("src", screenshot);
img.setAttribute("class", "image");
anchor.appendChild(img);
document.body.appendChild(anchor);
}
// Callbacks
let onPorgress = (e) => {
console.log(e);
viewer.showDialog("Loading...", "Progress:" + e.progress, "Close", null, null, true);
};
let onLoaded = (e) => {
console.log(e);
viewer.closeDialog();
};
let onError = (e) => console.error(e);
// Load model
let modelConfigs = {
modelId: "5dffdeb8cb9115000420d21f",
password: "123456",
};
viewer.loadModel(modelConfigs, onPorgress, onLoaded, onError);
<div id="viewer" style="width:600px;height:400px;background-color:black;border:5px solid gray;"></div>
.image {
width: 60px;
height: 40px;
margin: 5px;
border: 2px solid gray;
}
External resources loaded into this fiddle: