Spreek je mijn taal? – Programmering voor de AEC Industry

  • door

Bij VIATechnik onderzoeken en analyseren we voortdurend verschillende programmeertalen om te bepalen welke tools het beste aansluiten bij de projectdoelen. Dit is wat we hebben geleerd.

Naarmate digitale technologieën doordringender worden in de ontwerp- en constructieruimte, is de industrie niet langer een exclusief domein voor architecten, ingenieurs en aannemers. Veel processen met betrekking tot het ontwerpen en bouwen van gebouwen zijn in toenemende mate afhankelijk van digitale technologieën. Tien jaar geleden was het automatiseren van routines in AutoCAD met één programmeertaal LISP misschien voldoende. Tegenwoordig zit de veranderende dynamiek van de industrie nu in zoekprofessionals met kennis van onder meer Python en C #. Deze programmeertalen zijn essentieel voor het ontwikkelen van aangepaste plug-ins of het automatiseren van taken. Autodesk is zeker een belangrijke speler geweest op het gebied van cloudtechnologieën en app-ontwikkeling. Een duidelijk voorbeeld is Forge [1], dat heeft bijgedragen aan het populariseren en stroomlijnen van de ontwikkeling van AEC-specifieke apps.

De digitalisering van de bouwsector, samen met de toenemende complexiteit en duur van het project, heeft bouwprofessionals gedwongen om over te stappen van ontwerp naar ontwerpontwikkeling, waar apps en plug-in-ontwikkeling kunnen helpen de efficiëntie en effectiviteit binnen de industrie te verbeteren. Er zijn veel programmeertalen beschikbaar en het kan overweldigend zijn om te bepalen welke de juiste is voor een project. Het kiezen van de juiste taal is cruciaal om de beste prestaties in de kortst mogelijke tijd te krijgen.

In dit bericht geven we je een overzicht van de volgende categorieën die VIATechnik beschouwt als essentieel voor ons softwarewerk: webontwikkeling, plug-in en add-in ontwikkeling, visuele scripting, VR / AR-ontwikkeling en iOS / Android-ontwikkeling .

Webontwikkeling

Webontwikkeling betekent het bouwen en onderhouden van websites en webapps. Het is een combinatie van verschillende technologieën die gegevens via internet uitwisselen. Waarom zouden we webontwikkeling voor de AEC-industrie moeten overwegen? Hoe is het relevant voor het vullen van metalen frames of de vulcapaciteit van kabelgoten of het genereren van spoelen?

Autodesk heeft een grote stap gezet in de richting van webontwikkeling met Forge, waarmee bedrijven ontwerp- en engineeringgegevens kunnen gebruiken om op maat gemaakte software-apps te ontwikkelen en workflows met elkaar te verbinden. Met webontwikkeling is het mogelijk het gebouwinformatiemodel te delen met het publiek, belanghebbenden en ontwerpprofessionals. Om iets te ontwerpen met een prettige gebruikersinterface die via internet communiceert, zullen ontwikkelaars Javascript en Python gebruiken. Afbeelding 1 toont een moderne digitale webapp voor facilitair beheer.

Revit naar webRevit naar web
Afbeelding 1. Webapp voor digitaal faciliteitenbeheer, fotocredits: VIATechnik

JavaScript. Volgens recent onderzoek van Northeastern University [2] was Javascript een van de meest populaire talen in 2020. Veel frameworks zijn gebouwd op Javascript. Nu is het een moderne, volledig functionele en zeer flexibele taal. Het overgrote deel van de gratis, open-source gebruikersinterface (UI) en gebruikerservaringsbibliotheken (UX) is beschikbaar in Javascript.

Javascript-ontwikkelaars kunnen Microsoft-authenticatiebibliotheken, Uber-mappingbibliotheken, Google UI-componenten, het weergaveframework van Facebook en het backend-serverontwerp van Netflix gebruiken. Dit wordt allemaal onderhouden door grote bedrijven die de middelen hebben om dit te doen. Javascript-ontwikkelaars kunnen back-endservers, website-front-end en web-apps bouwen die als websites kunnen functioneren, maar ook offline gegevens kunnen cachen en opslaan.

Met sommige apps kunnen gebruikers bijvoorbeeld een ruwe vorm van een gebouw plannen en masseren op een echte kaart in 3D en vervolgens energie- en kostenanalyses uitvoeren.

Python. Artur Yolchan, Senior Software Engineer en eigenaar van de website Coding Skills, zegt: "Python wordt in 2021 waarschijnlijk de meest favoriete programmeertaal voor ontwikkelaars." [3] Het is een van de top 5 programmeertalen en de snelst groeiende hoofdtaal ter wereld. [4] De groei van Python is de afgelopen vijf jaar enorm gestegen door de aanpassing van machine learning en datawetenschap.

Het algemene doel van Python is programmeren aan de serverzijde. Het werkt rechtstreeks met bestandssystemen op de server. Ontwikkelaars kunnen al hun kracht gebruiken om gegevens te analyseren, niet alleen voor machine learning, maar ook voor BIM-gegevensverwerking, wiskunde en analytische velden. Het doet al dit werk voor websites achter de schermen. Dice, een van de toonaangevende websites voor technische carrières, voorspelt de groeiende belangstelling voor Python in 2021.

Add-in en plug-in ontwikkeling

Plug-ins kunnen zelfs de krachtigste BIM-platforms automatiseren, aanpassen en uitbreiden. Bij VIATechnik's Cirrus Studio werkt ons team voortdurend aan verschillende Revit-plug-ins voor automatisering en gegevensbeheer. Elke BIM-manager, architect, ingenieur of gemotiveerde gebruiker kan aangepaste plug-ins maken. (Opmerking: Revit-API's zijn gebouwd op .NET Framework, dus elke taal voor dit platform is nuttig.) .NET is een gratis, platformonafhankelijk, open-source ontwikkelaarsplatform voor het bouwen van verschillende soorten apps.

C #. C # is een goede keuze voor dit veld omdat het veelzijdig is en toepasbaar op andere programmeergebieden. Het is volledig geïntegreerd met het .NET-softwareframework van Microsoft, dat app-ontwikkeling voor Windows, browserinvoegtoepassingen en mobiele apparaten ondersteunt. C # biedt gedeelde codebases, een grote codebibliotheek en verschillende gegevenstypen.

Met C # kunnen ontwikkelaars aangepaste Revit-werkbalken maken die verschillende opdrachten bevatten om dagelijkse taken te automatiseren. Het maakt ook de ontwikkeling mogelijk van apps die verschillende platforms met elkaar verbinden, zoals Salesforce, Procore en Bluebeam.

Visuele scripting

Hoewel Dynamo en Grasshopper geen programmeertalen zijn, zijn ze het vermelden waard. De groeiende interesse in visuele programmering gedurende de afgelopen jaren is moeilijk te negeren. Het zijn zowel handige als krachtige tools voor ontwerpers die niet willen coderen. In Dynamo passen reguliere knooppunten in een basiskennisniveau van visuele scripting. Gebruikers van gemiddeld niveau kunnen samenstellingen gebruiken die door anderen zijn gemaakt, waarbij code al in de knooppunten kan worden geschreven. Meer gecompliceerde taken vereisen echter complexe scripts en uitgebreide programmeerervaring. Op gevorderd niveau kunnen gebruikers code schrijven in Python en toegang krijgen tot de API en op hetzelfde speelveld staan als die doorgewinterde ontwikkelaars.

Python. Kunt u het Dynamo-knooppunt dat u nodig heeft niet vinden? Met Python kunt u krachtige aangepaste knooppunten maken die de functionaliteit van Dynamo uitbreiden en uw Revit-modeluitdagingen sneller en slimmer oplossen. Het biedt veel meer haalbare methoden voor het schrijven van voorwaardelijke statements (if / then) en looping. Het laat je ook veel knooppunten vervangen door een paar beknopte regels code.

DynamoDynamo
Afbeelding 2. Dynamo Scripting voor MEP-coördinatie, Photo Credit: Slava Krel (VIATechnik)

Rhino-gebruikers kunnen Python ook gebruiken omdat Python op zowel de Windows- als de Mac-versie van Rhino draait. Aangezien beide platforms Rhino Python-scripts hebben, kunnen dezelfde Python-scripts op beide platforms worden uitgevoerd.

VR / AR-ontwikkeling

Augmented Reality (AR) en Virtual Reality (VR) zijn nu beschikbaar voor dagelijks gebruik. Net als bij webontwikkeling, combineert VR / AR-ontwikkeling verschillende technologieën. Ontwikkelaars kunnen echter AR / VR-viewers gebruiken en apps bouwen waarmee elk 3D-model van BIM360, Revit en Navisworks kan worden weergegeven met een AR-compatibele smartphone of tablet in handen.

Beeldverwerking is een ander gebied dat in de nabije toekomst de meeste waarde kan opleveren voor de AEC-industrie. Er zijn drie niveaus van machine learning voor beeldverwerking:

  1. Afbeeldingsclassificatie, waarbij u generiek kunt zien wat er in de afbeelding staat
  2. Objectdetectie, waarbij u een selectiekader rond de afbeelding kunt tekenen
  3. Afbeeldingsmaskering, waar u de exacte omtrek van de afbeelding kunt krijgen

Ontwikkelaars kunnen hun eigen modellen trainen om constructieobjecten te detecteren, waardoor ze de kwaliteitscontrole ter plaatse kunnen automatiseren.

Afbeelding 3. Objectdetectie Beeldverwerking, Photo Credit: Slava Krel (VIATechnik)

C #. C # is volgens SlashData de meest populaire programmeertaal onder AR / VR-ontwikkelaars. [5] Het wordt veel gebruikt voor het ontwikkelen van games met Unity, de populairste game-engine. Het werkt op zowel Mac als pc en er zijn verschillende VR-apps gemaakt met C #. Het platform van Unity kan worden gebruikt met Autodesk Forge AR / VR-toolkit.

iOS / Android native app-ontwikkeling

Aangezien het percentage smartphonebezit en -gebruik dat door het Pew Research Center [6] wordt gepost, elke dag toeneemt, kan programmeren voor mobiele apparaten in de nabije toekomst zeer waardevol zijn. In dit geval wordt de programmeertaal bepaald door het platform.

Kotlin . Android-ontwikkeling vereist de programmeertaal Kotlin. In het Dice-rapport staat: "Eind 2018 bleek uit een analyse van Dice-gegevens dat het aantal vacatures waarin 'Kotlin' werd genoemd, enorm was gestegen sinds het tweede kwartaal van 2017, wat ongeveer overeenkomt met de aankondiging van Google dat Kotlin officieel een eersteklas taal was. voor Android." [8]

Snel . Voor het iOS-platform kiezen steeds meer ontwikkelaars Swift als programmeertaal. [9] Helaas is Objective-C geen optie meer. Volgens dezelfde Tiobe-index [7] verliest Objective-C elk jaar aan populariteit.

Het is mogelijk om een platformonafhankelijke oplossing te maken met React Native, een JavaScript-framework dat werkt op Android en iOS, maar er zullen altijd beperkingen zijn. De platformonafhankelijke oplossingen voor mobiele apparaten zullen nooit beter presteren dan native apps.

Een aantal handige mobiele apps kan de projectproductiviteit verhogen door het beheren van prints, punchlijsten en andere projectproblemen.

Afbeelding 4. Prefab-oplossing Android-app, Photo Credit: Slava Krel (VIATechnik)

Hoewel het programmeren zelf voor de meeste mensen eenvoudiger en toegankelijker wordt, vervangen nieuwere talen grote en meer gedateerde talen. Er gaan veel stukjes in een moderne app, en het is niet een ‘druk op de knop’.

Met de groeiende complexiteit van BIM-projecten is het moeilijk om er doorheen te komen zonder modelgegevensbeheer of automatisering van repetitieve taken. Softwareontwikkeling breidt BIM uit en biedt oplossingen voor workflowautomatisering en -optimalisatie voor AEC-bedrijven die al begonnen zijn met de BIM-methodologie. Grip krijgen op code en wat deze talen doen en hoe ze in een werkend product kunnen worden samengevoegd, is de sleutel tot het succes van de toekomstige staat van BIM.

Over de auteur

Slava Krel is Senior VDC Engineer bij VIATechnik. Slava is gespecialiseerd in MEPF BIM-coördinatie en Scan-to-BIM-workflows. Hij maakt gebruik van zijn begrip van datastromen, van concept tot constructie. De afgelopen jaren heeft Slava zijn passie gevolgd voor app-ontwikkeling, programmeren en scripting voor de AEC-industrie.

VIATechnik

VIATechnik is de wereldleider op het gebied van BIM-diensten en virtueel ontwerp en constructie met een missie om de analoge wereld van ontwerp en constructie te transformeren in een digitaal platform, dat een efficiënt ontwerp, geïndustrialiseerde constructie en een digitaal vastgoedservicemodel mogelijk maakt. Door deze transformatie geloven we dat we de wereldwijde uitdagingen op het gebied van huisvesting en infrastructuur kunnen oplossen en ruimtes kunnen creëren die leven, handel en relaties koesteren. Bezoek ons op internet op viatechnik.com .

Links:

[1] https://forge.autodesk.com/

[2] https://www.northeastern.edu/graduate/blog/most-popular-programming-languages/

[3] https://insights.dice.com/2020/12/09/5-programming-languages-that-will-dominate-2021-python-go-more/

[4] https://www.tiobe.com/tiobe-index/

[5] https://apply.workable.com/slashdata/?lng=en

[6] https://www.pewresearch.org/global/2019/02/05/smartphone-ownership-is-growing-rapidly-around-the-world-but-not-always-equally/

[7] https://www.tiobe.com/tiobe-index/

[8] https://adtmag.com/articles/2019/06/25/kotlin-climb.aspx

[9] https://www.businessofapps.com/insights/heres-why-you-should-plan-your-next-ios-app-with-swift/

Via: AEC