You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:06:03