Assign new/old family to objects from Rhino

Hi all,

let’s say I have very odd shapes that I wanna create parametrically in Rhino and I just wanna show like they are in Revit. Therefore I wanna create a family and bake the content to that family.
So far I only have found ways ot parametrically create objects in families in Revit with data from Rhino.

As far as I can tell a family does not necessarly need to be parametric and in our case (very weird panels and substructure) I just wanna be able to show them to people.
Is that possible at all, because so far I have not found an option to do so in Rhino.Inside.

Thanks a lot!

Hey @tobias.stoltmann
what i’m gathering is that you want to push the geometry that you have created in Rhino/GH into Revit but avoid creating complex parametric families. That is actually very possible. You can create a family from a piece of geometry cominng from Rhino/GH. You can also push the geometry as a DirectShape object into the Revit model and avoid creating a family.

Let me know if this helps and if you need more info on how to create families in Rhino.Inside.Revit

Hi @eirannejad
first of all thanks for the reply.
Let’s say I’d wanna create that piece of geometry and connect it to a family.
What would be the correct approach then?

So far I even lack the idea how to do that because so far I only found the option to create instances of a family at a location.

Hey @tobias.stoltmann

See this example please. On this definition, I am creating a very simple Rhino/GH geometry, create a simple Generic Model family from it and placing an instance of the family somewhere in the model.

create (91.0 KB)

Hey @eirannejad,
I guess I was not specific enough, sorry.

So the example you describe is creating a family and then creating an instance of it in the model at a specific location.

What I wanna do is to to chose a brep from Rhino/GH, which is pretty much not able to be described by the means of a parametric family, let’s say the individual elements of a custom facade/ceiling. In the first place they seem to be following the same principle, but in fact they are all calculated by a bigger code in Python. So that means I do not wanna create instances, because they are already created. Location and size are already pre-defined and created.

What I’d wanna do then (based on the client’s/contractor’s/architect’s needs) is to “assign” a family to that individual element(s). The purpose solely would be that you’d be able to find them in a family tree.
To be honest this might not be the purpose of a family but let’s say you would wanna have that for terms of overview. So here I’d ask myself the question if a simple filter and data written into the object (Positionnumber, etc…) would do the job and people who’d ask me to deliver the content as a family would deserve a “NO”. Because in the worst case if my facade/ceiling would have 100 individual elements that might result in 1 family that simply would be the 100 elements or in 1 family with 100 nested families - which would be okay for me because GH will do the math.

So I hope I am not too confusing and not to unlogical…
Thanks :slight_smile:

Hmm okay. I’m not sure if I understood correctly but if you remove the “place” nodes in the previous script, the Family.New component still creates the family (it will not be placed) and the Project Browser will show the created family in the tree. You can also customize the category of the family and make it more specific using the other parametrs on the Family.New component

@eirannejad, I got it. Perfect.
I have a question though (not being new to Revit, but being not that experienced…)
Let’s say I gonna have a really special ceiling/facade as to be seen in the screenshot (sorry for the bad sketching skills).
Every panel in there is really really different. The only thing I was capeable of was to create as many families as different panels I got. And this is getting quite unhandy when you have 100 different ones.

I guess you would frankly not want to modify them as they are really unique, but you’d like every different one to be a type of that panel (=part of the family).
Is that something that is impossible in Revit and therefore requires a new strategy how to organize them in Revit…?

Thanks in advance

I guess what I try to achieve is total nonsense.
I guess what we are dealing with is best organized by assigning the category and then leaving it out of any family (unless you prove me wrong of course).

If anybody wants us to deliver families they will get individual families for every single element, which makes sense in my eyes.
Everything else can be tagged in the parameters…

Hey @tobias.stoltmann
Sorry for the delay in replying. I was travelling and internet access was limited.
I think what you are trying to create makes perfect senes. Assuming the ceiling has a complex non-uniform pattern, abd using Rhino.Inside.Revit, I would:

  • Create the A1-A6 panel types in GH
  • Generate a ceiling grid pattern with insertion points for each panel type
  • Using Rhino.Inside.Revit, create family/types for each A1 to A6
  • Using Rhino.Inside.Revit, place instances of each family type at the correct location

This way you will get a Revit ceiling that is made up of Revit family instances that are individually editable by their type.

If the panels do not need to be modified on the Revit side, then you can generate the complete ceiling geometry in GH and place inside a single Model-In-Place Ceiling family.

Hope this helps. Please continue the discussion though. I’d love to see the final results :slight_smile:

It’s also possible to store all the different geometries of these panels inside a Revit family and play with assigning visibility parameters which will only show one panel per type, just as your sketch suggests. I’m not sure if doing it programmatically for a small amount of types is quicker than doing it manually, or if baking as Directshapes would be better. I’ve been working on a script just in case, so I can upload it here as soon as I clean it up a little.

Also, if each panel has more than one geometry/object (that is, it’s not a monolithic piece) I will have to think it over again.

Would you like your panels to follow a similar principle to the one I am following in this test family?TestFamily.rar (435.4 KB)

1 Like

Family (18.4 KB)

This is the current state of development of the script. Apologies for the spaghettis… I might be able to optimize and merge stuff in fewer components more logically, but for now I don’t even know how family creation is driven using the Family nodes (Project environment), so I’m mixing project environment and family environment here.

Good thing is, I’m thinking a lot about how I would personally like to see this functionality of parameter assignment and stuff in the future, so I might take some time one of these days and make a list of proposals for possible component addition or refinements (inputs, outputs, reasoning etc). Anyway, that’s for a whole different topic.

I will try to optimize this script later and reupload it.