Same to Add Beam function but Generic Model

Hi Guys,

Good day, is there a way to host a generic model by curve like add beam function but a generic model element instead?


The reason why I would like to host thru a curve because the revit family is like a beam but a penetration to a beam.

And the family is like a line-based family wherein it has a starting and end points.

  1. Data conversion failed from Revit Component Type to Graphical Element

Hi Joel,

Are you using a Generic Model Line Based template?

Thanks Japhy, it is similar to what you have there, will there be a way to select an existing line inside revit and assign a family type onto it? like add beam wherein you have to feed a curve and type to the component?

Kind regards,

Hi Joel, This might work with a generic model, I’ll put in a feature request. Looks like the only other method is for a line based detail component.

1 Like

Beam Penetration - Circular Multi Beam.rfa (364 KB)

Thanks Japhy, what I am trying to achieve is select the center lines of the pipe from the link MEP model and then use to host my line-based family (void) then cut the beam.


I wish we could have a future component like this? cheers

Hi Japhy,
I created a 2 points adaptive component for the void and I am trying to place these 2 points against the link pipe start and end points, is this possible?


Hi Japhy,

Finally, it is working, the adaptive void family is aligned from the link MEP pipe and
the only disadvantage is you have to maintain the link model being loaded as if you
unloaded the link model, the adaptive void will disappear, but the advantage is the model
is auto updated.

kind regards.

1 Like

Hi, Can you show what inside your Revit Python component? Thanks.

Hi Vu,
Please see details below:

import clr

from System import Enum

import rhinoscriptsyntax as rs
import Rhino
from Rhino import RhinoMath as RM
import RhinoInside

import Grasshopper
from Grasshopper.Kernel import GH_RuntimeMessageLevel as RML

from RhinoInside.Revit import Revit, Convert

from Autodesk.Revit import DB
from Autodesk.Revit import UI

import RhinoInside.Revit.Convert.Geometry.GeometryEncoder as GE
import RhinoInside.Revit.Convert.Geometry.GeometryDecoder as GD

active Revit verison

REVIT_VERSION = Revit.ActiveUIApplication.Application.VersionNumber

access the active document object

doc = Revit.ActiveDBDocument

def show_warning(msg):
ghenv.Component.AddRuntimeMessage(RML.Warning, msg)

def show_error(msg):
ghenv.Component.AddRuntimeMessage(RML.Error, msg)

def show_remark(msg):
ghenv.Component.AddRuntimeMessage(RML.Remark, msg)

def coerce(item):
if isinstance(item, int):
return doc.GetElement(DB.ElementId(item))
elif isinstance(item, DB.Element):
return item


Input param > description


Output param > description

if GO == 1:

# create and start the transaction
t = DB.Transaction(doc, "Transaction name here")

    # Change document here
    DB.InstanceVoidCutUtils.AddInstanceVoidCut(doc, Solid, Void)
    # commit the changes after all changes has been made
except Exception as txn_err:
    # if any errors happen while changing the document, an exception is thrown
    # make sure to print the exception message for debugging
    # and rollback the changes made before error
1 Like

Thanks. Can you upload your gh file ?
I am trying to cut the walls by the beam which from linked revit file (structural). Still cónsidering your method using the void family , or modify the walls profile.

Cutting Framing through link (17.4 KB)
Void_Adaptive.rfa (388 KB)

Please see attached working files, cheers.

Since v1.13 we have ‘Add Component (Curve)’ to add model line based components.

1 Like

Hi Kike,

Good day, it will be nice to see a curve component like add beam for a line based family, it will be useful to have this one.


Sketzjewel, Please see the Add Component (Curve) for adding Line Based families

1 Like

Thanks Japhy, what Rhino inside version is this?


The component was first added in v1.13

1 Like