如果我尝试使用 addrange 将此列表“ builtInCats_List = new List<BuiltInCategory>();
,”添加到列表框中,则会出现以下错误。
无法从“System.Collections.Generic.List”转换为“System.Windows.Forms.ListBox.ObjectCollection”
如何使用元素类别类型的 revit.db 列表填充表单上的列表框?
如果我尝试使用 addrange 将此列表“ builtInCats_List = new List<BuiltInCategory>();
,”添加到列表框中,则会出现以下错误。
无法从“System.Collections.Generic.List”转换为“System.Windows.Forms.ListBox.ObjectCollection”
如何使用元素类别类型的 revit.db 列表填充表单上的列表框?
尝试将您的列表转换为数组:
yourListBox.ObjectCollection.AddRange(builtInCats_List.ToArray());
看起来 addrange 需要一个数组才能工作。 http://msdn.microsoft.com/en-us/library/z018s5az(v=vs.110).aspx
您是否有一组属于特定 builtInCategory 的元素?如果是这样,请将您的列表项转换为元素数组 [] 并重试。例如,如果您希望使用 addrange 将“墙”添加到列表框:
Autodesk.Revit.DB.Element[] Walls = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).ToElements().ToArray();
这些代码行填充了列表框,我通过浏览构建编码器站点发现了这一点。感谢您的帮助。
lstb1.DataSource = builtInCats_List;lstb1.DisplayMember = "名称";