BIMFACE示例文件
重置运行图纸拆分
<!DOCTYPE html> <html> <!-- 识别dwg中的图框,并将单个图框内的图纸单独显示 --> <head> <meta charset="utf-8"> <title>图纸拆分</title> <style type="text/css"> * { margin: 0; padding: 0; } html, body { height: 100%; } .buttons { height: 40px; width: 100%; } .button { margin: 5px 0 5px 5px; width: 100px; height: 30px; border-radius: 3px; border: none; background: #32D3A6; color: #FFFFFF; cursor: pointer; outline: none; } .main { display: flex; flex-direction: column; height: 100%; } #domId { flex-grow: 1; width: 100%; } </style> </head> <body> <div class='main'> <div class='buttons'> <button class="button" id="btnLoadFull" onclick="loadFull()">加载完整图纸</button> <button class="button" id="btnLoadSingle" onclick="loadSingle()">加载单张图纸</button> </div> <div id="domId"></div> </div> <script src="https://static.open.glodon.com/bimface/api/BimfaceSDKLoader/BimfaceSDKLoader@latest-release.js"></script> <script> const viewToken = '#viewToken#'; // 声明Viewer及App let viewer, app; let viewLoaded = false; let drawingFrame = null; let drawingCount = null; // 配置JSSDK加载项 window.onload = function () { let loaderConfig = new BimfaceSDKLoaderConfig(); loaderConfig.viewToken = viewToken; BimfaceSDKLoader.load(loaderConfig, successCallback, failureCallback); } // 加载成功回调函数 function successCallback(viewMetaData) { let dom4Show = document.getElementById('domId'); // 设置WebApplicationDrawing的配置项 let webAppConfig = new Glodon.Bimface.Application.WebApplicationDrawingConfig(); webAppConfig.domElement = dom4Show; // 创建WebApplicationDrawing,用以显示模型 app = new Glodon.Bimface.Application.WebApplicationDrawing(webAppConfig); viewer = app.getViewer(); viewer.loadDrawing({ viewToken }); // 添加视口变化的监听事件 viewer.addEventListener(Glodon.Bimface.Viewer.ViewerDrawingEvent.Loaded, function (data) { viewLoaded = true; home(); // 获取拆图结果,需要通过服务端API发起图纸拆分 if (!drawingCount) { viewer.getDrawingFrame(function (data) { drawingFrame = data.data[0].frames; drawingCount = drawingFrame.length; }); } }) } // 加载失败回调函数 function failureCallback(error) { console.log(error); } let isFullDrawingLoaded = true; function loadFull() { if (!viewLoaded || isFullDrawingLoaded) { return; } viewer.removeAllDrawings(); viewer.loadDrawing({ viewToken }); isFullDrawingLoaded = true; } function loadSingle() { if (!viewLoaded) { return; } viewer.removeAllDrawings(); let index = random(drawingCount); drawingIndex = index + 1; let frameId = drawingFrame[index].id; viewer.loadDrawing({ viewToken, frameId }); console.log('Load drawing index: ' + drawingIndex + '.'); console.log('Drawing name is ' + drawingFrame[index].name + '.'); console.log('Drawing number is ' + drawingFrame[index].number + '.'); isFullDrawingLoaded = false; } function random(number) { return Math.floor(Math.random() * number); } function home() { window.requestAnimationFrame(() => { viewer.home(); }) } </script> </body> </html>