[New GH nodes] Family.Extrusion by Profile, Extrusion.Attributes, Family.Parameter


Extrusion Attributes Parameters.gh (21.5 KB)

Hi. Based on the kind of functionality that I would like to be added to Rhino.Inside-Revit in the future, I coded up a few nodes which I hope can serve as quick prototypes. Mind you, this GH file is still incomplete, quite buggy and not at all prepared for corner cases, scalability and stuff like that. It’s more to be taken as an idea of what I think would be a user-friendly approach to family creation, and I decided to leave it like this in order to show main functionalities. Names for nodes can of course be changed, I’m not following any specific criteria for that matter. Also, these nodes are expected to be used inside the Family Environment, not the Project Environment.

  1. Extrusion.ByProfile:

Given a set of planar, closed and coplanar Profile curves, a Solid/Void flag and extrusion Depth (End), this node creates a native Revit Extrusion element in the document. I chose to use as few as possible inputs in order to ensure ease of use, so by itself this node doesn’t account for properties such as material, subcategory etc which are technically not needed in the NewExtrusion method. These are addressed, through an optional input, by the following node, which is…

  1. Extrusion.Attributes:

This node takes care of the aforementioned extrusion properties, plus the IsVisible flag, Visibility settings (works same as with the already known FamilyElement.ByBrep etc nodes)… I forgot to add some Extrusion-specific properties like Extrusion Start (offset regarding sketch plane) and maybe others I don’t remember atm, so consider this node would take more inputs.
Something special about this node, which I made sure to show in this prototype, is the possibility to feed FamilyParameters as inputs for the right properties. You see, in Revit it’s possible to associate family parameters to specific element built-in parameters (like extrusion start or end, which would need to be associated with double-type parameters, or materials (like in this example) which would need corresponding material-type parameters).
So, in this case, you could either create a valid FamilyParameter through the node which I will explain next and then feed for the Extrusion.ByProfile node to recognize it and associate it with your desired Built-In Parameter, or just feed a static material like you’ve been doing up until now. Good thing about doing it parametrically is that you are making sure to follow good Revit modelling standards (at least IMO), and prepare the family for traditional Revit-only workflows in the future, if necessary.

  1. Family.Parameter:

This node creates a Family Parameter, given a name, parameter group, parameter type, instance/type classification (which I find in conflict with the parameter type input as their names could be confusing), and optionally a formula (only in allowed parameter types, material-type parameters for example cannot be formula-driven). I also put a dummy Override bollean, although it doesn’t do anything and I’m still having trouble to properly implement element binding and update for parameters (remember, I’m just a newbie after all!). The output of this node, as I say, could be fed to a valid input from the Attributes node (Material parameter for a material property, Yes/No parameter for the IsVisible property, etc).

Finally, I should mention that I think the Attributes nodes should be different and specific for different kinds of revit-native geometry, as in Extrusion.Attributes, Sweep.Attributes, Blend.Attributes, etc. Either that, or a basic, common attributes node for all geometry types plus type-specific attribute nodes, or (just came up with this one) an expandable (advanced) Extrusion.ByProfile node in order to either show or hide all properties, not just the basic ones for its generation (and obviously its Sweep, Blend etc counterparts).

I also got the sweep node working, but I wanted to show this basic workflow first and then upload other nodes in different threads.

As always, I’m open to suggestions and all of them are welcome!

3 Likes

Thanks a lot @lukabergs
I’m writing new guides on the Wiki and will incorporate these into them or pass on to Kike to create custom components.

Thanks for puting this package together :smiley:

Hi guys,

Is the profile through sweep command is now working in RIR?

Thanks

Still on the wish list.

is there any news?

No news on profile/ sweep components. You can keep up with our latest updates here… Rhino.Inside®.Revit

Hi,

It’s been ages since I last worked on custom RiR components, I might give it a try before christmas to see if I can take advantage of updates on either RiR’s or Revit’s part. I miss these small scripting projects after all. @newshunhk what functionality are you looking for?

I wish I can use RiR to create sweepblend for me like this:
(I have a custom profile)

I am now baking a mass in Revit and use pick line to do the job

I tried to use some coding to help me but fail…didn’t know why

image

I’ll try to take a look before Christmas, but I will need to set up my PC first, which will take me 2 weeks minimum. Then I will have to familiarize myself again with the RiR ecosystem since it’s been a long time since I touched any of this stuff.

Anyway, I see your last screenshot relates to Speckle, which is a Revit add-on IIRC? Have you checked if disabling it helps in any way?

@newshunhk got it.

SweptBlend_Attributes_Parameters.gh (20.2 KB)

Test it to see whether it works for you or not. Took me some time until I found the NewCurveLoopsProfile() method, I wasn’t able to create custom SweepProfile instances until now. I still have to clean it up and do something regarding the pathPlane parameter, but for now I just wanted to check bsic functionality.

You can input lines, arcs, and Nurbs as path curves. It breaks if the path curve has a high curvature, but I think that’s not related to RiR as it also happens in native Revit.

Will try to update the file in the following days, maybe create a new thread for it or update my first post here.

thanks! let me check :slight_smile:

it works! thank you so much!!!

1 Like