极客BIM设计工坊公众号文章

OpenArchi:用 Rust 做一个可编辑的原生 BIM 工作台,先把墙体、楼板和撤销做实

OpenArchi 是一个面向 macOS 的原生 BIM 工作台原型。

极客BIM设计工坊

公众号 · 436 篇文章

OpenArchi 是一个面向 macOS Apple Silicon 的原生 BIM 工作台原型。当前版本已经覆盖墙体、楼板、楼层、选择、属性编辑、二维平面、透视三维、区域裁切和撤销重做。AI 面板仍是本地规则演示。

0.1.0

当前版本。

3

核心依赖。

0

Stars。

先看懂:它现在能做什么。

OpenArchi 面向建筑师熟悉的建模动作。用户在平面里画墙、放楼板、输入精确尺寸,再切到透视三维查看结果。

项目用 Rust 编写桌面应用,界面采用 egui/eframe。三维渲染使用 wgpu,在 macOS 上走 Metal。应用不依赖浏览器、HTML、JavaScript 或 WebView。

读者可以把它理解成一张正在搭建的建筑工作台。它已经有可编辑的墙和楼板,也有楼层、属性、图库、保存、撤销等工作流;菜单里的大量建筑工具仍属于交互式界面预览,不会修改模型。

界面支持 English 与简体中文切换。语言菜单位于窗口右上角,选择后会保存到 macOS 的应用支持目录,下次启动继续使用。

英文界面显示 Courtyard House 示例模型。左侧是 Ground Floor 平面,右侧是 3D Perspective 透视视图。

切换为简体中文后,平面、透视三维、工具箱、导航器和右侧属性面板保留同一模型状态。


模型、平面和三维共用一份数据。

项目的核心结构是一个独立的 Project 模型。墙体、楼板、楼层、材质和稳定元素 ID 都保存在这里,平面视图与透视三维视图直接读取同一份数据。修改墙高或位置后,两个视图会同步更新,撤销记录也作用于这份模型。

这个选择决定了 OpenArchi 的工作方式。界面负责收集操作,几何模块负责墙体轮廓、拾取、吸附和裁切。渲染模块负责把模型画出来,保存模块负责把经过校验的项目写成 JSON。

未来的 IFC、GSM 或 BSM 接入被放在 ModelAdapter 边界之外。当前适配器只提供自有 JSON 的字节导入导出接口。

这里的“BIM”需要按原型范围理解。墙体仍是独立的直线棱柱,楼板是等厚矩形;项目还没有门窗洞口、复合构造、约束求解、剖立面、施工图、工程量扣减和协作。


下面按实际操作顺序说明一条编辑链。

● 按 F3 进入透视三维,按 F2 返回平面。

● 选择 Wall,在平面点击起点和终点;Info Box 设置厚度、高度和材质。

● 用 Tracker 输入 Length、Angle,或按 Enter 确认数值。

● 按 L 创建矩形楼板,再用 V 选择构件并在 Properties 中精确修改。

● 用 ⌘Z / ⇧⌘Z 撤销和重做;按 ⌘S 通过 JSON 保存项目。

创建墙体时,先按 W 或点击 Wall 工具,再在平面中点击起点和终点。鼠标移动时可以用 Shift 或 Ortho 约束方向。点击起点后,Tracker 会显示 Length 和 Angle;输入数值并按 Enter,墙体就按精确尺寸创建。Info Box 设置的是下一面墙的厚度、高度和材质。

创建楼板时按 L,点击矩形的两个对角点,或在 Tracker 中输入 ΔX 和 ΔY。楼板顶面位于当前楼层标高,厚度向下延伸。新墙体和楼板都会归入当前楼层。

修改构件时按 V 进入选择工具。墙或楼板可以在平面和三维中点选。平面拖动会移动构件,右侧 Properties 面板可以输入坐标、尺寸和属性。

选择单个构件后按 ⌘T,打开独立的 Element Settings 对话框。点击 Apply 提交修改,Cancel 放弃修改。

选中一个墙体后,把 Height 改为 3.500,再点 Apply。平面属性和三维高度会同步变化。随后按 ⌘Z,修改回到原来的数值。一次拖动会记录为一次撤销事务,最多保留 100 步撤销。

Marquee 是当前原型里更有辨识度的一组工具。它支持矩形、三点旋转矩形和多边形区域,能按当前楼层或全部楼层工作;墙体和楼板可以按区域与高度范围进行裁切,生成切口面。选区还可以拖动、复制、镜像、旋转 90 度、跨楼层移动,或只拉伸区域内的节点。

按 M 激活 Marquee。在平面拖拽矩形,或切换到三点旋转矩形和多边形模式。多边形用右键闭合,Enter 留给数值输入。按 ⌘A,才会把区域内有节点的墙和楼板转成显式多选;单独画出的框线仍然只是区域本身。

按 F5,可以把当前显式选择或 Marquee 带入局部透视三维。Marquee 模式下,墙体和楼板会按简单多边形边界与高度范围生成裁切网格和切口面。Inside 显示区域内部,Outside 目前只过滤区域外的构件。Esc 会先清空显式选择,再移除区域。


AI 入口目前先保持克制。

界面里有 Library 和 Assistant 面板。Library 可以搜索并应用内置的墙体、楼板参数预设,再回到平面放置构件。Assistant 可以执行本地的 Summary、Quantities 和 Check model。

路线图把 AI 放在下一阶段。项目计划先暴露一组有类型的模型操作,再让 AI 提出有边界的修改。建筑师可以预览、检查、确认,并把修改纳入撤销记录。

这条路线包含五个动作:读取项目上下文;提出修改;返回受影响的元素 ID;显示验证问题;等待人工确认。当前代码完成的是模型和交互基础,AI 接入仍停在路线图阶段。


适合谁,以及从哪里开始。

它适合研究原生建筑软件、Rust 图形界面、可编辑模型和 AI 操作边界的开发者。建筑师也可以用它观察墙体、楼板、视图同步和撤销如何落到代码里。

macOS Apple Silicon 是当前目标环境。Rust 版本要求至少为 1.95,仓库给出的实测工具链是 Rust 1.98.1。

./scripts/run.sh 启动源码版本。

./scripts/cargo.sh check --locked 检查编译。

./scripts/cargo.sh test --locked 运行测试。

open dist/OpenArchi.app 打开本地应用包。

源码运行需要访问 crates.io;仓库提供的 .app 是本地构建包,不是 Apple 公证发行包。关闭窗口前需要手动保存,当前没有自动保存、崩溃恢复和未保存拦截。大型项目性能、不同显卡、安装器、公证和长期稳定性也仍在验证范围之外。

范围当前交付边界。

OpenArchi 可以作为原生建筑工作台原型来运行和研究;生产项目仍需要成熟 BIM 软件提供的格式、构件、图纸、协作与工程数据能力。


SOURCES。

OpenArchi README:项目定位、操作方式与功能边界。

OpenArchi architecture:模型、编辑器、几何与渲染模块说明。

OpenArchi validation / roadmap:验证记录与后续路线。

前往微信阅读全文

内容来自公众号,可前往微信查看原文。

查看作者的更多文章 →订阅更新、RSS 与阅读指南 →