Pagina's op IkLeerBIM

zaterdag 30 september 2017

Tool om een Revit Project af te stemmen op de Nederlandse BIM standaarden

Today is another D-Day.

Na een lange tijd van nadenken, maken en aanscherpen stel ik vandaag, ook namens RoosRos architecten een eerste versie beschikbaar van een nieuwe tool. Deze tool heb ik gemaakt voor Revit modelleurs om sneller en beter aan meerdere BIM standaarden te kunnen voldoen. Het zijn veelgebruikte Nederlandse standaarden. De Basis ILS en de NL-RS Revit Standards. De tool lost natuurlijk niet alles op maar automatiseert wel die onderdelen die daarvoor geschikt zijn. Ook is de tool aanpasbaar voor de nodige flexibiliteit.

Dat de tool werkt, bleek wel toen ik de Revit Standard Template als proef gebruikte. Enerzijds zie je dan hoe ongelofelijk compleet en zorgvuldig deze in elkaar is gezet. Maar toch haalt de tool er nog steeds omissies uit. Mensen zijn nou eenmaal geen computers. En als een standaard die met zoveel aandacht gemaakt is al kleine foutjes bevat, hoe zit het dan met een normaal project…

Wat doet de tool wel en wat niet.

De tool helpt om de gecodeerde onderdelen in de naamgeving van bijna alle Revit Families en Types vast te stellen op basis van de Revit Standards afspraken. En kan die vervolgens weer wijzigen in Revit.
Dit geld niet voor de Materials en ook niet voor de Filled Regions omdat die "een afwijkende afspraak" hebben. Je zou kunnen zeggen dat je beter die onderdelen uit de Revit Standard Template kan gebruiken, dan dat de naamgeving in Revit worden aangepast. Overigens lijken het geen verplichte onderdelen te zijn.

De tool helpt bij het kiezen van een Assembly Code.
Het invullen van deze code is verplicht bij de Basis ILS. En daarnaast gebruik ik het eerste deel van deze 4-cijferige code voor in de naamgeving van het object. Sterker nog. Als je de 2-cijferige NL-Sfb code in de naamgeving wilt aanpassen zul je eerst de Assembly Code moeten aanpassen.
Ik maak gebruik van de UniformatClassifications_NL-SfB die de Revit Standards meesturen.  Als je deze niet gebruikt in Revit zal je niet optimaal gebruik kunnen maken van deze tool. Sterker nog, de tool zal proberen de Assembly Code aan te passen op basis van een verkeerde tabel - kijk uit dus.

Maar het invullen van de Assembly Code geeft ook een eerste aanzet voor een juiste IFC mapping. De tool nodigt uit echt meer te halen uit de IFC. Natuurlijk kan je daar heel veel meer woorden aan vuil maken: Niet alles is ondersteund, veel onderdelen zijn ‘hardcoded’ etc. Maar het is goed dat er beweging in blijft en dat het allemaal wat toegankelijker wordt.
De mapping tussen Assembly Code (NL-Sfb) en ifcEntiteit is nog niet compleet (ik ben nu gestopt bij 51 anders komt het nooit klaar). En ook inhoudelijk mag en kan, er best gediscussieerd worden over welke ifcEntiteit nu de juiste is. Ook is op enkele plekken de relatie niet 1 op 1 te maken en val je terug op de Revit Category Mapping. Dan blijft de mapping vooralsnog leeg. Eventueel maken we in de toekomst de mapping matrix een laag dieper door het aan te vullen met de Revit Category.
Het is ook goed te beseffen dat het een voorstel/principe mapping is. Je kan per object een betere ifcEntiteit kiezen uit een drop down list.
Waar nodig is de link naar de online Building-Smart documentatie ook aanwezig >>.

Wat betreft de Basis ILS. Veel afspraken hebben te maken met de opbouw van een project (0-punt, bestandnamen, lagenindeling, doublures, gebruik van een correct materiaal –wat dat ook is-). Daar helpt de tool natuurlijk niet bij. Loadbearing is in Revit een Instance Parameter en brandwerendheid wordt ook vaak op Instance niveau opgelost. Daar helpt de tool ook niet bij want de tool kijkt op Type niveau. In en Uitwendig kan in de volgende versie wel worden meegenomen. Ook deze heeft een relatie met de Assembly Code – NL-Sfb 4-cijferig.
De tool helpt vooral met benaming van elementen, ifcEntiteit. En dus ook met het mogelijk maken van de bijbehorende Common Property set. Maar als een trap met een Model-in-Place functie of als Generic Model wordt gemaakt … zul je toch echt met elkaar moeten gaan praten of dit juist een vreselijk goede of juist vreselijk slechte oplossing is. Eventueel kan de volgende site een 'oplossing' bieden 😊

Hoe gebruik je de tool.

In de eerste plaats: op eigen verantwoordelijkheid. Begrijp me goed. Ik ga er zelf ook mee aan de gang en zou dat niet doen als ik er geen vertrouwen in had. Maar ik wil geen gezeur. 
Dus eerst Revit Synchroniseren of het Project opslaan. En dan pas aan de gang. Dit is sowieso een goede gewoonte als je met Dynamo aan de gang gaat. Houd altijd een backup achter de hand. Mocht het toch nodig zijn.

De tool is HIER te downloaden. Download dit en zet alles bij elkaar in 1 map naar keuze zodat de relatieve verwijzingen blijven werken. Eventueel kan je de .DYF bestanden verwijderen als je al over de bijbehorende Packages beschikt. De verwachting is wel, dat er in de loop van de tijd meerdere aanpassingen aan de bestanden in .ZIP file gedaan gaan worden. Ik zal dan de bronbestanden gewoon veranderen. Het plan is wel om dan het een en ander van een log met datum te gaan voorzien.

In de download ZIP zitten 2 Dynamo scripts: BIM_Standaard__Excel_naar_Revit.dyn en BIM_Standaard__Revit_naar_Excel.dyn.  De namen spreken voor zich. In de scripts zitten enkele Nodes uit Packages die ik nodig had. (Clockwork, Rhythm, Springs) Voor de zekerheid heb ik deze .DYF Nodes ook los in de ZIP file zitten.
Ook kan je het enigszins aangevulde NL-RS excel bestand 160222_NLRS2.5.2_Naamgeving componenten.xlsx vinden in het .ZIP bestand. Hierin staan de naamgevingsafspraken van de Revit Standards op de Sheets pos1 t/m pos7.
Over de kleine aanpassingen in dit Excel document, wellicht op een ander moment meer. Er zijn wel paar nieuwe Sheets aangemaakt. Dynamo maakt de Sheets Dynamo_Written en Dynamo_Error_Report aan. En overschrijft deze elke keer weer. Er zijn nog 2 instellingen Sheets: UniformatClassifications_NL-SfB en IFC Settings. De eerste Sheet spreekt voor zich. En de Sheet IFC Settings bevat alle benodigde lijsten met IFC benamingen.


De Sheet waar je daadwerkelijk mee aan de gang gaat is de groene Dynamo_Read. Als je het prettiger vindt zou je alle andere Sheets, op de door Dynamo beheerde na, kunnen verbergen.

Voor het gebruik van de Sheet heb ik mijn best gedaan om zo veel mogelijk visuele feedback te geven. Dus grijs betekend: ter info. Witte cellen kan je invullen. Rood bruin geeft de waarschuwing dat een onderdeel aandacht behoeft. En groen betekend dat een waarde veranderd gaat worden.
Wat ook opvalt zijn oranje Revit Categorieën. Deze onderdelen zijn oranje gemaakt omdat ze wel Families en Types zijn, maar dat deze Revit Categorie ontbreekt in de tabel voor positie 3. Dit kan later in overleg met RS foundation welicht worden recht getrokken. De oplossing voor veel onderdelen die missen liggen overigens redelijk voor de hand.
De koppen boven de kolommen spreken ook voor zich. En per eigenschap kunnen er meerdere kolommen zijn. Bijvoorbeeld, de Family Name bevat de kolom – OLD – en – NEW -, naast 3 kolommen die gezamenlijk de nieuwe Family Name gaan vormen. Als je niks invult bij Description dan veranderd de nieuwe naam niet.

Deze Sheet staat natuurlijk stampvol met formules en voorwaardelijke opmaak. Dat is heel handig voor tijdens het werken. Maar als je van project switched wil je natuurlijk niet dat alle handmatig ingevulde cellen het nieuwe project gaan vervuilen. Je moet tenslotte weer schoon beginnen. Daar kun je natuurlijk een Excel macro voor schrijven of desnoods opnemen.  Of je kopieert elke keer handmatig een schone regel over de hele lijst heen. Je zou rij 1958 daarvoor kunnen gebruiken. Dit stukje zorgvuldigheid is echt nodig om brokken te voorkomen. Verder kan er volgens mij niet echt veel stuk. Uiteindelijk is het "what you see is what you get".

BIM_Standaard__Revit_naar_Excel.dyn
Met het eerste Dynamo Script schrijf je alle Types in het Project weg naar de Sheet Dynamo_Written. Misschien duurt het even, als er veel weggeschreven moet worden. Ook kan je het gevoel hebben dat Excel zijn scherm niet goed ververst. Maar als Dynamo klaar is klik je op Excel en ga je naar de Sheet Dynamo_Read en wijzigt alles wat wilt wijzigen. Gewijzigde onderdelen worden groen aangegeven. Ga dan weer terug naar Dynamo en start het script BIM_Standaard__Excel_naar_Revit.dyn. Dynamo leest vervolgens de Sheet Dynamo_Read. Alle kolommen die – NEW – heten gebruikt Dynamo als input voor mogelijke wijzigingen in Revit. Ook dit kan even duren afhankelijk van hoeveel wijzigingen het betreft. Als Dynamo klaar is, schrijft Dynamo in de Sheet Dynamo_Error_Report welke onderdelen mislukt zijn. Misschien dat in toekomstige versie hier ook de gelukte onderdelen moeten komen, maar nu dus nog niet.

BIM_Standaard__Excel_naar_Revit.dyn
Dat is het voor nu even. Wellicht binnenkort meer berichten over de technische werking voor wie daarin geïnteresseerd is. En collega’s vroegen al naar een filmpje waarin de tool daadwerkelijk gebruikt wordt en de werking wordt uitgelegd. Lijkt me een goed idee. Maar nu eerst maar eens plaatsen.

Ik zou zeggen probeer het gewoon eens uit. The taste is in the eating.
Veel succes. Vergeet niet eerst op te slaan voordat je Dynamo start.

En als er vragen of opmerkingen zijn hoor ik het wel.

Geen opmerkingen:

Een reactie posten