Converting from Revit.DB.Element to Revit.Elements.Element

Hello, I’m working on converting a custom python node (written by conrad) to a c# node. In this process, I realized I don’t know how to output a Revit.DB.Element as a Revit.Elements.Element type.

Here is the code:

public static List<Revit.Elements.Element> GetElementsOfFamilyType(List<Revit.Elements.Element> types)
        {
            Document doc = DocumentManager.Instance.CurrentUIDocument.Document;

            List<Element> elems = new List<Element>();
            List<Element> activeElems = new List<Element>();
            List<Revit.Elements.Element> output = new List<Revit.Elements.Element>();

            foreach (Revit.Elements.Element e in types)
            {
                elems.Add(e.InternalElement);
            }

            foreach(Revit.Elements.Element x in types)
            {
                FilteredElementCollector catCollector = new FilteredElementCollector(doc);
                BuiltInCategory cat = (BuiltInCategory)Enum.Parse(typeof(BuiltInCategory), x.GetCategory.Id.ToString());
                catCollector.OfCategory(cat);

                foreach(Element item in catCollector.ToElements())
                {
                    if(item.GetTypeId().IntegerValue == x.Id)
                    {
                        activeElems.Add(item);
                        output.Add(x);
                    }
                }
            }
            return output;
        }

Currently, when I return output I get the types, which is not what I want. Previously I was returning ‘activeElems’ as a list of Revit.DB.Element, however that cannot work with other dynamo nodes. How do I convert the activeElems list to a list of type ‘Revit.Elements.Element’?

I figured this one out. For anyone interested, here is the working code:

public static List<List<Revit.Elements.Element>> GetElementsOfFamilyType(List<Revit.Elements.Element> types)
        {
            Document doc = DocumentManager.Instance.CurrentUIDocument.Document;
            List<Element> elems = new List<Element>();
            List<Element> activeElems = new List<Element>();
            List<List<Revit.Elements.Element>> output = new List<List<Revit.Elements.Element>>();

            foreach(Revit.Elements.Element x in types)
            {
                List<Revit.Elements.Element> list = new List<Revit.Elements.Element>();
                FilteredElementCollector catCollector = new FilteredElementCollector(doc);
                BuiltInCategory cat = (BuiltInCategory)Enum.Parse(typeof(BuiltInCategory), x.GetCategory.Id.ToString());
                catCollector.OfCategory(cat);

                foreach(Element item in catCollector.ToElements())
                {                    
                    if(item.GetTypeId().IntegerValue == x.Id)
                    {
                        Revit.Elements.Element elem = Revit.Elements.ElementWrapper.ToDSType(item, true);
                        list.Add(elem);
                    }
                }

                if (list.Count != 0)
                    output.Add(list);
            }
            return output;
        }