三分钟把Revit模型变网页3D:Revit2GLTF免费转换工具实操指南
【免费下载链接】Revit2GLTFview demo项目地址: https://gitcode.com/gh_mirrors/re/Revit2GLTF
Revit2GLTF 是一款免费开源(MIT 协议)的 Revit 模型转 GLTF/GLB 转换工具,支持 Revit 2020 到 2023。它把体积庞大的 BIM 模型转成浏览器直接能打开的轻量文件,材质、法线、UV、构件属性一并保留,还内置 Draco 多线程压缩,从安装到导出,跑通全流程用不了三分钟。
这是 Revit2GLTF 导出后,模型在浏览器里的真实效果:玻璃幕墙通透、结构层次清晰,全部来自一个普通的 Revit 模型。
那场"打不开模型"的社死现场
先讲个真事。
会议室里,甲方负责人盯着屏幕问了一句:"李工,这文件是用什么软件做的?我电脑上打不开啊。"
空气凝固了三秒。小李精心准备的方案全存在那个几个 G 的 Revit 项目文件里,而客户的电脑上,只有浏览器。
接下来的半小时,他经历了人生最漫长的传文件、装软件、重启电脑流程。最后客户摆摆手:"发个截图给我吧。"
你是不是也遇到过类似的尴尬?方案做得再好,别人打不开,就等于零。
回头看看我们常用的"补救"手段,其实都在给协作上锁:
- 导 PDF 图纸——静态的,没法转视角
- 截图发微信——糊成一团,细节全丢
- 让对方装 Revit——安装包比模型还大,还挑版本
- 录演示视频——能看,但没法交互
Revit2GLTF 想做的事情特别朴素:把你的 Revit 模型,变成一个任何人用浏览器就能打开、旋转、放大的网页 3D 文件。不装软件,不挑版本,手机也能看。
一句话说清它到底干了什么
这是一个"基于 MIT 开源协议的 Revit 导出 gltf 开源库"。拆开讲就三件事:
- 格式转换:把 .rvt 转成通用的 GLTF/GLB——Web3D 领域的"普通话"
- 数据保留:材质、UV、法向量、Revit 构件属性都能带走
- 体积瘦身:内置 Draco 压缩加相同构件合并,文件能小一大截
整个项目的骨架长这样,扫一眼就明白谁管什么:
Revit2GLTF/ ├── Export.cs # 主导出逻辑(插件入口命令) ├── MainWindow.xaml # 导出设置面板 ├── glTF/ │ ├── glTFData.cs # 数据结构定义 │ ├── glTFDraco.cs # Draco 压缩封装 │ ├── glTFSetting.cs # 导出参数配置 │ └── glTFUtil.cs # 工具函数 ├── DracoNet/ # C++ 多线程 Draco 算法封装 └── Revit2Gltf.addin # Revit 插件清单文件顺带一提,仓库的threejs/目录里还自带一套 Web 查看器,连"导出之后怎么展示"都帮你预备好了。
装上插件只需三步:装包、放文件、重启
动手环节一:安装。两条路任选。
- 懒人路线:下载编译好的安装包(Setup.msi),双击,完成。
- 极客路线:打开
Revit2GLTF.sln自己编译。注意项目依赖RevitAPI、RevitAPIUI、Newtonsoft.Json,需要提前装好对应版本的 Revit 开发环境。
装完确认Revit2Gltf.addin被 Revit 正确加载,然后重启 Revit,工具就在工具栏里等你了。
导出前,把这三个开关拨对位置
动手环节二:配置参数。
点开导出面板会发现,其实就三样东西,比想象中简单得多:
| 面板项目 | 作用 | 怎么选 |
|---|---|---|
| glTF path | 导出文件的保存路径 | 填个记得住的位置,或点 open 选择 |
| use draco | 是否启用 Draco 压缩 | 默认勾选。要分享就开着,体积差很多 |
| Export Revit Property set | 是否携带构件属性 | 勾上后,构件参数能在网页里查看 |
对应到源码,就是glTFSetting.cs里的三个字段:
useDraco = true; // 开启 Draco 压缩,文件更小 fileName = "myModel"; // 输出文件名 exportProperty = true; // 带上 Revit 属性,网页端可查新手第一次用,全勾上就行,不用纠结。
点下 start,等一个带秒数的惊喜
动手环节三:一键导出。
开始前有个小前提——先切换到 3D 视图。源码里明确做了判断,如果你待在平面视图里点导出,会收到提示"当前视图不支持导出,请切换至3D视图"。
低多边形住宅模型导出后的网页效果:建筑、车道、绿化配景一目了然,交互流畅。
切好视图、点下 start,接下来的画面很有仪式感:导出完成后弹出一个对话框,告诉你总共花了多少秒,还附上直接打开模型查看的链接。整个导出核心代码其实只有几行:
// 用 Revit 的 CustomExporter 走一遍几何导出 var context = new glTFExportContext(doc, setting); var exporter = new CustomExporter(doc, context) { ShouldStopOnError = true // 出错立刻停下,方便排查 }; exporter.Export(new List<ElementId>() { doc.ActiveView.Id });一条命令,模型就从 Revit 里"走出来"了。
把导出的 glb 扔进网页,客户自己就能看
动手环节四:分享。
导出得到.glb(或.gltf加外部资源)之后,把它放到任意一个可访问的 Web 目录,配合仓库threejs/下现成的查看器就能打开。加载一个 glb 模型,代码量小得感人:
const loader = new GLTFLoader(); loader.load('myModel.glb', function (gltf) { scene.add(gltf.scene); // 模型进场景,完事 });到这里,你的客户只需点开一个链接,就能在浏览器里旋转、缩放、查看模型和属性。没有安装、没有版本冲突、没有"打不开"。
材质不掉、光照到位:让模型在网页里"活"起来
很多人担心"转格式等于掉材质",Revit2GLTF 恰恰把材质保留当作核心能力之一:Revit 里的材质会转换成标准的 PBR 材质,漫反射、粗糙度、法线这些通道都有对应关系。仓库里还附带了好几套开箱即用的 PBR 材质资源:
项目内置的砖墙漫反射贴图,导出后的模型纹理依旧细腻真实。
再配上 HDRI 环境贴图打光,模型在网页里能呈现出相当接近真实渲染的质感:
仓库内置的 HDRI 环境贴图之一,给模型提供柔和、真实的光照环境。
一张清单看清它的六个看家本领
把能力亮点汇总成一张表,扫一眼就懂:
| 能力 | 说明 | 你得到的好处 |
|---|---|---|
| 带材质导出 GLTF | 材质转为 PBR,纹理不丢 | 网页里模型照样精致 |
| 导出法向量与 UV | 几何信息完整保留 | 光照、贴图表现准确 |
| Draco 多线程压缩 | C++ 层面并行压缩 | 文件体积大幅缩小,导出不磨蹭 |
| 相同构件合并 | 重复构件自动合并 | 同类型的柱、窗、门只存一份 |
| 导出 gltf / glb | 两种格式都支持 | 内嵌纹理选 glb,外部引用选 gltf |
| 导出 Revit 属性 | 构件参数随模型带走 | 网页端也能查属性 |
压缩这块靠的是DracoNet里 C++ 编写的多线程编码器,把 CPU 多核都用上,这也是"快"的底气所在。
三种人正在用它:设计师、施工员、汇报人
场景一,设计师的评审会。以前要扛一摞图纸加 PPT,现在一个链接搞定,评审现场直接旋转模型讲方案,效率翻倍。
场景二,施工现场。施工人员对着平面图经常一头雾水,把阶段性模型导成 glb 发到手机上,现场边翻边看,理解成本直线下降。
场景三,客户汇报。客户不装任何软件,手机点开链接自己逛模型,决策速度肉眼可见地变快。
即便是大型建筑,在网页里俯瞰全局也毫无压力。
顺带一提,这套转换能力不只服务建筑:仓库示例里甚至能看到透明化展示内部结构的电钻、VR 眼镜这类模型,说明它对各类几何体的导出都游刃有余。
新手爱问的五个问题,一次答完
Q:支持哪些 Revit 版本? A:官方说明明确写了支持 Revit 2020 ~ 2023。
Q:导出后材质显示不对怎么办? A:先检查 Revit 里的材质是否规范,尽量走标准材质库;再确认是否勾选了 use draco,个别极端情况与压缩参数有关。
Q:模型在网页里加载慢? A:优先开启 Draco 压缩、让相同构件合并生效;纹理偏大的话,适当降低贴图分辨率。
Q:怎么只导出一个视图? A:导出针对当前活动的 3D 视图进行,切到你想导出的视图再执行即可。
Q:这工具要钱吗? A:完全免费,MIT 协议,源码随便看、随便改。
项目还在长大:下一站是什么
从仓库布局能看出,作者在做的不是一台"转换器"那么简单:threejs/里躺着 Web 查看器、GLB/IFC/3DM/FBX/DXF 各种格式的示例、HDRI 与 PBR 材质库,像是一整套"Revit 模型上 Web"的生态雏形。
作者也留了话:欢迎进交流群一起"卷"。如果你对 BIM 开发、CAD 开发、Three.js、WebAssembly 感兴趣,这里确实是个不错的观察窗口。
现在就去下载,把第一个模型导出试试
动起来,别让方案死在"打不开"上:
- 打开终端,克隆项目:
git clone https://gitcode.com/gh_mirrors/re/Revit2GLTF - 进
Revit2GLTF/目录,翻源码、跑示例 - 拿一个简单的 Revit 模型,走一遍"切 3D 视图 → 点 start → 打开链接"的完整流程
- 把导出的 glb 丢进
threejs/查看器,感受一下 Web3D 的丝滑
工具的价值,取决于你愿不愿意迈出第一步。花掉今天这三分钟,明天你的客户就能在浏览器里,亲手旋转你设计的模型了。
【免费下载链接】Revit2GLTFview demo项目地址: https://gitcode.com/gh_mirrors/re/Revit2GLTF
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考