Revit MEP 2011 C#すべての機器を介して繰り返します
質問
図面のすべての機器を繰り返して、機器の名前を取得したいと思います。
これが私が持っているものです:
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.element'に「autodesk.revit.db.electrical.ElectricalEquipment」に変換できません
助言がありますか?
解決
Eviewsはのリストです Element
一方、あなたは彼らがそうであるかのようにそれらを反復しようとしています ElectricalEquipment
. 。そうでもなければ Element
継承します ElectricalEquipment
または、明示的なキャストオペレーターがいるので、これを行うことはできません。
ループを変更した場合:
foreach(Element element in eViews)
{
Disp.Append("\n" + element);
}
コンパイルされますが、必要な結果は生成されない可能性があります。
所属していません StackOverflow