Revit MEP 2011 C # перебирает все оборудование - PullRequest
0 голосов
/ 10 сентября 2010

Я хочу перебрать все оборудование на чертеже и получить название оборудования.

Вот что у меня есть:

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 loop:

Невозможно преобразовать тип 'Autodesk.Revit.DB.Element' в 'Autodesk.Revit.DB.Electrical.ElectricalEquipment'

Есть предложения?

1 Ответ

0 голосов
/ 10 сентября 2010

eViews - это список Element, тогда как вы пытаетесь перебирать их, как если бы они ElectricalEquipment. Если Element не наследуется от ElectricalEquipment или не имеет явного оператора приведения, вы не сможете этого сделать.

Если вы измените цикл for на:

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

Он скомпилируется, однако может не дать требуемого результата.

...