Using Rhino3dm in Blender

Did you just hide the top block definitions layer? You need to right-click that layer in the outliner, go to visibility and select to hide everything under it.

Couldn’t figure out what I exactly hide in Blender. Could you send adjusted Blender file please?

1 Like

Probably a good idea for the importer to automatically hide all layers under Instance Definitions


Thank you so much! I will try in other files too. It worked for this file.

it should hide the instance definitions and only make them visible on a different view layer. iirc that’s one of the changes that’s not public yet.

as for the mess with the scaled blocks: could it be that you resized the scene at some point? if so, i think the block units in rhino stay at the original scale and just the inserted instances get rescaled… i’ll look into it.

Ok, I’ll check.

I have just created release v0.0.8 of the add-on. I made some modifications to the hiding of the instance definition layers.

Tested to work with the Steam version of Blender 2.90.1 on MacOS.

1 Like

It works. I tried but I need a further request. I can’t add materials to the imported blocks in Blender. If I explode blocks in Rhino, the file is getting huge. If there would be a feature to convert blocks to editable it would be great.

In 7777.3dm file I can’t edit or add any materials in Blender.

You’ll need to edit the base data instead of the instances.

Enable the instance definition layers that your geometry you want to edit is on. Select the geometry such that you can edit or add materials.

Alternatively you can also just select the geometry you want to tweak materials for in the outliner.

FYI, Blender doesn’t have a “set by object parent” material source where you can easily give different material to an instance. You’ll have to read up on library overrides to see what and how you can override.

The problem with editing is, that blender doesn’t have anything like a block editor. What i do is to create a second viewlayer that only enables the instance definition collection. Together with the option to lay them out as a grid you can see and edit all instances (assuming your blocks have their origin set close to the geometry, otherwise their all over the place).

This is especially helpful when you’re working with architectural data coming from a BIM system, that often has countless anonymous blocks (named *SomeCrypticBlockName). I find it way easier to identify a block visually than by browsing through the outliner without knowing if the window you’re looking for is *D1344 or *F5563 :wink:

I didn’t actually test the grid layout function, as I was focused more on the hiding of block definition layers.

We should test that a bit more I think :slight_smile:

Is it even necessary to import the block definitions to Blender? You might as well discard those object, considering the way blender handles linked mesh/ object data, right?

Since block instances are like collection instances it is better to import them as such. Linking data works for simple setups, but anything remotely intricate needs the collections as their basis.

it’d also prevent us from easily keeping track of rhino guids, even though you could probably trick your way around this using accordingly named face maps within the mesh object… (which would probably turn material assignments into a huge mess). plus i don’t see any way how you could represent nested blocks :thinking:

this doesn’t mean that i don’t welcome your input! I’m by far no blender guru and these responses help raise solutions that you might not have been aware of…

the following should allow you to directly jump to an instance definition. once you run the script it registers a new toolbar. simply select a collection instance, press the button and it should take you to the definition. pressing it again takes you back to the previous view…


  • currently only works on 1 level (no nested blocks)
  • assumes the instance definition collection is set up as shown in the image
  • doesnt work on linked collections
  • if you manually exit the localview (using “numpad /”) it might get confused :wink:
  • … probably more, i just hacked this together to make my life a bit easier. hopefully i’ll find the time to refine it some…

it doesn’t change any geometry, just selects some objects and uses localview to jump to the selection. anyways, use at your own risk!

instance_definitions_outliner (3.5 KB)

@nathanletwory Is there a way to keep rhino grouped objects in Blender joined objects?

I believe if you check the Groups checkbox in import properties you get a collection for a Rhino group.

Blender still keeps it seperated in different layer. They are not imported in joined group.