Collega Jesse neemt jullie graag mee in zijn ervaring in het programmeren met BIM, hij heeft een Revit Add-Inn gemaakt en heeft met diverse programmeertalen gewerkt zoals Dynamo en Python.
Voorstellen
Mijn naam is Jesse Dellemann, ben 21 jaar en studeer bouwkunde op de Hogeschool in Arnhem. Sinds februari loop ik stage bij BIM Creators te Veenendaal. BIM Creators is een expertisebedrijf voor het uitwerken en/of engineeren van BIM projecten op het gebied van installatietechniek. Als bouwkundestudent ligt het niet voor de hand om bij een installatietechnisch bedrijf je stage uit te voeren. Echter ben ik van mening dat wanneer je multidisciplinair bent opgeleid, je met een bredere kijk op de bouwwereld je projecten kan aanpakken/ aansturen.
Digitalisering bouwwereld
Mijn passie ligt vooral bij het ICT-gedeelte. De bouwwereld is in een hoog tempo aan het digitaliseren. Tekeningen worden niet meer 2D uitgewerkt, maar worden met betreffende programmatuur 3D uitgemodelleerd met als doel het verminderen van (faal)kosten en het verhogen van de kwaliteit. Ik werk al ca. 4 jaar met Autodesk Revit (3D tekenprogramma) en heb me al in het nodige verdiept, denkende aan Visual Programming & Generative Design.
Automatisering
BIM Creators geeft me de mogelijkheid om te kijken welke automatiseringsoplossingen er binnen het bedrijf mogelijk zijn. Binnen BIM Creators is men op zoek naar praktische oplossingen voor de automatisering. Het vervelende is wanneer je taken meerdere malen op dezelfde handmatige manier moet uitvoeren. Dit is ongunstig voor de productiviteit en gaat ten koste van de motivatie van de werknemer. Eén van mijn gemaakte leerdoelen betreft het schrijven van een Revit Add-In waarbij een van de handmatige taken wordt geautomatiseerd.
Programmeertalen
Voor het schrijven van een goed functionerende Revit Add-In moet je gebruik maken van verschillende programmeertalen. De programmeertalen die ik heb gebruikt voor het aanleren/ maken van een Revit Add-In zijn als volgt:
- Dynamo (Visueel programmeren)
- Python (Object georiënteerd)
- Csharp (Object georiënteerd)
Dynamo is vooral om de basis van programmeren te leren. Python gaat al dieper in op programmeren en is handig te gebruiken in combinatie met Dynamo. C# (Csharp) is ontwikkeld door Microsoft en is bedoeld voor het maken van applicaties (Add-Ins). Voor verdere toelichting betreft de programmeertalen zie de uitleg hieronder.
Visual Programming
Revit biedt een optie om met behulp van Dynamo visueel te programmeren. Met Dynamo koppel je als het ware blokjes (nodes) aan elkaar die uiteindelijk je code vormen. Het is vrij makkelijk te leren. Het is ontworpen voor iedereen, ook voor mensen die geen enkele programmeerervaring hebben (zoals ik).
Figuur 1 – Weergave script Dynamo
Python in combinatie met de Revit APIDynamo is vooral krachtig met het weergeven en manipuleren van data. Revit is als het ware een database. In elk element zit data, Dynamo kan deze data uitlezen en vertalen naar bijvoorbeeld Excel.
Bijna elk programma heeft een API, wat staat voor Application Programming Interface. De Revit API is gemaakt door Autodesk en bedoeld voor developers om te kunnen communiceren met Revit. De API is als het ware een kookboek met allerlei recepten voor het maken van een gerecht (Add-In). Door middel van de API kunnen Add-Ins worden gemaakt. Python is een van de makkelijkste aan te leren programmeertalen. Door zelfstudie (het lezen van boeken en bekijken van filmpjes) heb ik me Python eigen gemaakt.
Dynamo heeft zo zijn beperkingen, deze beperkingen zijn vaak door middel van interactie met de API op te lossen. Enkel dien je hier Python voor te gebruiken. Python is een object georiënteerde programmeertaal. Alles heeft te maken met objects en classes.
Zie hier een voorbeeld van een stuk script voor het automatisch controleren welke leiding isolatie bevat en welke leiding niet, waarna de leidingen die geen isolatie bevatten kunnen worden voorzien van isolatie met de gewenste dikte.
Figuur 2 – Weergave script Python met toegang tot de Revit API
Csharp en het maken van Revit Add-Ins
Wanneer je nog een stap verder de programmeerwereld in wilt duiken kun je zelf Revit Add-Ins schrijven. Autodesk Revit is geschreven in C# (C-sharp), om Revit Add-Ins te maken dien je de taal te gebruiken om op de juiste manier met het programma te communiceren. C# vind ik persoonlijk iets ingewikkelder dan Python. Maar alles kun je leren ?.
Met C# kun je Revit Add-Ins schrijven voor handelingen die jij graag wilt automatiseren.
Meerwaarde voor projecten
De meerwaarde zit vooral in het automatiseren van repeterende handelingen. Wanneer je dag in, dag uit steeds dezelfde handelingen verricht zou je hier een script voor kunnen opstellen. Hetzelfde geldt bij projecten, wanneer je vaak dezelfde handeling moet uitvoeren biedt een Add-In een slimme mogelijkheid. Het schrijven van een goed functionerende Add-In kost tijd, maar die tijd wordt dubbel en dwars terugverdiend wanneer de Add-In op de juiste manier functioneert.
Voorbeelden van repeterende handelingen waarbij een Add-In een uitkomst kan bieden:
- Automatisch isoleren van leidingen
- Het aanmaken van views
- Het maken van sheets
- Het maatvoeren van plattegronden/ doorsneden
- Het plaatsen/ generen van sparingen
Figuur 3 – Weergave script C# voor schrijven Revit Add-Ins