private void GetCameraViews() { try { var collector = new FilteredElementCollector(ModelDoc); var threeDViews = collector.OfClass(typeof(View3D)).ToElements().Cast <View3D>().ToList(); foreach (var view in threeDViews) { if (view.ViewType != ViewType.ThreeD) { continue; } if (view.IsTemplate) { continue; } if (view.IsPerspective) { var viewInfo = new CameraViewInfo(view); if (worksetIds.Count > 0) { viewInfo.GetWorksetVisibilities(view, worksetIds); } if (!CameraViews.ContainsKey(viewInfo.ViewId)) { CameraViews.Add(viewInfo.ViewId, viewInfo); } } } } catch (Exception ex) { MessageBox.Show("Failed to get camera views.\n" + ex.Message, "Get Camera Views", MessageBoxButton.OK, MessageBoxImage.Warning); } }