Rhino .3dm import blender plugin improvements

Hi @jesterking,

I do not know if this is the right place to post about the Blender.3 DM import plugin for Blender. (feel free to move it).

I’m using the version 0.0.10 of the Blender import .3dm plugin. As this plugin gets updated, I’d like to see if you guys can add support for a few more things. Let;s start with this:

  1. Proper support of creases in SubD.
    Right now the importer treats creased edges in Rhino’s subD as split edges.

You can see what happens here:

EDIT: the video is not playing for me, so posting it as a zipped link just in case:

And here are 3 screenshots showing the creasing (full loop and partial) problem: They are not imported as creased, but rather as edge splits.

  1. Import nurbs curves and circles properly.
    You can see here how a circle or a nurbs curve show up looking nothin’ like what it looks in Rhino:

  2. Import dimensions and annotations.
    Also, you can see in the comparative screenshot above that these do not come in at all.

  3. import named positions in some way
    This is one that would be super useful fo rus, just not sure what’s the best way to implement this import in Blender:

here’s my test .3dm file:
3dm_export_test02_gf_240320.3dm (308.9 KB)



Here is fine.

@gustojunk I am unable to view your video, neither Chrome nor Firefox play this.

yeah, it’s not playing even in Safari on the phone either. I think Discourse or Dropbox broke something. I added it as a .zip to download


1 Like

hi @nathanletwory,

I just wanted to follow up and see if you had a chance to review these requests for the Blender .3dm import. In summary, there are:

  1. Proper support of creases in SubD import.

  2. Import nurbs curves and circles properly.

  3. Import dimensions and annotations.

  4. import named positions in some way



I have reviewed the video you sent me.

Most of these things will depend on whether rhino3dm has the necessary support for these. I’m currently working on revisiting block instance loading and cleaning up material handling.

Once I’m done with that I will check what the current support level is for the items you mentioned.

Progress you can track in

RH-81173 Update import_3dm to rhino3dm latest 8.x


  • RH-81210 import_3dm: import Rhino annotations
  • RH-81211 import_3dm: import Rhino dimensions
  • RH-81212 import_3dm: support nurbs curves and circles better
  • RH-81213 import_3dm: import named positions

Thanks @nathanletwory

If it doesn’t, it sounds like the request should add support for these. Who is in charge of writing rhino3dm at Mcneel?

BTW, the import-export of creased geometry is something that you guys should give a lot more priority; I don’t think we are the only ones who need this.



@gustojunk later this week I’ll be releasing v0.0.12 of the add-on with greatly improved curve import, going from


1 Like

That’s awesome Nathan. This will be very useful for us. Looking forward to the update. Will you post here to let us know? Thx!


Yes I will.

I’ve started looking into the dimension annotations as well, since that builds on the curve import stuff.

SubDs will come some time later, that needs more attention since not all necessary API has been wrapped.


Hi Nathan, I cannot install/activate the addon, testet both blender 3.6 and 4.1-(I used blender Zip, and didn´t install it via msi)
I have rhino (7) installed- (is rhino installation even needed?)
Any idea whats causing the error?
I get Error:

Traceback (most recent call last):
File “C:\Users-------\Downloads\Blender Programm\blender-4.1.1-windows-x64\4.1\scripts\modules\addon_utils.py”, line 376, in enable
mod = importlib.import_module(module_name)
File “C:\Users-—\Downloads\Blender Programm\blender-4.1.1-windows-x64\4.1\python\Lib\importlib_init_.py”, line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File “”, line 1204, in _gcd_import
File “”, line 1176, in _find_and_load
File “”, line 1147, in _find_and_load_unlocked
File “”, line 690, in _load_unlocked
File “”, line 940, in exec_module
File “”, line 241, in call_with_frames_removed
File "C:\Users------\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_3dm_init
.py", line 45, in
from .read3dm import read_3dm
File “C:\Users-----\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_3dm\read3dm.py”, line 54, in
import rhino3dm as r3d
ModuleNotFoundError: No module named ‘rhino3dm’

Just reinstall once more. I am aware of the problem.

I think restarting blender after install but before activating the addon should be enough. The addon ships with a python module, which isn’t loaded when installing, only when starting blender.

The path to the module is added before attempting to load it, not sure yet why it isn’t sticking the first time around.

Yeah, I looked through that code as well, but it never seemed to work for me…
With blender 4.2 the extension platform is going live. I’m not sure if that adds functionality to better support python modules out of the box.

The old code to try and automatically install the rhino3dm extension is no longer in use with this version.

1 Like