@jak modify the script inside the error’d component to this:
import clr
clr.AddReference('System.Core')
clr.AddReference('RhinoInside.Revit')
clr.AddReference('RevitAPI')
clr.AddReference('RevitAPIUI')
from System import Enum
import rhinoscriptsyntax as rs
import Rhino
import RhinoInside
import Grasshopper as GH
from RhinoInside.Revit import Revit
from Autodesk.Revit import DB
# loading extension methods are necessary to access convertor methods
# e.g. Solid.ToBrep()
clr.ImportExtensions(RhinoInside.Revit.Convert.Geometry)
doc = Revit.ActiveDBDocument
def get_geom_element_props(geom_element):
gobjs = [x for x in geom_element if x.GraphicsStyleId != DB.ElementId.InvalidElementId]
breps = [x.ToBrep() for x in gobjs]
cats = [doc.GetElement(x.GraphicsStyleId).GraphicsStyleCategory for x in gobjs]
return gobjs, breps, cats
# get element geometry
if isinstance(E, DB.Element):
opts = DB.Options()
opts.ComputeReferences = True
geom_element = E.Geometry[opts]
for geom_inst in geom_element:
inst_geom = geom_inst.GetInstanceGeometry()
G, B, C = get_geom_element_props(inst_geom)
Changes
The new Rhino.Inside.Revit API has change the namespace for conversion methods. So loading the C# extension methods is necessary now. See these new lines added to the script:
# loading extension methods are necessary to access convertor methods
# e.g. Solid.ToBrep()
clr.ImportExtensions(RhinoInside.Revit.Convert.Geometry)
No you can call the ToBrep() method on the Revit Solid object:
breps = [x.ToBrep() for x in gobjs]