Filter by Sub Category

@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]