Pagina's op IkLeerBIM

maandag 24 november 2014

A tool to build Revit's IFC mapping tables

With this post I would like to share an Excel document, with which you can build the mapping tables that Revit can use when importing from, or exporting to IFC. It is still a bèta. You can use it or even change it, but at your own risk of course. And if you do so, I would love to know what your experiences are. The RevitGG is also using this tool to help build some parts for in the Dutch Revit Standard the DRS.


The Excel workbook is without macro's. But it does import the TXT files that Revit generates and later can reuse. You should overwrite the TXT files from the downloads with your own ones. Build new mapping tables in Excel and copy the cells you need and paste them in the specific TXT file. After saving these files you can use them and  import them back in Revit.

Why did I build something like this?
Well I really like working with Revit, but the way Revit wants us to map Categories and Parameters between Revit and IFC is just ... well ...  And in the end I'm pretty sure that these things will change in time. But for now, I wanted it to be fixed as good as I can. Besides starting a little conversation about a better way to facilitate these things. My Excel workbook can be a good starting point.

What does this Excel workbook do "better" than the native Revit way?
  • It has dropdown options to choose options that are relevant. I really want dropdown options with the IFC Parameters. And I don't want to look them up on the Building Smart site, or in a post on the sourceforge site for the IFC exporter for Revit.
  • It has direct links to the documentation on the site of Building Smart based on the chosen option. No. I'm not a native IFC speaker. I'm not even a native English speaker. (really) So I do need some help to know what I'm doing.
  • It has a few reference mapping tables, and also an option to fill in the blank subcategories just as the other subcategories So you can build your own 'standard' besides the one the Revit offers. Of course you can make every exception that you would like to make. This is possible because of the hierarchy in the formula as shown at the head of the Columns.
  • It is also possible to omit a group of categories
  • It has a building relation between the import table, the export table and the parameter mapping table. In a perfect world you want to import exactly what you exported.
  • It has a sheet where you are can do some research on the IFC structure. The purpose of this sheet is to find possible omissions in the IFC parameters that we use and those that we don't use, but perhaps should use. Just change cel K17 on the sheet IFC structure.
So overall it should be faster, gives more inside in IFC and the tables are related to each other.

So perfect!
Well almost. But it is a beta. And there are still some weird things.
  • This Workbook is based on IFC 4x0 make sure that it's supported or that you don't use IFC4x0 specific options or changed names.
  • The Parameter Mapping Sheet is a compleet list. So for the moment, you need to skip the rows in the TXT file that don't have a defined value. So you don't map to nothing or to zero. Furthermore, I build the Sheet as I think it should be. And based on the header of the example TXT file. But.. the only working files I have seen are much easier. It's more about adding specific Revit Parameters without adding them all, or using all the Schedules for export, rather than really mapping from Revit to real IFC specific parameters. A working parameter mapping TXT looks like: 
PropertySet:    GiveItAName    T    IfcBlaBlaType
RandomRevitParameter TextOrSomethingElse
etc.
  • Revit still has some hard coded mapping.
  • I made a drop down option with related IFC Types based on the chosen IFC Category, but the "Type" Column in the Revit's IFC Export options doesn't work when importing the TXT files. So the IfcExportType will be a better option if this one is important.
  • IFC has more categories and parameters than Revit uses right now. I'm not sure what to think of that. 
  • Some Families are still much better off by using the IFCExportAs parameter.
  • This workbook uses formulas instead of macro's. That's nice, but if you need more rows than the number of rows that i have build, you need to adjust the workbook. 
  • I also tried to use Named Ranges and indirect references for later adjustments, but there could be a slip of the pen somewhere.
But overall I'm quite happy with this beta tool. And I would like to share it with Revit users.
I also would try to start a little (open) conversation about making Revit even better.

Hope it helps and have fun.
Download

For Dutch speaking people there is a youtube movie of a RevitGG meeting where i demonstrate and explain this tool a little bit more. It's about 75min.



 


There will be updates in the text and the spreadsheet -it's a bèta remember-. So check out the latest version of the text or the spreadsheet if you have problems.
update / 26-11-2014

With the sheet "Fill in ParameterMapping" you can build:


 - "ParameterMappingTable.txt" wich should be placed in the folder where the export DLL is located. This will map the Common Pset between Revit and IFC
 - "DefaultUserDefinedParameterSets.txt" wich hasn't a specific location. You can select the file in Export Setting at the tab "Export property sets" This one will create your own User Defined Property Set - You can discus if this should be 'best practice'
You can read here some more on the SourceForge site:

The Sheet "Fill in ParameterMapping" is mainly based on the "ParameterMappingTable.txt". You can build a "DefaultUserDefinedParameterSets.txt" as shown in row 12: Choose a Revit Parameter and make sure that Column K is linked to the Columns M, N and O. See Cel K12 for an example formula.

You will see that this method will automatically create new rows in the spreadsheet.

vrijdag 10 oktober 2014

Dichte Model Hatch voor in Revit details

Al meerdere keren heb ik geschreven over wat je kan doen met vervelende of onverwachte beperkingen die Revit arceringen hebben. Ik heb al geschreven over het combineren van een lijn met een vlak arcering, over het snel aanmaken van je eigen Model Hatch, over het uitlijnen van een Model Hatch in een Family en over het laten rondlopen/uitwaaieren van een Model Hatch. Vandaag wil ik schrijven over het maken van een fijnmazige arcering voor in een detail. Denk bijvoorbeeld aan multiplex.

Revit kent 2 soorten arceringen. Een zogenaamde Model Hatch en een Draft Hatch. De Model Hatch  is maatvast. Dat wil zeggen de maat tussen de arceringslijnen zijn exact en veranderen niet als de schaal van de tekening veranderd. Deze arcering is ook uit te lijnen met andere objecten of met een andere Model Hatch. Een voorbeeld is bijvoorbeeld metselwerk arcering.
Een Draft Hatch is wat symbolisch van aard. Het schaalt mee met de tekening en is slecht of niet uit te lijnen en draait slecht of helemaal niet mee.


Een Model Hatch in Revit kent ook enkele beperkingen. Je zou verwachten dat Revit alle Autocad arceringen 1 op 1 aankan. Maar dat is niet juist. Arceringslijnen moeten een minimale maat ten opzicht van elkaar hebben. Dit is ergens tussen de 12 en 13 mm (1/2 inch). Er zullen vast hele goede redenen zijn waarom dit zo is. Maar bij het maken van een fijnmazige arcering voor in een detail, is dit niet voldoende. Veel genormeerde arceringen in Nederland hebben lijnen op enkele mm van elkaar. En met Revit kan dit in principe niet…

Revit says NO
Enkele workarounds zijn het tekenen van meerdere lijnen naast elkaar. En met behulp van een visibility parameter kunnen dan de extra lijnen onzichtbaar gemaakt worden. Dit kan natuurlijk prima voor bijvoorbeeld multiplex. Maar voor arceringen die niet in de lengterichting van een element zijn, werkt dit eigenlijk niet meer. Want een Array voor het maken van een arcering  gaat wel heel erg ver. Ook omdat het weinig goeds voorspeld voor de performance van Revit.
Je kan natuurlijk ook gewoon een Draft Hatch gebruiken. Nadeel is dat deze niet meedraait. En voor een naar binnen afwaterende dakrand ziet dat er dan wel gek uit.

Een oplossing die mij erg charmeerd is het plaatsen van meerdere Transparant Fileld Regions over elkaar heen. En die dan ten opzichte van elkaar uit te lijnen. Je kan deze zelfs van een maatvoering of een Labelled Dimension voorzien. Eigenlijk best wel simpel. Niks geen formules losse of lijntjes met aan/uit parameters. In het voorbeeld heb ik de Model Hatch van 15mm aangevuld met 5x dezelfde Model Hatch zodat de tussenmaat 15/5=3mm wordt.

losse transparante Filled Regions over elkaar heen
uitlijnen en maatvoeren
Leuke bijkomstigheid is dat de maatvoering die aan een Model Hatch hangt, blijft staan. Zelfs als de Filled Region kleiner wordt dan de oorspronkelijke maat! Je kan zo een stabiele Detail Family maken die niet afhankelijk is van een minimale dikte op basis van de gekozen arcering.

En je multiplex plaatje is klaar

maandag 28 juli 2014

Opsplitsen van een grote plattegond in Revit

Laatst vroeg een collega wat de ‘best practice’ was bij het opknippen van een groot project in kleinere stukken. Het ging met name om de verwijzingen naar een andere blad en het ‘uit grijzen’ van het overlappende gedeelte. Revit kent ook een Matchline. Maar persoonlijk vindt ik het mooier en duidelijker om een gebied grijs te maken of te arceren.

Om met het laatste te beginnen. Doorgaans kies je een stramien waar je 2 deel plattegronden op elkaar aan laat sluiten. Op het ene blad wordt de ene zijde naast het stramien ‘uitgegrijsd’. En op het andere  blad het tegenovergestelde deel. Maar waar grijs je uit en hoe doe je dat?

Een goede manier is, om meerdere keren een ‘Duplicate as a Dependent ‘ te maken van een totale verdieping. Deze Dependents kan je vervolgens begrenzen, door ze te koppelen met bijvoorbeeld een Scope Box. Voordeel hiervan is dat je meerdere verdiepingen op dezelfde manier op een blad kan zetten en beïnvloeden. Ook eventuele verdraaiingen (of staand als liggend) kan je dan eenvoudig oplossen.
Het uitgrijzen bij een Dependent kan slecht op het overzichtsblad. Want je ziet deze of op alle bladen, of je ziet het nergens. Je bent dan verplicht de uitgrijzing 2x te tekenen en vervolgens met ‘Hide in View’ 1 van beiden zijden via Hide onzichtbaar te maken. Of toch een Matchline te gebruiken...

Op een Sheet de Filled Region uitlijnen op een Grid
Een alternatief zou zijn om op de Sheet zelf iets uit te grijzen. Maar… je kan veel dingen niet doen op een Sheet. Je kan bijvoorbeeld geen Filled Region plaatsen. Een truckje wat goed werkt is om een Filled Region in een Detail Group te plaatsen. Plaats vervolgens de Detail Group op je Sheet. Je kan deze Detail Group zelfs uitlijnen op de Grids. Wanneer je de Detail Group aanpast, kan je gewoon Filled Regions kopiëren een aanpassen. Ook kan je deze Filled Regions uitlijnen met een Grid. ’t Is maar dat je het weet.

Waar is mijn Detal Group / respectievelijk waar is mijn Sheet
Besef wel dat er een behoorlijk schaalverschil zit tussen een View waar je de Detail Group maakt en de Sheet waar de Detail Group uiteindelijk op terecht moet komen. Zeer waarschijnlijk moet je in je Sheet Zoom Extents gebruiken voor je de Detail Group kan zien en aanpassen.

O ja, als printen een slecht resultaat oplevert probeer dan eens op Raster in plaats van Vector te zetten. Het duurt iets langer en een eventuele PDF wordt wat zwaarder. Maar veel print problemen worden hierdoor opgelost.


De verwijzing naar een ander blad kan met een zogenaamde View Reference die je in de View zelf zet. Deze functie is te vinden onder View / Sheet Composition. Je kan deze View Reference zo instellen dat deze verwijst naar een specifieke View en vervolgens dat de View Reference de bladnaam weergeeft waar deze View op geplaatst is.

Een View Reference plaatsen
Voor zowel de View Reference als de Matchline geld dat de zichtbaarheid op Visible moet staan. Het is een open deur. Maar ik kwam erachter dat ze bij ons standaard op Invisible stonden…

vrijdag 25 juli 2014

Het uitlijnen van de Model Hatch bij een Revit Family

Heb je wel eens geprobeerd om de Model Hatch van een Family exact uit te lijnen in je Project?
Dat lukt niet. Maar vandaag laat ik zien dat je er toch enigszins invloed hebt.

We willen de Model Hatch op een Generic Model gaan draaien.
Revit kent 2 soorten van arcering. Een Drafting Hatch en een Model Hatch. Deze zijn een onderdeel van de Material eigenschappen.
Een Drafting Hatch is een schaalbare symbolische arcering. Deze kan je eventueel laten meelopen met de Geometry. Een Cut Pattern is bijvoorbeeld  een Drafting Hatch. Persoonlijk zou ik daar ook graag de keuze voor een Model Hatch willen hebben. Maar dat kan nog niet.
Iets anders wat nog niet kan, is een combinatie van een vlak arcering en een lijn arcering. In een vorige Post heb ik enkele trucks bescreven waarmee je toch het gewenste effect krijgt.
Een Model Hatch geeft in tegenstelling tot een Drafting Hatch een maatvaste arcering. De lijnen in de Hatch zijn afzonderlijk te selecteren. En vervolgens kan je de hele Model Hatch roteren en verplaatsen. Ook kan je de Model Hatch via Align uitlijnen met een ander object. Dit is natuurlijk ideaal maar ook noodzakelijk als je bijvoorbeeld een plafondtekening maakt of een maatvaste gevelarcering wilt toepassen.

Bovenstaande eigenschappen van een Model Hatch komen goed tot hun recht bij de zogenaamde System Families. Dit zijn de Families die je niet via “Edit Family” direct (of indirect als het om een Profile gaat) kan aanpassen. Bijvoorbeeld: Walls, Ceilings, Floors etc.
En gewone Family kan je wel een Model Hatch meegeven. Maar je kan die arcering alleen selecteren en helaas niet verplaatsen of roteren. Als je Align probeert zul je zien dat de hele Family mee gaat. Het maakt niet uit of je een Instance, Type of een Hard Coded Material gebruikt. Je kan de Model Hatch in je Project niet verplaatsen of draaien.

Model Hatch verdraait in de Family en terug geplaatst in het Project
Toch lijkt de oplossing redelijk simpel. Pas de uitlijning van de Hatch aan in de Family zelf! Dit kan natuurlijk maar 1 keer. (Dus optimaal voor 1 Type) Maar het is beter dan niks. Als je het Material veranderd lijkt de Family, de verdraaiing en positie van de Hatch ten opzichte van de Geometry, te onthouden. Ook als er in het Project een totaal andere Hatch op de Geometry wordt geprojecteerd.
Wanneer de Family een offset meekrijgt in de hoogte, in je Project of Family, gebeurt er overigens niks met de uitlijning. Hieronder wordt het een en ander met afbeeldingen aangetoond (ze zijn overigens niet helemaal chronologisch).

Een andere Type geeft dezelfde uitlijning
Een ander Material met dezelfde Model Hatch veranderd de uitlijning niet.
Meer verschillende Materials en verdraaid in de Family zelf
Nieuwe Model Hatch aangemaakt
De uitlijning blijft hetzelfde. Maar let op de Geometry met de Hard Coded Material!

 Voor mij wel vreemd was dat ik ‘per ongeluk’ de Hard Coded Material had aangepast. Het Material en de bijbehorende Model Hatch kwamen uit het Project en werden zo aan de Family omgeving toegevoegd. Ook zonder dat een Parameter naar verwees kon ik dus blijkbaar Material in de Family aanpassen.  Beetje tricky want je kan niet zien dat het Material gebruikt is! Ik mag wel hopen dat meerdere keren Purge All dit Material niet verwijderd. Delete levert inderdaad een vrij kaal resultaat op!

En ja hoor als het Material in het Project verwijderd wordt is de Family aangepast.

lees verder:

maandag 21 juli 2014

Hoe Solid is je Revit Void?

Laatst zat ik wat te stoeien met Revit Families. Het begon allemaal met een Roof Based Family die eigenlijk Floor based zou moeten zijn. En via allerlei omwegen deed ik enkele nieuwe ontdekkingen over Solids en Voids die ik in deze (wellicht wat onsamenhangende) post wil delen.

Ten eerste een hele goeie truck van Dave Baldacchino van Do U Revit. In een Post (van een tijdje terug) beschrijft hij hoe je een Hosted Family kan omzetten in een Non-Hosted Family. Op zich een goeie truck.
Al moet ik in mijn geval nog een paar extra stappen ondernemen aangezien niet elke Family via Copy Monitor omgezet kan worden.

Revit Categorieën bruikbaar voor Copy Monitor
Je zou dan eerst de Family Category moeten omzetten in een Category die wel via Copy Monitor omgezet zou kunnen worden.  Na het weer terugzetten van de Family Category moeten de Subcategorieën van de Solids weer gecorrigeerd worden.

Een andere manier (die overigens weinig stabiele Families opleverde) was de Hosted Family veranderen in en Work-Plane Based Family. Dit kan eenvoudig via de Family en Category Parameters.

Family Work-Plane Based maken

Het probleem met deze wijziging zal wel zitten in de mogelijke Host die door de Family aangepast wordt. Wanneer de Family opnieuw geplaatst wordt, maar dan zonder dat de Void of Opening Cut een Host kan vinden, wordt de Family (en soms ook Revit) instabiel.

Dat brengt mij bij het volgende. Je kan een Host openbreken met een Opening of een Void.
De Opening snijd de Host recht door. Dit ongeacht de diepte van de Host. De Host wordt dan ook volledig doorgesneden.
Een Void heeft meer mogelijkheden. Al moet je er wel opletten, dat als het de bedoeling is dat de Host volledig wordt doorgesneden, je ook zelf moet zorgen dat de Void diep genoeg is. Je kan bijvoorbeeld een Reference Plane aan beide zijden van de Host locken en vervolgens de Void , of onderdelen van de Void aan deze Reference Planes locken. De maatvoering tussen de Reference Planes is een Instance Reporting Parameter. De dikte van de Host is dat in basis ook, maar Revit geeft daar niet direct een foutmelding.

Je kan geen Void en Opening in dezelfde Host onderbrengen. Een truckje om dit wel voor elkaar te krijgen, is 1 van beiden in een Nested Family onder te brengen. Maar je kan je afvragen of deze combinatie veel oplevert. Door het combineren van meerdere Voids kan je bijna alles doen wat je wilt.

geen Opening en Void in dezelfde Host
Ik verwacht dat een Hosted Family met een Void stabieler zal reageren op de verandering naar een Work-Plane Based Family. Ten slotte heeft een Void ook geen geometry nodig. Je kan een Void bijvoorbeeld op een Workplane plaatsen. En deze Workplane vervolgens via een Labelled Dimension van de Solid of de Host af laten bewegen. Dit is de manier bij uitstek om extra vormmogelijkheden te creëren in een Family Type. Elke zijde van een Solid in Revit heeft namenlijk een minimale afmeting nodig en kan dus niet 0 zijn. Door deze zijde te construeren met behulp van een Void kan je een Type van de Family maken die meer of juiste minder zijden heeft.
Dit is wellicht wat cryptisch omschreven. Hopelijk geven de afbeeldingen hieronder meer duidelijkheid.

Void snijd uit de Solid
Void wordt uit de Solid verplaatst
Toch heeft een Void ook een vreemde eigenschap, die ik toch al meerdere keren ben tegengekomen.
Een Void die niks snijd is soms permanent zichtbaar in je project. Dit kan je dan niet via Subcategorien uitzetten ofzo. En het zal dus doorgaans zeer hinderlijk en als oranje Geometry aanwezig zijn.
Een voorbeeld? Een HWA, een rooster of zelfs een balk. Ik heb mijn best gedaan om een dergelijk voorbeeld te reconstrueren, maar het is me nog niet gelukt. De oplossing lijkt te zijn om de Void te laten snijden met bijvoorbeeld een invisible Model Line.

HWA met een permanent zichtbare Void
Gevelrooster met een permanent zichtbare Void
Een andere manier om een ‘Void’ te suggereren is om een Solid te maken en deze via de Visibility parameter op ‘Invisible’ te zetten. Ondanks deze onzichtbaarheid kan je de Solid toch laten Joinen met andere Geometry. Ideaal om bijvoorbeeld een daklicht te maken, die tot in het plafond (ver) daaronder doorsnijd.


Joined "Generic Model" met een Wall met de Visibility parameter op On en Off in Revit 2014
 In Revit 2015 is deze mogelijkheid helaas wel beperkt. Geometry die niet ‘Visible’ is kan nu niks meer snijden… Misschien wel logisch maar toch jammer. Wellicht moeten we een aparte Subcategorie gaan maken als toch blijkt dat we deze truck nodig hebben.

Joined "Door" met een Wall met de Visibility parameter op On en Off in Revit 2015
Een Solid kan je overigens eenvoudig omzetten in een Void. Maar het is ook mogelijk om een Void weer terug om te zetten in een Solid. Dit doe je door de Void via Uncut Geometry los te koppelen. Dan verschijnt de optie weer om de Void terug te zetten naar een Solid om er vervolgens weer mee verder te werken.

vrijdag 11 juli 2014

Gelezen - 10 regels voor een Revit Etiquette - Payette

Goede manieren... Je leert ze sneller af dan aan.

leuke afbeelding van Thierry Gregorius
Daarom weer een kort overzicht van belangrijke aandachtspunten
bij het 'gezond' en snel houden van je Revit Model.

Gelezen - Payette / Becky Zollin - Ten Ways to Keep Your Revit Model Speedy

  1. warnings
  2. over-complicated components
  3. unused views
  4. large or complicated sketch-based items
  5. unused families
  6. unnecessary locking of elements
  7. groups
  8. embedded CAD files or images
  9. in-place families
  10. a lengthy list of design options



dinsdag 22 april 2014

Upgrade naar Revit 2015 - Boost Your BIM

Voor diegenen die zich al voorzichtig aan het voorbereiden zijn voor de nieuwe Revit 2015 versie heeft Boost Your BIM de File Upgrader naar 2015 al beschikbaar. Vandaag maar eens laten lopen op de achtergrond. Lijkt prima te werken.

Veiligheidshalve moet je natuurlijk nooit zomaar over op een nieuwe versie.
Lopende projecten kan je het beste uitwerken met de versie waar deze mee zijn opgezet. Tenzij je na opgedane ervaring, en voor een langlopende project, met alle BIM partners besluit dat een upgrade naar de volgende versie voldoende veilig is en voldoende voordelen bied.

Upgraden van een bibliotheek betekend dan ook een copy maken van de oude versie.

Voor projecten of een template verdient het tevens de aanbeveling om na de update ook een audit te doen.

Voor "die hard" programmeurs is er zelfs het een en ander geschreven over het upgraden van API code naar 2015. Die hard 1 en die hard 2

Als het werken met verschillende Revit versies problemen oplevert. Bijvoorbeeld omdat er regelmatig met een verkeerde Revit versie wordt opgestart. Is de File Version Checker van Boost Your BIM een aanrader. Ik heb daar al eens eerder een post van gemaakt.
Er is inmiddels al een nieuwe versie van beschikbaar.

woensdag 16 april 2014

Gelezen - Revit 2015 New Features Playlist - WhatRevitWants

Er kwam net een Tweet voorbij van Luke Johnson van What Revit Wants.
Hij heeft een leuke playlist verzameld over de nieuwe features in Revit 2015.
http://goo.gl/6azkpb

vrijdag 11 april 2014

BIMende leveranciers

Er zijn steeds meer leveranciers die voor hun producten een BIM object aanmaken. Deze bieden ze vervolgens aan om mee verder te kunnen werken in een BIM model. Dit is een goede ontwikkeling. Als gebruiker krijgen we dan ook met enige regelmaat de vraag om te reageren op de aangeboden BIM objecten. Ook dit is prima. Het mes snijd dan aan alle kanten.

De meeste leveranciers proberen hun objecten te laten voldoen aan 'standaarden'. Ook dit is in basis goed. Maar er zijn wereldwijd meerdere standaarden. Ook zijn er meerdere gratis of betaalde bibliotheken. Hierdoor wordt het uiteindelijk toch nog rommelig en onoverzichtelijk voor de leveranciers maar ook voor een gebruiker. Persoonlijk denk ik dat we in de toekomst echt toe moeten naar een software onafhankelijke omgeving, waar elke software de voor hem relevante informatie uit zou moeten kunnen halen... Klinkt als IFC.

Zijn er wat algemene waarheden te formuleren waar deze BIM objecten in Revit aan moeten voldoen? Een soort van 'altijd goed' oplossing. Zonder dat we weer een nieuw boekwerk gaan schrijven.
Wat heb ik nodig? En hoe maak ik mijn keuze?
 Aandachtspunten voor goede BIM objecten in Revit voor leveranciers zijn o.a.:
  1. De hoeveelheid eigen Shared Parameters die projecten (enorm) vervuilen. Dit geld zeker voor System Families die beperkte mogelijkheid hebben voor eigen (niet Shared) Parameters. (actiepunt voor Autodesk) Beter lijkt het, om alleen gebruik te maken van de System Parameters / of de eigen materialen met hun System Parameters. Dit zou je beperkt kunnen aanvullen met (land)eigen parameters. Vaak opgezet door een gebruikersgroep van specialisten. In Nederland is dat de RevitGG. Maar denk ook aan ook IFC parameters! aangezien dit een product overstijgende standaard is.

    Uiteindelijk zal blijken dat al deze mogelijkheden niet voldoende zijn om alles vast te leggen wat een leverancier vast wil (of moet) leggen. Een voor de hand liggende oplossing is dan, om een link toe te voegen naar online documentatie voor alle overige eigenschappen. Denk aan rapporten, voorwaarden, richtlijnen etc. Deze links kan je als leverancier ook gedurende het proces blijven aanvullen / verbeteren.
    Daarop voortbordurend zouden we als gebruikers en leveranciers beter kunnen investeren in een eenvoudige tool die bijhoud of deze online documenten al zijn geraadpleegd of zelfs gewijzigd zijn. Wellicht kunnen in de toekomst bepaalde eigenschappen van de bibliotheekelementen worden bijgewerkt met de laatste online gegevens.
  2. Goed gebruik van Revit Categorieën. Bijvoorbeeld niet alles als een Generic Model aanleveren. (komt helaas voor)
  3. Niet te gedetailleerde/te zware objecten aanmaken. Dit is echt een valkuil. Want natuurlijk wil een bedrijf laten zien wat die kan. En ook het unieke van zijn eigen product onder de aandacht brengen. Besef dat een te gedetailleerd model vaak contra productief werkt. Maak onderscheid tussen gedetailleerde 2D info en schematische 3D info.

    Het echte verschil/ de toegevoegde waarde van een bedrijf zit'm uiteindelijk in een stuk documentatie: Hoe mag ik een product toepassen / Wat mag ik aanpassen en wat niet / Wat is de geteste kwaliteit en wat zijn de voorwaarden om die kwaliteit te kunnen borgen / Wat zijn de kosten van een toepassing / Wat zijn de hoeveelheden / Hoe past dit product binnen de geldende regelgeving - kan ik makkelijk de juiste keuzes maken / Met wie moet ik contact opnemen als ik vragen heb etc.
  4. Eigen Subcategorieën die projecten (enorm) vervuilen. Gebruik alleen system subcategorieën. Of die door een gebruikersgroep zijn vastgelegd. Het is vaak niet echt nodig om je eigen subcategorieën aan te maken. Ook dit frustreert de samenwerking.

Veilig voor een leverancier is dus om:
  1. De juiste Categorieën te gebruiken en Custom Families op de juiste manier op te bouwen.
  2. Geen eigen Subcategorieën en Shared Parameters aan te maken.
  3. Maak lichte objecten aan en breng onderscheid tussen 2D, 3D en met name de Meta informatie.
  4. Met Meta informatie bedoel ik het zorg dragen voor uitstekende en goed toegankelijke online documentatie. Zowel voor de architect, de modelleur, de bestekschrijver, de calculator, de werkvoorbereider, de uitvoerder, de gebouwbeheerder etc.

vrijdag 4 april 2014

IkLeerBIM 30.000 pageviews

Ondanks dat ik de laatste tijd door omstandigheden relatief weinig nieuwe berichten heb geplaatst , is het bezoeken van deze blog gestaag door gegaan. Vandaag zag ik dat er al weer 30.000 pageviews zijn geweest. Hartstikke leuk.


De redenen dat ik wat minder heb geschreven zijn divers.
Ik ben wat actiever geworden binnen de RevitGG. En ben me daarnaast flink aan het verdiepen in IFC. Daar wil ik graag meer over leren. En ik ben ook bezig om de uitwisseling tussen Revit en IFC wat beter op poten te krijgen, voor zover dit binnen mijn mogelijkheden valt natuurlijk.
Hopelijk binnenkort meer hierover. Want dit zal best een paar posts waard zijn.

Vragen of opmerkingen kan je altijd kwijt via een reactie bij een Blog Post, Twitter, Linkedin of Google+. Ik hoor ze graag.

maandag 24 maart 2014

Gelezen - IFCZIP naar IFC - WhatRevitWants

Gelezen deze week...
Goeie tip van Luke Johnson van WhatRevitWants.


vrijdag 21 maart 2014

Revit-tips: Opnieuw vacature voor modelleur bij RoosRos Architecten

Revit-tips: Opnieuw vacature voor modelleur bij RoosRos Architecten:

Wegens aanhoudende drukte zoekt RoosRos Architecten opnieuw versterking voor het bouwkundige team in Oud-Beijerland. RoosRos biedt de medewerkers een prettige, leerzame werkomgeving, waar met plezier en passie wordt gewerkt en waar veel aandacht is voor de 'persoon'. Klik hier voor de gehele functieomschrijving.

Ben jij de juiste persoon voor deze functie? Solliciteer dan vóór 11 april 2014 op deze vacature.

vrijdag 28 februari 2014

Select alle ID's via een Revit HTML Report

Altijd al eens in Revit alle items in een Error Report, een Warning Report of een Clash Report tegelijkertijd willen selecteren? Nou ik wel. Een manier /omweg om dit te doen is via Excel. En anders is het wachten op een goede Addin of aanpassing van Autodesk. Onderstaande mogelijkheid is geen 100% score maar handig genoeg.
Ik wil af en toe alle elementen in deze lijst tegelijk kunnen selecteren.
Voordat we in Excel aan het bouwen slaan: Onderstaande functie werkt goed genoeg. Maar als de lengte / aantal karakters van de Element-ID te veel wisselt - wat ik niet helemaal kan overzien - zal de functie maar gedeeltelijk werken. Ik selecteer namelijk een ID met een vast aantal karakters. In mijn project kwamen er ID’s in de lijst voor met 6 en 7 karakters. Voor de onderstaande formules zou ik dan het beste 7 kunnen gebruiken aangezien de extra spatie niet relevant is. Een andere optie is om de lengte van de ID per stuk vast te stellen. Dit zal de eenvoud van de complexe formule niet ten goede komen al is het niet onmogelijk.


Sla een Report op als HTML. Link dit bestand in Excel. Bij de instellingen van het importeren kan je aangeven dat deze link steeds vernieuwd dient te worden. Op die manier kan je het HTML bestand elke keer weer overschrijven, met een nieuwe versie. Zorg dat je bij het importeren de exacte HTML tekst ziet zonder opmaak. Dit vereenvoudigd het geautomatiseerd zoeken naar de ID’s omdat er maar 1 kolom is.

Ga op een ander tabblad in Excel een mooie formule bouwen. Doe dit in verschillende stappen. En kopieer de formule vervolgens door naar beneden. Op zo'n manier, dat er naar elke regel in de HTML een verwijzing is in de formules op het andere blad.
  1. We beginnen met bouwen in de Cel A2. De formule moet zoeken in de inhoud van cel A2 op het andere blad naar de benaming ": id ". Doe dit met de functie VIND.ALLES. (FIND) In de eerste regel van het Report zal natuurlijk geen ID voorkomen aangezien het een kop is. Maar verderop komen ze wel voor.
  2. Rapporteer de ID op basis van bovenstaand startpunt in de regel. Doe dit met de functie DEEL (MID). De ID is bij mij 6 of 7 karakters lang Dus je kan 7 gebruiken want de eventuele extra spatie is niet relevant. Het startpunt voor de functie is 5 karakters verder dan de waarde gevonden bij punt 1. (": id " = 4 karakters). Als je het nu al moeilijk vind kan je overigens beter afhaken. Want we zijn er nog niet.
  3. Aangezien niet elke regel een ID herbergt is het goed om de foutmeldingen #WAARDE te ondervangen. Dit doe je met de functie ALS.FOUT (IFERROR). Laat de functie de ID rapporteren als die er is. En niks rapporteren als er geen ID is. Dit kan je doen met "".
  4. Voeg de ID’s van alle regels samen, door de inhoud van elke Cel te koppelen met de inhoud van bovenstaande Cel. Dit doe je met de functie TEKST.SAMENVOEGEN (CONCATENATE). Voeg tussen de ID’s een semicolon toe.
  5. Vanzelfsprekend moeten we deze samenvoegingen gaan voorzien van enkele voorwaarden. Als de gevonden ID al in bovenstaande Cel voorkomt, hoeft de ID immers niet meer te worden toegevoegd. Hiervoor gebruiken we een combinatie van bovenstaande functies. De totale formule wordt wat minder overzichtelijk. We gaan nu ook gebruik maken van de functie ALS (IF). Met woorden: Voeg de inhoud van de vorige cel samen met ";" en met het gevonden ID nummer, mits deze niet al voorkomt in bovenstaande Cel.
  6. Als de Cel erboven leeg is, moet er ook niks worden toegevoegd. Dit doen we met de functie ALS (IF). De meest logische plek voor deze voorwaardes is de plek waar uiteindelijk de ID wordt toegevoegd. We gaan dit stuk opzoeken en moeten deze aanpassen. De ALS.FOUT (IFERROR) functie gaan we aanpassen. Want er is geen foutmelding meer als de functie hier eenmaal aankomt. De controle is namenlijk al eerder gebeurt. Er hoeft alleen een semicolon en de ID worden samengevoegd. De semicolon uit punt 5 verplaatst dan naar deze nieuwe plek.
  7. Als we het nog iets netter willen maken, kunnen we zorgen dat de hele tekst niet begint met een semicolon. Hiervoor moeten we de semicolon nog van een voorwaarde voorzien. Namelijk dat wanneer de bovenstaande Cel leeg is, er ook geen semicolon moet worden toegevoegd.
  8. We lijken nu klaar te zijn, maar er zijn nog 2 aandachtspunten.
    Wanneer de HTML veranderd, zijn de verwijzingen stuk. Daarvoor moeten we de directe verwijzingen vervangen door een indirecte verwijzing. De indirecte verwijzing gaan we eerst op een andere plek maken, voordat we deze vervangen op plek van alle directe verwijzingen in de grote formule. We gebruiken de functies ADRES (ADDRESS), RIJ (ROW) en INDIRECT (INDIRECT). ADRES (ADRESS) levert de verwijzing op in de vorm van een tekst. Met RIJ() rapporteren we het rijnummer van de Cel die deze formule bevat. En met INDIRECT kunnen we de inhoud van de indirecte verwijzing inlezen en rapporteren. In dit geval als tekst.
  9. Nu gaan we in de grote formule de directe verwijzingen (Blad1!A2) vervangen voor de indirecte verwijzing INDIRECT(ADRES(RIJ();1;4;1;"Blad1")). De Formule is nu officieel onleesbaar geworden. Maar het gaat goed! We hebben nu alle unieke ID’s te pakken. En de formules zijn bestand tegen het overschrijven van het HTML bestand. Maar we willen ook nog op een eenvoudige manier deze ID’s kunnen selecteren en kopiëren naar Revit. Om dit te kunnen doen moeten we weten hoeveel rijen er in de HTML Report zitten. Je kan dat handmatig doen maar ook dit willen we automatiseren.
  10. Eerst moet de net gemaakte formule omlaag doorgekopieerd worden. het aantal formules moet minstens zo veel zijn als er regels in de HTML zitten. Je kan natuurlijk ook aan de veilige kant gaan zitten.
  11. Wanneer we de kolom A, van het blad waar het HTML bestand op staat, een Naam (Named Range) geven, bijvoorbeeld HTML. Dan kunnen we met behulp van de functie AANTAL.ALS (COUNTIF) de hoeveelheid niet lege cellen tellen. De formule is dan =AANTAL.ALS(HTML; "<>"). Met "<>" geven we aan dat het niet lege cellen zijn.
  12. Dit rijnummer gebruiken we in een indirecte verwijzing naar de Cel waar alle ID’s staan. De formule is dan in mijn geval =INDIRECT(ADRES(AANTAL.ALS(HTML;"<>");1;4;1;"Blad4");1)
  13. Voor de veiligheid kan je een controle maken die de aantal gekopieerde formulecellen vergelijkt met het geïmporteerde HTML bestand. Als er meer regels in het HTML bestand zitten dan gekopieerde formulecellen, kan deze een waarschuwing geven dat niet alle ID’s kunnen worden weergegeven. Dit is eigen verantwoordelijkheid.
Aaah. Eindelijk vruchten van het harde werk. Selecteer de Cel die alle ID’s heeft verzameld. Copy en Paste deze in de Select by ID functie van Revit. (de laatste spaties zijn niet relevant ) Et Voila!


Sommige elementen zullen om verschillende redenen niet zichtbaar / selecteerbaar zijn. Bijvoorbeeld omdat het Sketch lijnen zijn. Ook de 2e ID op een regel zal niet in de lijst verschijnen. Daarvoor moet je alle formules nog een keer bouwen maar dan niet gaan zoeken vanaf het begin maar vanaf (na) de eerste ID. Deze formule is dus een stuk langer.

 

Wat kan je hier nu mee doen?
  • Selecteer alles in een 3D view en gebruik de Isolate Element functie
  • Gebruik het Filter of Add-ins om de selectie specifieker te maken.
    • View specifieke zaken bijvoorbeeld Dimensions kan je een afwijkend Type meegeven ten teken dat ze aangepast moeten worden
  • Geef alle Model categorieën een aangepaste eigenschap (bijvoorbeeld Comments) en gebruik de Filters van de Visibility Graphics om deze elementen op te laten lichten
  • etc.

Als iemand meer weet hoe de ID’s door Revit worden vastgesteld en met name de lengte van de ID houd ik me aanbevolen.

maandag 24 februari 2014

IFC bestanden maken in Revit

IFC blijft lastige materie. Vandaar enkele links naar aanvullende documentatie...  
Tja leuker kunnen we het nog niet maken.
Een overzichtje van BuildingSmart (Australia) hoe je in native Revit een IFC maakt.
Tegenwoordig moet je daar zeker aan toevoegen dat er gebruik gemaakt dient te worden van de laatste IFC exporter. Ik noem dit omdat er met een behoorlijke regelmaat een nieuwe versie te downloaden is. Afgelopen donderdag is op dit moment de laatste versie. Daar kan je ook zien met welke onderdelen Autodesk bezig is.

Ook zijn er tools beschikbaar om eens op een andere manier naar een IFC te kijken dan alleen de geometrie.

dinsdag 4 februari 2014

Bestandsversie controle in Revit

Velen van ons kennen de situatie dat je nietsvermoedend op een Revit bestand klikt en dat vervolgens je Revit bestand zonder enige waarschuwing wordt omgezet naar een nieuwere versie. Vaak is dit niet de bedoeling en kost het bovendien een hoop tijd en frustraties.

Waar zit die cancel knop!
Er zijn een paar kleine en grote oplossingen voor dit ongemak. Je kan natuurlijk in de bestandsnaam de bestandsversie laten terugkomen. Maar dit is niet altijd de oplossing. Ook zijn er opstartprogramma's die 'automatisch'  de juiste Revit versie voor je kiezen.

Daarnaast, en dat gaat meer op een oplossing lijken, heeft Boost Your BIM een eenvoudige Addin gemaakt, die je eindelijk de cancel mogelijkheid geeft waar we allemaal op zitten te wachten. Deze tool had hij al een tijdje geleden gemaakt. Maar nu is deze gratis te gebruiken. Dat wil zeggen, via een "Pay what you want" constructie, want Harry heeft ook graag een belegde boterham. Er zit geen teller op die bijhoud hoeveel tijd deze tool je bespaart, maar ik ken zeker een paar mensen die hier erg blij mee zullen zijn. Harry goed werk.

Aha daar zit die cancel knop!

dinsdag 28 januari 2014

Slim tekenen - Afschotisolatie in Revit - deel 2

Vandaag een aanvulling op een oudere Post over afschotisolatie in Revit

Vaak zijn oplossingen simpel.
Soms zelfs zo simpel dat je jezelf afvraagt waarom je daar nog niet eerder opgekomen bent.

Afschotisolatie in Revit vind ik een drama, zie ook mijn eerder Post. Maar ik heb na lange tijd, eindelijk een eenvoudige en doeltreffende oplossing gevonden voor het type afschot zoals ik het vaak tegenkom. Meestal is de onderzijde van het dakvlak horizontaal en heeft de bovenzijde 1 of meerdere afschotrichtingen. Bovendien heeft het dakvlak vaak een onregelmatige contour. En zijn er meerdere doorbrekingen. Hierdoor werkt Modify Sub Elements slecht... Eigenlijk werkt het gewoon niet.
Je wilt graag per zijde een vaste afschot en afschotrichting kunnen aangeven. Net zoals je het hele dak eenvoudig schuin kan leggen. Helaas zit deze mogelijkheid nog niet in Revit.  Het blijift dus een beetje behelpen. De volgende werkmethodiek kan dan helpen.
  1. Maak een vereenvoudigde vorm van een dak of dekvloer.
  2. Modify Sub Elements.
  3. Geef de juiste hoogtematen, 
    • door 1 of meerdere lijnstuken een handmatig berekende hoogte mee te geven.
  4. Gebruik de Vertical Opening tool. 
    • om gaten in het dak 
    • en onregelmatigheden in de contour aan te passen.
Het werkt perfect. De opening cut maakt netjes gaten in 1 object zonder andere elementen aan te passen.
Waarom heb ik dat niet eerder bedacht? Toch blijf ik me afvragen af of deze methodiek in alle gevallen een doeltreffende oplossing is. Maar het is zeker een stap in de goede richting!

Hieronder de concrete case:

De bovenzijde van dit dakvlak moet onder afschot van boven naar beneden .
De onderzijde van het dakvlak blijft horizontaal.

De contouren van het dakvlak heb ik sterk vereenvoudigd.
Ze kloppen nu nog niet.

Met Modify Sub Elements krijgt de bovenzijde een vooraf berekende hoogte.
Kan dit ook slimmer? Ik houd me aanbevolen.
 
Met Vertical Opening selecteer ik het te bewerken dakvlak.
En geef vervolgens de contouren aan, van de weg te snijden stukken.

Het resultaat is perfect :-O
Nooit te beroerd om wat te leren.

zaterdag 18 januari 2014

Hoeveelheden in Revit

Ik ben geen calculator. Maar welke hoeveelheden zijn er nou in Revit uit een eenvoudig modelletje te halen. Vandaag wil ik een paar eenvoudige testjes doen. Met een Schedule, een Material Takeoff. En ook wat de mogelijkheden van Parts zouden kunnen zijn.

Eerst maar een eenvoudige model opgezet. Een wand van 2m1 en een wand van 1m1. Beide met een hoogte van 1m1. Zie hieronder. Ik gebruik hier samengestelde wanden. Het is namelijk om veel redenen wenselijk om te modelleren met samengestelde elementen (wanden, vloeren, daken etc.) in plaats van met allemaal losse elementen.  Maar wat zijn de consequenties voor een calculatie?
Dan mijn keuze voor Parts. En wat zijn het eigenlijk. Parts is een redelijk nieuwe functie binnen Revit. Parts lijken redelijk onbekend en weinig gebruikt. Het grote voordeel van Parts is de relatie tot zijn Origineel. Parts wijzigen namelijk gewoon mee met het origineel, maar zijn dus wel afzonderlijk te rapporteren.  Een calculator kan met een paar eenvoudige handelingen, op basis van samengestelde elementen, Parts maken zonder een Revit Model echt te veranderen.
Selecteer een samengesteld element / rechtermuis knop / Select All Instances / In Entire Project / Create Parts (naast de knop Create Similar)

Voor de hoeveelheden heb ik 3 Schedules gemaakt.
Een Wall Schedule, een Wall Material Takeoff (of een Multi-Category material Takeoff waarbij de Parts zijn uitgefilterd) En ten slotte een Part Schedule.
 

Op het eerste gezicht zien we al meerdere verschillen.
Per soort Schedule zijn er andere parameters te rapporteren. En de manier van meten is ook verschillend.

De Wall Schedule:
Meet zijn lengte over de Wall Center Line. Dat is het hart van de wand: 2000-0.5x260=1870mm. Daarom is deze lengte niet betrouwbaar. Bij het aanpassen van de Wall Location Line naar een andere plek werd gaf de Schedule overigens geen andere maten.
De oppervlakte lijkt nog vreemder. De lange wand krijgt het buitenoppervlak en de korte wand het binnen oppervlak toebedeeld. De hoek is daardoor niet dubbel geteld.
De hoogte kan niet gerapporteerd worden. Ook Levels kon ik niet laten rapporteren.
Al met al, is een Wall Schedule niet handig om onderdelen in een samengestelde wand te berekenen. Als je deze afzonderlijke onderdelen niet los nodig hebt, maar de wand als geheel wil bekijken, is het natuurlijk wel handig.

De Multi-Category Material Takeoff / Wall material Takeoff:
Deze lijkt wel beter, maar als je naar de getallen kijkt, kloppen getallen nog steeds niet. Het is een Wall Schedule waarbij de inhoud is opgesplitst per materiaal. De Width en de Length zijn die van de samengestelde Wall en die is niet correct. Opvallend is trouwens dat de inhoud van de materialen ook niet klopt. Het lijkt de (foute) oppervlakte maal de materiaaldikte te zijn.
Al met al nog steeds niet wat we zoeken.
Wel is de parameter Material: As Paint er een om te onthouden. Want het is in Revit mogelijk om oppervlaktes van "Paint" te voorzien. Hierdoor veranderd het oorspronkelijke materiaal en alleen op die plek. Dit heeft dus consequenties als je daar niet op bedacht bent. Dat geld zowel voor de Calculator als voor de Modelleur. Wellicht zinvol om een vreemd project via een Multi-Category Takeoff en Material: As Paint te controleren!. Via de Schedule kan je ook direct naar de plek waar Paint is toegepast.

Part Schedule:
Now we are talking! Eindelijk goede maten. Een afzonderlijke lengte per onderdeel, een dikte per onderdeel, een hoogte! En oppervlaktes en inhouden die kloppen.
De Part Schedule bevat nog meer Parameters die van pas kunnen komen als er actief met Parts gemodelleerd wordt. De parameter Excluded vindt ik persoonlijk dan wel een vreemde eend in de bijt. Maar ook dat is te rapporteren

Let op dat de totale inhouden van de verschillende Schedules onderling met elkaar overeenkomen.
De gewone Schedules zijn dus wel als controle te gebruiken.


Een paar andere zaken om uit te proberen:
  • Wall Wrap 
    • Geen enkele Schedule reageert hier goed op
  • Aansluitingen met andere wanden worden netjes meegenomen bij de Parts 
    • Mits deze wand ook Parts heeft. Anders loopt de Part gewoon door terwijl het origineel op basis van de "Function volgorde" wel een nette aansluiting laat zien.
de Part Isolatie loopt door en reageert niet op de andere wand zoals de Original wel doet
pas als de aansluitende wand ook Parts heeft gaat de aansluiting helemaal goed

  • Openingen, Edit Profile,  Attach Top, Wall by Face  etc. worden netjes meegenomen, voor zover ik dat snel kan zien. 
    • De Parts Schedule geeft voor de hoogte de maximale maat aan.
  • Voids die door delen van de constructie gaan (beetje pesten mag wel) Worden door de Part Schedule net iets stabieler opgelost dan bij de Material Takeoff. De Wall Schedule was al niet helemaal correct. Maar een volledig gat in de wand wordt in verhouding wel netjes meegenomen
  • Nog meer pesten, doe je met een Model in Place met de Wall Category. Je kan hier gewoon Parts van maken. Wat nu opvalt is, dat de Material Takeoff completer is dan de Parts Schedule. Deze laatste heeft namelijk geen oppervlakte. Bij de Material Takeoff zijn alle zijden van mijn kubus meegenomen.

Populaire berichten

Zoeken in deze blog