Convert rooms to shaft openings


I’m trying to extract the boundary from a room from a linked in Revit model and use this boundary to define a shaft opening for an existing slab in my model.

There are many levels with different rooms at each level. So the boundary would need to know at which level it is and then only create the opening for the floor which is at the same level.

Is this possible?

Many thanks,


I believe so, if you post a small example we can help quicker.


Hi @Japhy ,

Sorry for the late response.

I got it to work.

The only thing is the level offsets seem to be in feet rather than mm? do you know how i can change this?

Many thanks,


Hi Stephan,

You will want your Rhino Document Units to Match the Revit Document.

You can set the default when opening Rhino, this setting will let you set a different Default for Rhino.Inside.Revit vs just opening Rhino, since revit often works in Feet or Meters where people prefer to work in inches /mm in Rhino.

Hi Japhy,

I think my settings are set correctly.


…and i havent really had any problems so far.

Also, I did run a quick test and it looks like the shaft component is the only one which uses feet.

Please see column offset below which is in the same script and the offset comes through correctly in mm.

Any ideas why?

Thank you

Open up Rhino and type in Units & change to the Revit Units. Any fixed value in Grasshopper should be done in the desired units.

If you want to set a default when opening Rhino.Inside.Revit, check the box i mentioned above and set your Rhino Template file.

The other possibility is a fixed value in your scripted component.

sorry to be a pain but my units in Rhino are set to mm the same as in Revit … still the ‘create shaft’ component seems to work in feet?

Did you do the scripted component? can you post the GH file? there’s probably a hard coded conversion going on.

No, I’ve downloaded the component from the website:

Shaft (18.1 KB)

Please see script below

Thank you