如何在Autodesk Forge Viewer中为DWG文档启用文本选择功能
Forge Viewer 2D DWG/DXF 文本点击获取实现方案
实现逻辑说明
针对你只有单布局Layout 1的2D DWG/DXF文件场景,核心是监听Viewer的选择事件,筛选出文本类型的选中元素,提取所需属性即可。
完整可运行代码
// 等待模型完全加载完成后绑定事件 viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, () => { // 绑定元素选中变更事件 viewer.addEventListener(Autodesk.Viewing.AGGREGATE_SELECTION_CHANGED_EVENT, handleTextSelect); }); // 文本选中处理函数 function handleTextSelect(selectEvent) { // 无选中元素直接退出 if (!selectEvent.selections?.length) return; const selectedDbIds = selectEvent.selections[0].dbIdArray; selectedDbIds.forEach(dbId => { // 查询选中元素的全量属性 viewer.getProperties(dbId, (propRes) => { // 匹配单行文本/多行文本类型 const isTargetText = ['Text', 'Multi line text'].includes(propRes.name); if (!isTargetText) return; // 提取文本内容,可根据实际返回的属性名调整 const textValue = propRes.properties.find(item => item.displayName === 'Text')?.displayValue; // 打印测试,点击1L2C时此处会输出对应文本 console.log('选中文本内容:', textValue, '元素ID:', dbId); // 此处插入你的业务逻辑:调用自有API、弹出自定义弹窗等 }); }); }
效果示例
补充说明
- 若获取文本内容时属性名不匹配,可打印
propRes查看你的模型导出时对应的文本属性字段名调整即可 - 如需自定义选中文本的高亮颜色,可调用
viewer.setSelectionColor(new THREE.Color(0xFF0000), 2)(第二个参数2代表2D视图)调整
内容的提问来源于stack exchange,提问作者Jeremy
相关产品推荐
相关产品推荐

