Rhino Blocks to Revit Family Types

Great Scott!
That link that you sent is the PERFECT combination of theory and practicality… Perfect for a new Revit user like myself.
By “Assemblies” I actually wasn’t referring to any Revit lingo, just plain old construction speak. I work at a landscape architecture firm, and while Revit is still not ideal for our design and documentation workflow, RhinoInside is making our collaborations with architects much smoother!
Attached, you will find an example of a block with multiple objects (differentiated in Rhino by material and layer). With the definition I sketched, this imports into Revit as a generic model that acts like a block, as you can select the whole thing with one click. I am using Human to manage the block in Grasshopper, but it would be nice if Elefront Extended Geometry worked as well (for some reason, it doesn’t).
One challenge with this is when you intend to use a block within a block, which is not done in the example here.
Cheers,
AaronRhino to Revit exporter -Block.3dm (1.3 MB) RHINO-IN-REVIT-EXPORTER-Block.gh (14.8 KB)

I am glad it is working for you so far. You are right at where I am also in this process, so I will try to address some of the issues:

Since you are a Landscape Architecture firm, have you looked at the newest Lands Design? I would think it would be quite interesting to have those tools running inside Rhino.Inside.Revit.

I still need time to follow up on the blocks. Hopefully we can work something out on it.

Elefront is a real goldmine in this process. I use it for a lot of things. I need to post a tutorial or two in the Elefront Forum that uses Rhino.Inside.Revit and Elefront together. This is work I been experimenting with in just the last few weeks. I have both a basic demonstration and a more sophisticated workflow as examples. I am sure @krahimzadeh will have something to say about all this too.

1 Like

I have a few questions about state on this model in Rhino. There are a number of issues that make this more challenging then it needs to be.

  1. It seems the block is scaled to 25.4? I expect this is because the original model was in inches? I will work in inches to limit the number of transformations that needs to be done.
  2. The transformation in both X and Y is a negative value. This would mean a mirrored transformation would be needed. Can Revit Types handle a Mirrored transformation?

For this sample I will try to remove these two challenges. Reversing scale and transformation information is possible but takes a bit more math.

Does this make sense?

OK, here it is. Very interesting. There are some tricks. For instance reversing the transform on the original objects.

Now that I get the scaling, you could use any combination of scaling needed.

RHINO-IN-REVIT-EXPORTER-Block-scaled.gh (29.9 KB)
Rhino-landscape-block.3dm (1.5 MB)
Use a blank feet project for this in Revit.

3 Likes

Wow Scott, this is tremendously helpful… and instructive. I want to apologize for grabbing such a wonky block for my example (mirrored, scaled), but perhaps you wouldn’t have arrived on such an elegant solution!
Also, I suspect that somewhere along the way, a change in units may have triggered some of the tolerance/Brep recognition issues that you identified above.
Thanks for this!

Hi Scott,

the blocks are on a flat plane and it works well, I don’t know why as soon as a block is on inclined plane it does not work even though the Always vertical option is disabled on the family template
Do you have an explanation for this?
Thanks

hello samir, did you check the parameter “work-plane based” ?

As @attheeast18 says, it takes both a False on Always Vertical and a True on Work-Plane Based. These can be set by Grasshopper as shown here: Rotate Families in 3d

yes it works now ! i forgot wok-plane option :wink:
thank you :blush:

Thank you scott for your answer and for the tip on grasshopper Rotate Famillies in 3d

Hi Scott,
I have another question
why there are a location gap after translation although the both models are on the same unit and blocks are not scaled ?
See image below

I found where the problem comes from
the insertion point into block must be at the bottom center, it can be generated via Human or Elefront as in the image below

And then we proceed to the translation as mentioned above


it works well !

1 Like

Having some issues with the Human component for block explode in rhino 8?

Doesnt seem to like block instances…

Probably blocks that are scaled differently in different axis.

There are a number of improvements in Rhino 8 that change the way all of this might be approached. Is this a Rhino 8 version?

don’t think human has a new release covering rhino 8? and nope no scaling in any of the blocks.

Its alright i think i managed to solve it with elefronts explode block instead of the human one!

What I meant to say was that Rhino 8 has built in tools to deal with blocks. So it would be a good challenge here to try and solve this that way. I will take a closer look.

Here is the way to get Blocks to Families using Rhino 8 components.

Generally the Block instances and the block definition are both used.

All the geometry of the block definition is extracted and placed in a Component Family. The block definition is always located at the 0,0,0 Origin. In this case the layer names are cub categories in Revit.

Then the Instances are found and used for the insertion location of the Family/Type in Revit.

This is a lot of new stuff, so I expect there will probably be questions.

With these new components, how i would go about grabbing the layer info of the block instances? (not the objects inside the block, just the layer the block instance itself sits on.

Run the top block instance component into the model object component to strip off it’s insertion layer. In the current definition above I only used the transform from the component.


yer I had thought that however it seems to be throwing nulls.