IO List Generator

Elk project rond gebouwautomatisering begint met hetzelfde papierwerk: technische tekeningen vol honderden individuele in- en uitgangen die eerst met de hand gelezen, geclassificeerd en overgetypt moeten worden voor er ook maar één controller geconfigureerd kan worden. Wij bouwden een AI-tool die het repetitieve werk automatiseert, terwijl een ingenieur betrokken blijft voor de beslissingen die nog steeds mensenwerk zijn.

Over de klant & probleemstelling


Onze klant integreert gebouwautomatiseringssystemen: hij installeert en configureert de Honeywell-, Priva- en ISMA-controllers die de HVAC, klimaatregeling en verlichting in commerciële gebouwen aansturen. Elk project begint met een technische tekening: een Visio-document van meerdere pagina's met elke sensor, actuator en stuursignaal, aangeduid met pijlen en symbolen die het type en de richting weergeven.


Voor er ook maar één controller gekozen of bekabeld kan worden, moet een ingenieur die tekening punt per punt doorwerken — bepalen of elke verbinding digitaal of analoog is, input of output, bij welk toestel ze hoort en hoe ze heet — en dat alles in de juiste volgorde overzetten naar een gestructureerde IO-lijst. Voor een ervaren ingenieur is dat één tot twee uur nauwkeurig, repetitief lezen per tekening, en één gemist of verkeerd gelezen symbool kan later op de werf tot een bekabelingsfout leiden.


Precies het soort taak dat je goed wil doen, dat vervelend is om met de hand te doen, en die je — tot voor kort — moeilijk aan software kon overlaten, omdat het draait om het lezen van een visuele conventie, niet enkel tekst.

Oplossing


We bouwden dit bewust niet als een volledig automatische black box. AI-extractie brengt je al heel ver, maar geen enkel model haalt 100% op een document dat leveranciersspecifieke symboolconventies, projectspecifieke naamgeving en tekeningen combineert die doorheen jaren stilaan hun eigen lokale dialect hebben ontwikkeld. Daarom kozen we voor een human-in-the-loop tool: de AI doet het lezen, een ingenieur doet de eindcontrole, en samen zijn ze veel sneller dan elk apart.


We bouwden dit op dat moment op Google's Gemini — specifiek omdat dat model toen gold als het sterkst in echte multimodale redenering: het leest een gerenderde tekening en de onderliggende tekst in één keer samen, in plaats van losse tools aan elkaar te knopen, en het was kostenefficiënt genoeg om over een volledige set tekeningen te draaien zonder dat AI-kosten een aparte begrotingspost werden per project. Met few-shot voorbeelden en de legende van elke pagina als houvast, levert het een nette, geordende, gestructureerde IO-lijst op — klaar om door een ingenieur gecontroleerd te worden in plaats van van nul opgebouwd.

Image

1. De inputlaag voorbereiden


Een technische tekening is eigenlijk geen document, maar een diagram — de link tussen een symbool en de draad waarop het staat, draagt betekenis die platte tekstextractie gewoon weggooit. We geven het model de pagina op twee manieren tegelijk: de ruwe tekstlaag, nauwkeurig voor labels, en een gerenderde afbeelding van diezelfde pagina, die bewaart welk symbool effectief aan welke periferie hangt.

We schreven een eigen preprocessing-pipeline die de exacte positie van elk element op de pagina uitleest, zodat het model de tekening leest zoals een mensenoog dat zou doen — van links naar rechts, van boven naar onder — in plaats van in de volgorde waarin de PDF alles toevallig intern heeft opgeslagen. Dat stuk engineering is wat een chaos aan losse symbolen omzet in een volgorde waar het model echt over kan redeneren.


Ervoor zorgen dat het model de tekening correct ziet, nog voor het er iets over probeert af te leiden, is hier de halve engineering — wat je het model geeft, en hoe je het geeft, weegt even zwaar door als wat je het vraagt.

2. Waarom een goede prompt alleen niet volstaat


Voor wij erbij betrokken raakten, had de klant al het voor de hand liggende geprobeerd: ChatGPT rechtstreeks een tekening voorleggen en vragen om de IO-lijst eruit te halen. Dat werkte niet — ergens rond de 50% nauwkeurigheid of minder, verre van iets waar een ingenieur op kon vertrouwen zonder toch elke lijn opnieuw te controleren.


Precies dat verschil is de reden waarom dit een engineeringproject werd in plaats van een prompt van vijf minuten. Structureren wat erin gaat, structureren wat eruit moet komen, en een menselijke controle inbouwen voor er iets vertrouwd wordt — dat is wat hetzelfde onderliggende model van dat startpunt naar 95%+ nauwkeurigheid bracht. Het model werd niet slimmer. De workflow eromheen wel.

Vroeger trokken we voor zo'n tekening al snel een paar uur uit. Nu loop ik de output even na, verbeter ik een paar dingen, en ben ik klaar voor mijn koffie koud is.

Engineering Lead, integrator gebouwautomatisering

3. De verwachte outputlaag structureren


Generieke prompts geven generieke resultaten. We bouwden een kleine bibliotheek van few-shot voorbeelden, rechtstreeks op basis van historische projecten van de klant zelf — warmtepompinstallaties, serverruimteventilatie, HVAC-systemen — zodat het model de naamgeving en periferiekoppelingen leerde die dit specifieke team écht gebruikt, geen handboekversie ervan. Dezelfde discipline als bij stap één, nu toegepast op wat eruit komt in plaats van wat erin gaat.

Image

4. Een tweede paar ogen, naast elkaar


Elke geëxtraheerde IO-lijst gaat eerst langs een reviewinterface voor ze vertrouwd wordt: de originele tekening aan de ene kant, de gestructureerde lezing van de AI aan de andere kant, zodat een ingenieur in seconden type, richting, naamgeving of volgorde kan controleren en corrigeren, in plaats van alles opnieuw af te leiden. Die reviewstap is precies de reden waarom deze tool betrouwbaar genoeg is voor echte projecten — automatisering doet het volume, een mens zet nog steeds zijn handtekening onder het resultaat.

5. Afwerken tot een document klaar voor overdracht


Zodra een ingenieur zijn goedkeuring geeft, wordt de gecontroleerde IO-lijst meteen samengevoegd tot een afgewerkt document voor het team op het terrein — geen extra opmaakronde, geen kopiëren en plakken tussen tools. De AI en de reviewstap krijgen de meeste aandacht, maar deze laatste stap is wat de tool dag na dag echt bruikbaar maakt: niets verlaat deze pipeline halfklaar.

Conclusies


De taak die een ervaren ingenieur vroeger één tot twee uur per tekening kostte, vraagt nu nog maar enkele minuten controle. Het technische oordeel is niet veranderd — controllerselectie en IO-toewijzing blijven expertisewerk — maar de uren manueel overtypen die daarvoor nodig waren, zijn verdwenen. Dit is ook geen labresultaat: de tool draait dagelijks in productie op echte projecten.


De grotere les gaat eigenlijk niet over tekeningen. Dit is zowat het meest nichegebonden softwareprobleem dat er is — het interne proces van één bedrijf, gebouwd rond één specifiek type technische tekening — en net daarom is het de moeite om even bij stil te staan. Als ChatGPT zo'n taak niet meteen uit de doos oplost, en voor de meeste écht specifieke bedrijfsprocessen zal dat niet lukken, dan bewijst dat niet dat de taak voor altijd manueel werk blijft. Meestal betekent het gewoon dat de taak een ingenieur nodig heeft, geen grotere prompt.

Image

Herken je zo'n proces in je eigen bedrijf?


Wij geloven dat veel bedrijfsprocessen die er voordien permanent manueel uitzagen, intussen wél automatiseerbaar zijn geworden — dit project is daar het bewijs van, geen voorproefje van iets dat nog moet komen. Als een deel van jouw werking nog steunt op iemand die iets met de hand leest, overtypt of controleert, is de kans groot dat de engineering om dat te veranderen al bestaat.


Bespreek je automatiseringsproject via WhatsApp

0

Ook een project lanceren?

Neem contact met ons op en we bespreken graag uw ideeën.