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.
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.
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 >>.
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.
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.
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.
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.