I'm an architect. I built an AI agent that draws - and outputs IFC models

I’m an architect. I built an AI agent that draws - and outputs IFC models

我是一名建筑师。我开发了一个能绘图并输出 IFC 模型的 AI 智能体

Every coding agent I tried could write files. None of them could use the computer. I’m an architect. I don’t write code for a living - I design buildings. But I got tired of repeating the same drawings, the same spreadsheets, the same model exports by hand. So I built one: Axio Coder, an open-source (AGPL-3.0) agent that works inside your project, next to you. 我尝试过的每一个编程智能体都能编写文件,但没有一个能真正操作电脑。我是一名建筑师,我的职业不是写代码,而是设计建筑。但我厌倦了反复手动进行同样的绘图、制作同样的电子表格以及导出同样的模型。于是我开发了一个工具:Axio Coder,这是一个开源(AGPL-3.0)的智能体,它能在你的项目中与你并肩工作。

Here is the part that turned out to be hard. The thing almost nobody does: operating native programs. Any agent can read and write files in a repository. That is the easy 80%. The hard 20% is a program with no API. A CAD window. Photoshop. MS Paint. These are the programs architects and engineers actually live in, and they expose no endpoint. 最困难的部分在于几乎没人做的一件事:操作原生程序。任何智能体都能在代码库中读写文件,这只是简单的 80%。而那困难的 20% 是指那些没有 API 的程序,比如 CAD 窗口、Photoshop 或 MS Paint。这些是建筑师和工程师真正赖以生存的软件,但它们并不提供任何接口。

Most “computer use” approaches screenshot the screen and guess pixel coordinates. On Windows I took a different route: the UI Automation tree. Every native control announces itself - name, type, value - to the operating system. That is how screen readers work. So instead of guessing where a button is, the agent asks the program: where is the “Fill with colour” button? and gets a real answer from the app itself. That is how it drew a rocket in Paint, stroke by stroke: it picked the tool, dragged from here to there, and then looked at the screen again before the next stroke. 大多数“电脑使用”方案是通过截屏并猜测像素坐标来实现的。在 Windows 上,我采取了不同的路径:利用 UI 自动化树(UI Automation tree)。每个原生控件都会向操作系统声明自己的名称、类型和值,这也是屏幕阅读器的工作原理。因此,智能体不再是猜测按钮在哪里,而是直接询问程序:“‘颜色填充’按钮在哪里?”并从应用程序本身获得准确的回答。这就是它在画图软件中一笔一画绘制火箭的方式:它选择工具,从一点拖动到另一点,并在进行下一笔之前再次观察屏幕。

Eyes change everything. An agent that writes code does not need to see. An agent that draws does. So this one can look: at the screen, at a PDF page, at an image, at a 3D model rendered from any angle - and it can compare what it produced against the reference, side by side. That closed the loop for me: generate, look, correct, repeat. The agent builds the geometry, renders it, looks at it, and says honestly what is still wrong. Which is how a person works. 视觉改变了一切。编写代码的智能体不需要“看”,但绘图的智能体必须具备视觉。因此,这个智能体可以观察屏幕、PDF 页面、图像或从任何角度渲染的 3D 模型,并将它生成的内容与参考资料进行并排对比。这对我来说形成了一个闭环:生成、观察、修正、重复。智能体构建几何图形、渲染它、观察它,并诚实地指出哪里还有问题。这正是人类的工作方式。

It outputs engineering models, not just files. This is the part I have not seen elsewhere. Give it a reference - a photo, a drawing, a spec with dimensions - and it builds the parametric model, then writes it out in the formats the industry actually uses: IFC, DXF, STEP. Real geometry, measured back from the file it just wrote and checked against the formula that was supposed to produce it. The generated folder in the repository holds three IFC revisions of the same piece. Each one was looked at and corrected. That is the loop, in public. The point is not “AI makes 3D”. The point is that the output leaves the chat window and lands in ArchiCAD, inside a BIM workflow - where the work continues. 它输出的是工程模型,而不仅仅是文件。这是我在其他地方没见过的功能。给它一个参考资料——照片、图纸或带有尺寸的规格说明——它就能构建参数化模型,然后以行业实际使用的格式(IFC、DXF、STEP)导出。这是真实的几何图形,通过测量它刚刚写入的文件,并与预期的生成公式进行比对来验证。代码库中的生成文件夹里存放着同一构件的三个 IFC 版本,每一个都经过了观察和修正。这就是公开的闭环。重点不在于“AI 制作 3D”,而在于输出结果能离开聊天窗口,进入 ArchiCAD 和 BIM 工作流中,让工作得以延续。

The boring parts that matter: Memory (notes and past sessions are indexed and retrieved semantically), The diff (every edit is shown before and after, changed lines highlighted), The terminal (a live shell plus a card per process), and It watches itself (if it repeats the same call with the same arguments, it stops and changes approach instead of insisting). 那些重要的枯燥细节包括:记忆功能(笔记和过往会话会被语义化索引和检索)、差异对比(每次编辑都会显示前后对比,并高亮显示更改行)、终端(实时 Shell 加上每个进程的卡片),以及自我监控(如果它重复使用相同的参数进行相同的调用,它会停止并改变方法,而不是固执己见)。

What it is not good at: I would rather say it now than have you find out later. It is a single-user desktop app (Electron + Python), built for me first. It has rough edges. Heavy CAD geometry fails sometimes and the agent has to notice and back off. And it will not replace your CAD software - it does the tedious 80% so you can spend your time on the 20% that needs judgement. 它不擅长的地方:我宁愿现在就说出来,也不想让你以后才发现。这是一个单用户桌面应用(Electron + Python),最初是为我个人构建的,所以还有些粗糙。复杂的 CAD 几何图形有时会处理失败,智能体必须能意识到并及时撤回。它不会取代你的 CAD 软件——它只是帮你处理那 80% 的繁琐工作,让你能把时间花在需要判断力的那 20% 上。

Where this is going: The piece I am working on now is the agent operating other programs in sequence on its own: open the program, do the work, export, look at the result, move on. After that, modelling from a reference image end to end, with me no longer in the middle. If you are an architect, an engineer, or someone who automates their own work, I would genuinely like to know where this breaks for you. 未来方向:我目前正在开发的功能是让智能体自主按顺序操作其他程序:打开程序、完成工作、导出、查看结果、继续下一步。之后,我希望实现从参考图像到建模的端到端自动化,不再需要我介入。如果你是一名建筑师、工程师,或者是一个自动化工作流程的实践者,我真心想知道这个工具在什么地方会让你遇到障碍。

Repository: github.com/Axidesk/Axio-Coder - AGPL-3.0 代码库:github.com/Axidesk/Axio-Coder - AGPL-3.0