首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改MEP 2011 C#遍历所有设备

修改MEP 2011 C#遍历所有设备
EN

Stack Overflow用户
提问于 2010-09-10 00:28:25
回答 1查看 1K关注 0票数 0

我想在一张图中遍历所有的设备,并得到设备的名称。

以下是我所拥有的:

代码语言:javascript
复制
UIApplication uiapp = commandData.Application;
UIDocument uidoc = uiapp.ActiveUIDocument;
Application app = uiapp.Application;
Document doc = uidoc.Document;

// get all PanelScheduleView instances in the Revit document.
FilteredElementCollector fec = new FilteredElementCollector(doc);
ElementClassFilter EquipmentViewsAreWanted = 
  new ElementClassFilter(typeof(ElectricalEquipment));
fec.WherePasses(EquipmentViewsAreWanted);
List<Element> eViews = fec.ToElements() as List<Element>;

StringBuilder Disp = new StringBuilder();

foreach (ElectricalEquipment element in eViews)
{
    Disp.Append("\n" + element.);
}

System.Windows.Forms.MessageBox.Show(Disp.ToString());

我在foreach循环中得到以下错误:

'Autodesk.Revit.DB.Electrical.ElectricalEquipment‘

无法将“Autodesk.Revit.DB.Element”类型转换为

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-10 00:35:05

eViews是一个Element列表,而您正在尝试对它们进行迭代,就好像它们是ElectricalEquipment。除非Element继承了ElectricalEquipment,或者有一个显式的cast运算符,否则您将无法做到这一点。

如果将for循环更改为:

代码语言:javascript
复制
foreach(Element element in eViews)
{
    Disp.Append("\n" + element);
}

它将编译,但是它可能不会产生所需的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3681518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档