1)讀取所有視圖:
public static ViewSet GetAllViews(Document doc) { ViewSet views = new ViewSet(); FilteredElementCollector collector = new FilteredElementCollector(doc); FilteredElementIterator it = collector.OfClass(typeof(View)).GetElementIterator(); it.Reset(); while (it.MoveNext()) { View view = it.Current as View3D; if (null != view && !view.IsTemplate && view.CanBePrinted) { views.Insert(view); } else if (null == view) { View view2D = it.Current as View; if (view2D.ViewType == ViewType.FloorPlan | view2D.ViewType == ViewType.CeilingPlan | view2D.ViewType == ViewType.AreaPlan | view2D.ViewType == ViewType.Elevation | view2D.ViewType == ViewType.Section) { views.Insert(view2D); } } } return views; }
2)讀取視圖的名稱:
public static string GetViewDisplayName(View view) { String name = view.ViewName; //special treament to sheet name if (view.ViewType == ViewType.DrawingSheet) { ViewSheet sheet = view as ViewSheet; name = String.Format("{0} - {1}", sheet.SheetNumber, name); } if(view.ViewType == ViewType.ThreeD) { if (name.Contains("{")&&name.Contains("}")) { int bracketStart = name.IndexOf("{"); int bracketEnd = name.IndexOf("}"); name = name.Substring(bracketStart + 1, bracketEnd - bracketStart - 1); } } else if(view.ViewType == ViewType.FloorPlan) { name = string.Format("樓層平面:{0}", name); } else if (view.ViewType == ViewType.CeilingPlan) { name = string.Format("天花板平面:{0}", name); } else if (view.ViewType == ViewType.AreaPlan) { name = string.Format("面積平面:{0}", name); } else if (view.ViewType == ViewType.Elevation) { name = string.Format("建築立面:{0}", name); } else if (view.ViewType == ViewType.Section) { name = string.Format("建築剖面:{0}", name); } return name; }