Alle projecten

Case study · Bouw en ruimtelijk ontwerp

W0W zelftellend model

Eén knop, en de oppervlaktestaat is het model.

Ruby SketchUp API IFC Excel

Probleem

Architecten maken 3D modellen in SketchUp. Wat daarna moet gebeuren is iets anders: er moet een oppervlaktestaat uit komen, en een ruimtemodel dat in IFC verder kan in de keten. Twee documenten die het model beschrijven, maar die je apart moest samenstellen.

Dat betekent tellen. En omdat een ontwerp nooit in één keer klaar is, betekent het vooral opnieuw tellen. Er verdwijnt een ruimte, er komt er een bij, een maat verandert. De staat die je gisteren maakte klopt vandaag niet meer, en dat zie je er niet aan af. Een spreadsheet ziet er ook keurig uit als hij verouderd is.

Menno Mekes stelde mij in 2020 een heldere vraag: kan je een SketchUp-extensie bouwen die met één exportknop een oppervlaktestaat oplevert met het bijbehorende ruimtemodel in IFC? Het antwoord was ja, en het echte werk zat in wat daarachter moest kloppen.

Aanpak

Het uitgangspunt was dat de telling geen kopie van het model mag zijn. Een kopie kun je namelijk vergeten bij te werken, en dan heb je twee waarheden. De gegevens die in de staat terechtkomen, zijn dus letterlijk de gegevens uit het model. Verandert er iets aan het ontwerp, dan druk je op de knop en is de telling opnieuw afgeleid.

Om dat te laten werken moet de informatie in het model zelf leven, niet in de export. De eigenschappen van elke ruimte worden opgeslagen bij het object waar ze bij horen, en die opslag wordt via observers direct bijgewerkt op het moment dat er iets verandert. Niet pas bij het exporteren. Dat is een bewuste keuze: als je pas bij de export gaat verzamelen, is het moment waarop iets kan afwijken al gepasseerd.

Hetzelfde geldt voor de invoer. Materialen worden toegekend met de Paint Bucket, dus met het gereedschap dat elke SketchUp-gebruiker al kent, en niet via een apart invoerscherm. Elke extra plek waar je iets moet invullen, is een extra plek waar het vergeten kan worden.

En dan de controle. Voor de export loopt er een validatie over de volumes, want een ruimte met een omgekeerd vlak is technisch geen geldig volume meer en telt dus verkeerd mee. Die vlakken worden automatisch teruggedraaid. Daarna krijgt de gebruiker een korte melding met hoeveel er zijn gecorrigeerd, en alleen als er ook echt iets is gecorrigeerd.

Resultaat

Menno omschreef het destijds als het zelftellende model. Zijn punt was dat het geen Excel naast het model is, maar het model zelf in een andere vorm. Verandert er iets, dan vernieuwt de telling zichzelf.

Wat ik zelf het sterkste resultaat vind, staat niet in de functionaliteit maar in de tijdlijn. De extensie is in 2020 in gebruik genomen. In 2021 en 2022 kwam er een kleine update. Daarna heeft hij vier jaar in het kernproces gedraaid zonder dat ik er iets aan hoefde te doen. Pas in 2026 is er een nieuwe versie gekomen met extra functionaliteit.

Zes jaar meedraaien in een kernproces, waarvan vier jaar zonder onderhoud, is voor mij de enige echte meetlat. Software die na oplevering rustig zijn werk doet, is software waar de basis onder klopt.

Bij die nieuwe versie heb ik meteen de code bijgewerkt naar de eisen die Trimble tegenwoordig aan SketchUp-extensies stelt. Functioneel is er niets veranderd en de gebruiker merkt er niets van, maar hij is robuuster en klaar voor de SketchUp-versies die nog komen. Dat is precies waarom ik bij oplevering let op overdraagbaarheid: je wilt zes jaar later kunnen uitbreiden zonder eerst te moeten uitzoeken hoe het ook alweer in elkaar zat.

Meer informatie te vinden via

  • Menno Mekes, W0W! Het zelftellende model, LinkedIn, mei 2021
Kennismaken

Vertel me waar het misgaat

Geen verkoopgesprek. We kijken naar waar jouw kernproces kwetsbaar is en of ik daar de juiste persoon voor ben. Zo niet, dan zeg ik dat.