IO List Generator

Every building automation project starts with the same paperwork problem: pages of technical drawings showing hundreds of individual input and output connections that have to be read, classified, and transcribed by hand before any controller gets configured. We built an AI-powered extraction tool that automates the repetitive parts of that process while keeping an engineer in the loop for the judgment calls that still need one.

About the client & problem statement


Our client integrates building automation systems — installing and configuring the Honeywell, Priva, and ISMA controllers that run HVAC, climate control, and lighting in commercial buildings. Every project begins with a technical drawing: a multi-page Visio document showing every sensor, actuator, and control signal, marked with arrows and shapes that indicate its type and direction.


Before any controller can be selected or wired, an engineer has to work through that drawing point by point — identifying whether each connection is digital or analog, input or output, which device it belongs to, and what it's called — and transcribe all of it into a structured IO list in the correct order. For an experienced engineer, that's one to two hours of careful, repetitive reading per document, and a single missed or misread symbol can carry through to a wiring mistake on site.


It's exactly the kind of task that's valuable to get right, tedious to do by hand, and — until recently — hard to hand off to software, because it depends on reading a visual convention, not just text.

Solution


We didn't build this as a fully automatic black box, and deliberately so. AI extraction gets you very far, but no model hits 100% on a document that mixes vendor-specific symbol conventions, project-specific naming, and drawings that have quietly evolved their own local dialect over years of projects. So we designed a human-in-the-loop tool: the AI does the reading, an engineer does the final check, and the two together are dramatically faster than either alone.


At the time, we built this on Google's Gemini — specifically because that model was recognized as the strongest at genuinely multi-modal reasoning, reading a rendered drawing and its underlying text together in one pass rather than stitching separate tools together, and because it was cost-effective enough to run across a full multi-page drawing set without turning AI spend into its own line item on every project. Prompted with few-shot examples and read against each page's legend, it returns a clean, ordered, structured IO list, ready for an engineer to check rather than build from scratch.

Image

1. Preparing the input layer


A technical drawing isn't really a document, it's a diagram — the connection between a symbol and the wire it sits on carries meaning that plain text extraction throws away on its own. We feed the model the page two representations at once: the raw text layer, precise on labels, and a rendered image of the same page, which preserves which symbol is actually attached to which peripheral.

We wrote our own preprocessing pipeline that extracts the exact position of every element on the page, so the model reads the drawing the way a person's eye actually would — left to right, top to bottom — instead of whatever order the PDF happens to store it in internally. That's the piece of engineering that turns a jumble of disconnected symbols into a sequence the model can actually reason about.


Making sure the model sees the drawing correctly, before it ever tries to reason about it, is half the engineering here — what you hand it, and how you hand it, matters as much as what you ask it.

2. Why a good prompt alone doesn't get you there


Before we got involved, the client had already tried the obvious thing: pointing ChatGPT straight at a drawing and asking it to extract the IO list. It didn't work — somewhere around 50% accuracy or worse, nowhere near something an engineer could rely on without re-checking every single line anyway.


That gap is the whole reason this became an engineering project instead of a five-minute prompt. Structuring what goes in, structuring what should come out, and putting a human checkpoint before anything gets trusted, is what took the same underlying model from that starting point to 95%+ accuracy. The model didn't get smarter. The workflow around it did.

We used to set aside a couple of hours for a drawing like this. Now I skim the output, fix a couple of things, and I'm done before my coffee's cold.

Engineering Lead, building automation integrator

3. Structuring the expected output layer


Generic prompting gets you generic results. We built a small library of few-shot examples directly from the client's own historical projects — heat pump installations, server room ventilation, HVAC systems — so the model learned the naming conventions and peripheral pairings this particular team actually uses, not a textbook version of them. It's the same engineering discipline as step one, just applied to what comes out instead of what goes in.

Image

4. A second pair of eyes, side by side


Every extracted IO list goes through a review interface before it's trusted: the original drawing on one side, the AI's structured reading on the other, so an engineer can check and correct type, direction, naming, or ordering in seconds rather than re-deriving it from scratch. That review step is the whole reason this tool is reliable enough to run on real projects — automation handles the volume, a person still signs off on the result.

5. Finalizing into a handoff-ready document


Once an engineer has signed off, the reviewed IO list gets assembled straight into a finished document for the field team — no extra formatting pass, no copy-pasting between tools. The AI and the review step get most of the attention, but this last step is what actually makes the tool usable day to day: nothing leaves this pipeline half-finished.

Conclusions


The task that used to take an experienced engineer one to two hours per drawing now takes a few minutes of double-checking. The engineering judgment hasn't moved — controller selection and IO assignment are still expert calls — but the hours of manual transcription sitting in front of that judgment are gone. This isn't a lab result either: the tool is in daily production use on real projects.


The bigger takeaway isn't really about drawings at all. This is about as niche as a software problem gets — one company's internal process, built around one specific type of engineering diagram — and that's exactly why it's worth paying attention to. If a quick run at ChatGPT doesn't nail a task like this out of the box, and for most genuinely specific business processes it won't, that's not proof the task is stuck being manual forever. It usually just means the task needs an engineer around it, not a bigger prompt.

Image

Got a Process Like This?


We believe a lot of business processes that looked permanently manual have already become automatable — this project is proof of that, not a preview of something still coming. If part of your operation still depends on someone reading, transcribing, or double-checking something by hand, there's a good chance the engineering to change that already exists.


Discuss your business automation project on WhatsApp

0

Like what you see?

Get in touch and we will be happy to discuss your project.