C# 如何将revit DB内置类别列表添加到表单的列表框中

C# 如何将revit DB内置类别列表添加到表单的列表框中,c#,listbox,element,categories,revit,C#,Listbox,Element,Categories,Revit,如果我尝试使用addrange添加此列表“builtInCats\u list=new list();,” 对于列表框,我得到以下错误 无法从转换 'System.Collections.Generic.List' 到“System.Windows.Forms.ListBox.ObjectCollection” 如何使用revit.db元素类别类型列表填充表单上的列表框?看起来addrange需要一个数组才能工作。 您是否有属于特定内置类别的元素集合? 如果是,请将列表项转换为元素数组[],然

如果我尝试使用addrange添加此列表“
builtInCats\u list=new list();
,” 对于列表框,我得到以下错误

无法从转换 'System.Collections.Generic.List' 到“System.Windows.Forms.ListBox.ObjectCollection”


如何使用revit.db元素类别类型列表填充表单上的列表框?

看起来addrange需要一个数组才能工作。

您是否有属于特定内置类别的元素集合? 如果是,请将列表项转换为元素数组[],然后重试。 例如,如果希望使用addrange将“墙”添加到列表框中:

 Autodesk.Revit.DB.Element[] Walls = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).ToElements().ToArray();

尝试将列表转换为数组:

yourListBox.ObjectCollection.AddRange(builtInCats_List.ToArray());

这些代码行填充了列表框,我通过浏览building coder站点发现了这一点。谢谢你的帮助

lstb1.DataSource=内置测试列表;
lstb1.DisplayMember=“Name”

它仍然是一种隐式转换