Sunday, 20 November 2016

Revit 2017.1 Import Rhino Materials

Following on from my post about the new Revit 2017.1 feature 'Import 3D Shapes', I have done some more testing on how to import Rhino files with materials (colours) into a Revit family.

If you import a Rhino file that has no colours or materials defined in it, you just get a dumb object in Revit that has no capability for controlling materials.




However, one of the subtleties of the new import shape feature is that it will recognise assigned colours in the Rhino file.  It will then create a new material in Revit for each colour.




To assign a material or colour in Rhino, you can either select an object and choose a colour/material;  or else you can create layers and assign a colour/material to the to the layer, then put the object on that layer and leave its object properties set to 'By Layer'.
Once you import the Rhino file to Revit, it will take just the RGB value of the defined colour or material and use that to create a new material in Revit - any other material properties will be ignored, so don't expect textures, reflectivity or anything else.
If you do not assign a colour/material to any object by either method, it will not be given a material in Revit (not even 'Default') - so you cannot subsequently change it.  Hopefully this will change in future versions of Revit.

The materials in Revit are given names such as 'Material 2' etc.  This is a big improvement over the confusing naming of imported Autocad materials (eg. Render Material 255-255-255).

The only property that the new materials have is a 'Graphics' colour definition.

It has default 'Appearance' settings (grey), meaning that realistic or rendered views will show grey objects.

You can of course change the material definition and give it 'Appearance' colours, tints, bump maps etc. 

This will only affect the part of the imported Rhino file that had that original colour (and now Revit material).
Realistic view with only one material Appearance edited

It would make sense to rename the materials so that they refer specifically to the individual objects within the imported file.  I like to set the 'Appearance' colour to match the Graphics colour, so that not only do the material previews show in colour but also any realistic views will display the colours rather than default grey.


I have not yet succeeded in testing this functionality with an imported SAT file (as I can't figure out how to apply colours in a SAT file), but hopefully it will work as a viable alternative workflow to the old method of importing/linking SAT files, as described in an earlier post.

For details on how to apply colours/materials to objects in Rhino, click here

3 comments:

  1. thanks for this, is very useful. DO you know if there is a way to achieve the following: If I need to reimport the same rhino file, say after making a few changes in rhino, even if I keep the same colours, a whole new set of materials is created in Revit -for example: Material 5 (2), etc-. Then I need to change all the new materials assets manually to match the previous ones. Is there a way revit can just apply the previous material to the new updated rhino geometry that has same coulors as before?

    ReplyDelete
    Replies
    1. Jorge, my experience was that if you import the same Rhino file twice, it applies the same materials. However, there may be something that triggers Revit to consider them to be different files if you make significant enough changes? Either way, if Revit does create new materials, you can always apply the previously set up material assets to those new materials - it takes a lot longer to get the assets right than it does the actual materials so it may not be as much rework as you think.

      Delete
  2. Thanks. I did I few tests with different simple geometries and materials and it does seem like at some point revit creates new duplicate materials for "new" imported geometry even though they import file is the same, same slightly modified geometry and same colors. Reapplying the assets is the best way to go at the moment.

    ReplyDelete