2022-08-16 18:50:58 +08:00
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
|
<html>
|
|
|
|
|
|
<head>
|
|
|
|
|
|
<meta charset="utf-8" />
|
|
|
|
|
|
<title>My first BIMFACE app</title>
|
|
|
|
|
|
</head>
|
|
|
|
|
|
<body>
|
|
|
|
|
|
<div id="domId" style="width: 100%; height: 95vh"></div>
|
|
|
|
|
|
<script src="https://static.bimface.com/api/BimfaceSDKLoader/BimfaceSDKLoader@latest-release.js" charset="utf-8"></script>
|
|
|
|
|
|
<script>
|
2023-12-02 18:00:01 +08:00
|
|
|
|
let model3D;
|
|
|
|
|
|
let viewer3D;
|
|
|
|
|
|
let app;
|
|
|
|
|
|
let modelState;
|
2022-08-17 11:14:38 +08:00
|
|
|
|
const bimCallback = viewToken => {
|
|
|
|
|
|
// let viewToken = '11b0d307c09f43bfa5fa3922bcce0342'
|
|
|
|
|
|
let loaderConfig = new BimfaceSDKLoaderConfig()
|
|
|
|
|
|
loaderConfig.viewToken = viewToken
|
|
|
|
|
|
BimfaceSDKLoader.load(loaderConfig, successCallback, failureCallback)
|
|
|
|
|
|
function successCallback(viewMetaData) {
|
|
|
|
|
|
let domShow = document.getElementById('domId')
|
|
|
|
|
|
let webAppConfig = new Glodon.Bimface.Application.WebApplication3DConfig()
|
|
|
|
|
|
webAppConfig.domElement = domShow
|
|
|
|
|
|
app = new Glodon.Bimface.Application.WebApplication3D(webAppConfig)
|
|
|
|
|
|
app.addView(viewToken)
|
|
|
|
|
|
viewer3D = app.getViewer()
|
2023-12-02 18:00:01 +08:00
|
|
|
|
// 监听添加view完成的事件
|
|
|
|
|
|
viewer3D.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.ViewAdded, function () {
|
|
|
|
|
|
// 调用viewer3D对象的Method,可以继续扩展功能
|
|
|
|
|
|
// 从viewer3D对象中获取模型对象model3D
|
|
|
|
|
|
model3D = viewer3D.getModel();
|
|
|
|
|
|
// 获取模型状态
|
|
|
|
|
|
modelState = viewer3D.getCurrentState();
|
|
|
|
|
|
// 渲染3D模型
|
|
|
|
|
|
viewer3D.render();
|
|
|
|
|
|
});
|
|
|
|
|
|
// 添加构件单击事件
|
|
|
|
|
|
viewer3D.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.MouseClicked, (data) => {
|
|
|
|
|
|
console.log(data)
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
// 往父级传递
|
|
|
|
|
|
window.parent.postMessage({ msg: data.elementId })
|
|
|
|
|
|
}, 200)
|
|
|
|
|
|
});
|
2022-08-17 11:14:38 +08:00
|
|
|
|
}
|
2022-08-16 18:50:58 +08:00
|
|
|
|
|
2022-08-17 11:14:38 +08:00
|
|
|
|
function failureCallback(error) {
|
|
|
|
|
|
console.log(error)
|
|
|
|
|
|
}
|
2022-08-16 18:50:58 +08:00
|
|
|
|
}
|
2022-08-17 11:14:38 +08:00
|
|
|
|
|
2023-12-02 18:00:01 +08:00
|
|
|
|
window.addEventListener('message', async function(e) {
|
2022-08-19 18:24:37 +08:00
|
|
|
|
// const modelId = e.data.modelId
|
2022-08-17 15:12:38 +08:00
|
|
|
|
const data = e.data || {}
|
2022-08-19 18:24:37 +08:00
|
|
|
|
console.log('eeeeeeeeeee',e)
|
2022-08-17 15:12:38 +08:00
|
|
|
|
if (data.token) {
|
2022-08-19 18:24:37 +08:00
|
|
|
|
// removeModel(modelId)
|
2023-12-02 18:00:01 +08:00
|
|
|
|
await bimCallback(data.token)
|
2022-08-17 15:12:38 +08:00
|
|
|
|
}
|
2023-12-02 18:00:01 +08:00
|
|
|
|
if(data.hideArr && data.colorArr){
|
|
|
|
|
|
console.log(data.hideArr)
|
|
|
|
|
|
console.log(data.colorArr)
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
// 恢复模型状态
|
2023-12-02 18:09:28 +08:00
|
|
|
|
viewer3D.setState(modelState);
|
2023-12-02 18:00:01 +08:00
|
|
|
|
console.log(model3D)
|
|
|
|
|
|
model3D.hideComponentsById(data.hideArr);
|
|
|
|
|
|
data.colorArr.map(item => {
|
|
|
|
|
|
model3D.overrideComponentsColorById([item.name], new Glodon.Web.Graphics.Color(item.color, 1));
|
|
|
|
|
|
})
|
|
|
|
|
|
viewer3D.render();
|
|
|
|
|
|
}, 1000)
|
|
|
|
|
|
}
|
2022-08-17 15:12:38 +08:00
|
|
|
|
// console.log(e.data, '父级页面传来的数据')
|
|
|
|
|
|
// setTimeout(() => {
|
|
|
|
|
|
// window.parent.postMessage({ msg: 'hello' })
|
|
|
|
|
|
// }, 2000)
|
2022-08-17 11:14:38 +08:00
|
|
|
|
})
|
2022-08-16 18:50:58 +08:00
|
|
|
|
</script>
|
|
|
|
|
|
</body>
|
|
|
|
|
|
</html>
|