Actualiteiten rondom BIM en BIM Creators

Programmeren met BIM

De wereld van BIM is constant in beweging. De markt ziet hier steeds meer de voordelen van. Op onze blog delen we deze ontwikkelingen, onze ervaringen en ideeën rondom BIM en de BIM Creators.
“Kennis hebben is macht. Kennis delen is kracht!”


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 API
Dynamo 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

 

 

 

 

 


Interessant voor jouw netwerk? Deel dit bericht op:


Samen sparren?

    Schrijf je hier in voor de BIM brief!

    In deze mail vind je een greep uit onze lopende projecten, een kijkje in de BIM keuken en natuurlijk een stukje kennisdeling. Onze slogan is niet voor niets: ''Strong by Collaboration''!

    Onze Partners

    Strong by Collaboration, één van onze krachten!
    BIM Creators werkt graag samen en dat doen wij onder andere met: