Pagina's op IkLeerBIM

vrijdag 18 mei 2018

Mirrored elements in your BIM

Just a little Dynamo script to find mirrored elements in Revit. And change a parameter if you like.

There are some discussions on mirrored elements in Revit. Revit doesn’t show them natively. Furthermore In the real world mirrored doesn’t exist. But your digital BIM isn’t the real world. So are we doubling are efforts and time to actually model every mirrored element again but mirrored. Or are we using the hidden treasures.

And of course safety first. Write a date to your project information. So everybody would know if mirrored is being checked.



The core of this script is little Python:

lstIN = UnwrapElement(IN[0])
lstOUT = list()
for item in lstIN:
try:
lstOUT.append(item.Mirrored)
except:
lstOUT.append(None)
OUT = lstOUT

Stil we would love a real time solution from Autodesk itself. Or a real time Addin.
Perhaps more news later. keep an eye on #PropertyWizard.

You can download with this link
Have fun, but use at your own risk.

vrijdag 23 maart 2018

Family not cutting mutiple objects

A Door or a Window can easily cut multiple objects.
But what about other objects hosted in a Roof, Floor or Ceiling...



Open the Family. Uncut the Void from the Host object.
Ensure that the Family has "Cut With Voids When Loaded" enabled.
Load the Family in your Project.
Now you can manually Cut the Void in this Family with Ceilings, Floors Roofs, just as you like. 
I know it sounds basic. But still good to remember from time to time.







vrijdag 9 maart 2018

Phasing in a Curtain Wall


You cannot change the Phasing of Mullions / Curtain Panels in a Curtain Wall. 
It is directly related to the Phasing of the Wall as a whole. But…

  • Shared Nested Families in a Curtain Panel are a bit slow and remain there old Phasing when the Phasing of the Wall changes…
  • You can make Parts of a Wall as a Curtain Panel and change the Phasing.
  • And most interesting – you can make an Assembly of Mullions and Curtain Panels. And then change the Phasing of the Assembly!

 Still you cannot swap an existing Panel for a new one. But it is a start.
Change the Phasing of Curtain Panels and Mullions

maandag 12 februari 2018

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

Laatste Update in de Download - 14-09-2022

Iemand vroeg me vandaag:"Waarom zo'n tool?". 
Voor diegene die het nog niet door heeft. De wereld en ook de bouw wordt steeds meer digitaal. Kwaliteit zit tegenwoordig mede in de consistente en betrouwbare digitale structuur die je aanlevert. En dat wordt alleen maar belangrijker. Een hulpmiddel als deze, is gemaakt om daarbij te helpen. Zowel op het gebied van tijd als van kwaliteit. Daarnaast is het belangrijk dat 'standaarden' eenvoudig te realiseren zijn, om echt standaard te worden. 
Daar heeft iedereen belang bij.
 
Sinds de lancering van deze tool op 30 september 2017 is de tool verder verbeterd en uitgebreid. Ook zijn er 2 filmpjes gemaakt om de tool aan het werk te zien. Er is een korte en stoere presentatie. En er is een langere film gemaakt, die meer ingaat op de details en het gebruik van de tool.

Op de site van de RevitGG is ook de presentatie te vinden en te downloaden die ik op 9 november heb mogen geven tijdens een gezamenlijke dag van de RevitGG en BuildingSmart.


Korte introductiefilm

In de LOG file staat uitgebreid beschreven wat er veranderd is. - laatste update 13-07-2019 - 
Maar in hoofdlijnen gaat het om:
  • De Function parameter is toegevoegd:
    • Met deze parameter kan je in Revit aangeven of bijvoorbeeld een wand Interior of Exterior is. Dit is 1 van de zaken waar de BIM Basis ILS om vraagt. 
    • De Function parameter wordt bepaald in de volgorde:
        1. Handmatig opgegeven
        2. “binnen” of “buiten” als onderdeel van de Type Name.
          • Een 'binnenspouwblad' wordt dus Interior 
          • en KZS_120 wordt eventueel Exterior
        3. De NL-SfB codering
        4. De oude waarde handhaven 
        • Er is ook een alternatieve formule gemaakt om nummer 2 en 3 om te draaien
    • IFC:
      • Naar aanleiding van uitgebreide test op ondersteunde en niet ondersteunde IFC entiteiten in Revit, zijn de standaard NL-SfB naar Ifc mappingtabellen en de keuzelijsten aangepast. Zie ook de SourceForge Site van IFC for Revit: IFC2x3 en voor IFC4
        • 28-05-2018 - In aanvulling hierop nog het volgende. De testen zijn uitgevoerd met Open Source Exporter versie IFC for Revit 2018 v18.2.0. De daaropvolgende tussen versies leken een stap terug te zijn. Als je foutmeldingen krijgt bij het exporteren naar IFC, IFC gerelateerde Warnings krijgt, of ontbrekende geometrie hebt in de IFC adviseer ik de laatste versie te gebruiken. Controleer ook altijd de IFC met een andere viewer. Er zijn aanzienlijke verschillen tussen de viewers onderling. De fout zit niet per definitie in de IFC maar kan ook zeker in de ontvangende software zitten. Hopelijk is dat voldoende. https://sourceforge.net/projects/ifcexporter/files/2018/
        • De laatste aanvullingen van Add2TC1 zijn zover mogelijk ook doorgevoerd.
      • Alle onderdelen krijgen nu een ingevulde IfcExportAs waarde. Als deze parameter tenminste aanwezig is in Revit. Deze is waar mogelijk gebaseerd op de NL-SfB. Maar anders valt de waarde terug op de Category mapping van de Revit Standards. Deze aanpassing moet meer inzicht geven in wat er gaat gebeuren met elk onderdeel bij een export naar IFC. Tip: een IfcOpeningElement - gekoppeld aan 31.10 en 32.10 is inderdaad een openingen in je IFC. Kies een andere NL-SfB code als je een kozijn bedoeld.
      • De hyperlink van een IfcEntiteit verwijst nu naar Addendum 2 van IFC4 op de vernieuwde website van BuildingSmart. 
    • Dynamo:
      • Er is inmiddels een Dynamo 2 map toegevoegd met bijbehorende scripts. En als er toch problemen zijn graag melden.
      • Er ontbraken nog een paar Revit Categorieën vanwege wat Dynamo beperkingen. Deze laatsten zijn nu ook toegevoegd. Dynamo 2 heeft weer nieuwe problemen met het vinden van een Category. Gelukkig betreft het hier alleen enkele ondergeschikte annotatie categorieën.
      • Er is nu een uitgebreidere rapportage voor gebruik met de Dynamo Player.
        • p.s. Ik heb er voor gekozen om Dynamo Warnings niet te voorkomen. Als er in Excel een aanpassing is gedaan, verwacht je dat dit in Revit wordt verwerkt. Als dit om (meestal voor de hand liggende) redenen niet lukt. Geef ik liever een gespecificeerde melding in de sheet Dynamo_Error_Report. Als je een Dynamo Warning krijgt is dit dus niet vreemd. Check de elementen in die sheet handmatig. zie ook de uitgebreide film na 20:40min.
    • Invoer:
      • Er zijn voorbeeld formules toegevoegd voor de invoer. En ook een referentie Sheet om alles sneller in te kunnen vullen. Het werkt nog steeds op basis van “what you see is what you get”. Dus bevalt de uitkomst van de formule niet? Dan tik je gewoon de juiste waardes is. Waarom en hoe kan je zien in de films.
      • Bij het herleiden van de juiste 4-cijferige NL-SfB code reageren de formules in Excel beter op afwijkende bestaande invoer in de Assembly Code.
      Belangrijk blijft:
      • Gebruik van deze tool op eigen risico (al gebruiken we het zelf ook)
        • Altijd synchroniseren voor je gebruik maakt van een Dynamo Script.
        • Altijd de hele invoer sheet ‘resetten’ door de 1 van de 2 onderste rijen over het invulveld tot de gele headers heen te kopiëren. Daardoor voorkom je dat oude handmatige invoer je project vervuild.
        • Snap je bovenstaande opmerkingen niet? Een reden te meer om onderstaand filmpje te bekijken voor je de tool gaat testen. 
      De tool is HIER te downloaden. Of gebruik Github.
      Als er vragen of opmerkingen zijn hoor ik dat natuurlijk graag. Daar hebben we allemaal wat aan! Meerdere mensen zijn je al voor geweest. Tot nu toe was allemaal goed en snel oplosbaar.


      Hoe gebruik je de tool?

        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.

        Populaire berichten

        Zoeken in deze blog