private void buttonAdd_Click(object sender, RoutedEventArgs e) { try { bool added = false; var viewNames = from view in rvtSheetData.Views select view.Name; for (int i = 1; i < 100; i++) { string viewName = "New View " + i; if (!viewNames.Contains(viewName)) { RevitView rvtView = new RevitView(Guid.NewGuid(), viewName); this.RvtSheetData.Views.Add(rvtView); added = SheetDataWriter.ChangeViewItem(rvtView, CommandType.INSERT); break; } } if (!added) { MessageBox.Show("Please assign view names before you add more view items.", "View Name", MessageBoxButton.OK, MessageBoxImage.Information); } } catch (Exception ex) { MessageBox.Show("Failed to add view items.\n" + ex.Message, "Add Views", MessageBoxButton.OK, MessageBoxImage.Warning); } }
private void SearchByText(string fieldName, string searchText) { try { ICollectionView cv = CollectionViewSource.GetDefaultView(dataGridView.ItemsSource); if (!string.IsNullOrEmpty(searchText)) { switch (fieldName) { case "View Name": cv.Filter = o => { RevitView view = o as RevitView; return(view.Name.ToUpper().Contains(searchText.ToUpper())); }; break; case "Sheet Number": cv.Filter = o => { RevitView view = o as RevitView; return(view.Sheet.Number.ToUpper().Contains(searchText.ToUpper())); }; break; case "View Type": cv.Filter = o => { RevitView view = o as RevitView; return(view.ViewType.Name.ToUpper().Contains(searchText.ToUpper())); }; break; case "X": double uVal; if (double.TryParse(searchText, out uVal)) { cv.Filter = o => { RevitView view = o as RevitView; return(view.LocationU == uVal); }; } break; case "Y": double vVal; if (double.TryParse(searchText, out vVal)) { cv.Filter = o => { RevitView view = o as RevitView; return(view.LocationV == vVal); }; } break; } } else { cv.Filter = null; } } catch (Exception ex) { string message = ex.Message; } }
private static void ReadViews(ref RevitSheetData sheetData) { try { sheetData.Views.Clear(); using (SQLiteCommand cmd = new SQLiteCommand(connection)) { cmd.CommandText = "SELECT * FROM Views"; using (SQLiteDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { RevitView view = new RevitView(); view.Id = reader.GetGuid(reader.GetOrdinal("View_Id")); view.Name = reader.GetString(reader.GetOrdinal("View_Name")); Guid sheetId = reader.GetGuid(reader.GetOrdinal("View_Sheet_Id")); if (sheetId != Guid.Empty) { var sheetFound = from sheet in sheetData.Sheets where sheet.Id == sheetId select sheet; if (sheetFound.Count() > 0) { view.Sheet = sheetFound.First(); } } Guid viewTypeId = reader.GetGuid(reader.GetOrdinal("View_ViewType_Id")); if (viewTypeId != Guid.Empty) { var viewTypeFound = from viewType in sheetData.ViewTypes where viewType.Id == viewTypeId select viewType; if (viewTypeFound.Count() > 0) { view.ViewType = viewTypeFound.First(); } } view.LocationU = reader.GetDouble(reader.GetOrdinal("View_LocationX")); view.LocationV = reader.GetDouble(reader.GetOrdinal("View_LocationY")); sheetData.Views.Add(view); } } } } catch (Exception ex) { string message = ex.Message; } }
public static bool ChangeViewItem(RevitView item, CommandType cmdType) { bool result = false; try { if (null != connection && null != command) { switch (cmdType) { case CommandType.INSERT: command.CommandText = @"INSERT INTO Views (View_Id, View_Name, View_Sheet_Id, View_ViewType_Id, View_LocationU, View_LocationV) " + "VALUES ('" + item.Id.ToString() + "', '" + item.Name + "', '" + item.Sheet.Id.ToString() + "', '" + item.ViewType.Id.ToString() + "', " + item.LocationU + ", " + item.LocationV + ")"; if (command.ExecuteNonQuery() > 0) { result = true; } break; case CommandType.UPDATE: command.CommandText = @"UPDATE Views SET View_Name = '" + item.Name + "', View_Sheet_Id = '" + item.Sheet.Id.ToString() + "', View_ViewType_Id = '" + item.ViewType.Id.ToString() + "', View_LocationU = " + item.LocationU + ", View_LocationV =" + item.LocationV + " WHERE View_Id = '" + item.Id.ToString() + "'"; if (command.ExecuteNonQuery() > 0) { result = true; } break; case CommandType.DELETE: command.CommandText = "DELETE FROM Views WHERE View_Id = '" + item.Id.ToString() + "'"; if (command.ExecuteNonQuery() > 0) { result = true; } break; } } } catch (Exception ex) { string message = ex.Message; } return(result); }
/// <summary> /// Same as in the windows app, but here we generate a VisInfo that is attached to the view /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnAddView(object sender, ExecutedRoutedEventArgs e) { try { if (Bcfier.SelectedBcf() == null) { return; } var issue = e.Parameter as Markup; if (issue == null) { MessageBox.Show("No Issue selected", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } var dialog = new AddViewRevit(issue, Bcfier.SelectedBcf().TempPath, uiapp.ActiveUIDocument.Document); dialog.WindowStartupLocation = WindowStartupLocation.CenterScreen; dialog.ShowDialog(); if (dialog.DialogResult.HasValue && dialog.DialogResult.Value) { //generate and set the VisInfo issue.Viewpoints.Last().VisInfo = RevitView.GenerateViewpoint(uiapp.ActiveUIDocument); //get filename UIDocument uidoc = uiapp.ActiveUIDocument; if (uidoc.Document.Title != null) { issue.Header[0].Filename = uidoc.Document.Title; } else { issue.Header[0].Filename = "Unknown"; } Bcfier.SelectedBcf().HasBeenSaved = false; } } catch (System.Exception ex1) { TaskDialog.Show("Error adding a View!", "exception: " + ex1); } }
private static void CheckViewLinks(Document doc, Guid projectId, ref RevitSheetData sheetData) { try { FilteredElementCollector collector = new FilteredElementCollector(doc); List <View> viewsInRevit = collector.OfClass(typeof(View)).WhereElementIsNotElementType().ToElements().Cast <View>().ToList(); collector = new FilteredElementCollector(doc); List <Viewport> viewports = collector.OfCategory(BuiltInCategory.OST_Viewports).ToElements().Cast <Viewport>().ToList(); for (int i = 0; i < sheetData.Views.Count; i++) { RevitView rvtView = sheetData.Views[i]; ViewType rvtViewType = (ViewType)Enum.Parse(typeof(ViewType), rvtView.ViewType.ViewType.ToString()); var viewFound = from view in viewsInRevit where view.ViewName == rvtView.Name && view.ViewType == rvtViewType select view; if (viewFound.Count() > 0) { View existingView = viewFound.First(); sheetData.Views[i].LinkStatus.CurrentLinkedId = existingView.UniqueId; sheetData.Views[i].LinkStatus.LinkedElementId = existingView.Id.IntegerValue; sheetData.Views[i].LinkStatus.ToolTip = "Linked View ElementId: " + existingView.Id.IntegerValue; var viewportFound = from viewport in viewports where viewport.SheetId.IntegerValue == rvtView.Sheet.LinkStatus.LinkedElementId && viewport.ViewId == existingView.Id select viewport; if (viewportFound.Count() > 0) { sheetData.Views[i].LinkStatus.IsLinked = true; } } else { sheetData.Views[i].LinkStatus.ToolTip = "The view does not exist."; } } } catch (Exception ex) { MessageBox.Show("Failed to check link status of views.\n" + ex.Message, "Sheet Manager Updater - Check View Links", MessageBoxButton.OK, MessageBoxImage.Warning); } }
public void RemoveViewExecuted(object param) { try { if (null != param) { RevitView selectedView = param as RevitView; int index = rvtSheetData.Views.IndexOf(selectedView); this.RvtSheetData.Views[index].Sheet = new RevitSheet(); bool dbUpdated = SheetDataWriter.UpdateViewOnSheet(Guid.Empty, selectedView.Id); RefreshSelectedSheet(); } } catch (Exception ex) { string message = ex.Message; } }
private void dataGridView_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { try { DataGridRow row = e.Row; if (null != row) { RevitView oldView = row.Item as RevitView; string propertyName = e.Column.Header.ToString(); switch (propertyName) { case "View Name": TextBox textBoxName = e.EditingElement as TextBox; if (null != textBoxName) { bool databaseUpdated = SheetDataWriter.ChangeViewItem(oldView.Id.ToString(), propertyName, textBoxName.Text); } break; case "Sheet Number": ComboBox comboBoxSheet = e.EditingElement as ComboBox; if (null != comboBoxSheet) { RevitSheet selectedSheet = comboBoxSheet.SelectedItem as RevitSheet; if (null != selectedSheet) { bool databaseUpdated = SheetDataWriter.ChangeViewItem(oldView.Id.ToString(), propertyName, selectedSheet.Id.ToString()); } } break; case "View Type": ComboBox comboBoxViewType = e.EditingElement as ComboBox; if (null != comboBoxViewType) { RevitViewType selectedViewType = comboBoxViewType.SelectedItem as RevitViewType; if (null != selectedViewType) { bool databaseUpdated = SheetDataWriter.ChangeViewItem(oldView.Id.ToString(), propertyName, selectedViewType.Id.ToString()); } } break; case "U": TextBox textBoxU = e.EditingElement as TextBox; if (null != textBoxU) { double uValue; if (double.TryParse(textBoxU.Text, out uValue)) { bool databaseUpdated = SheetDataWriter.ChangeViewItem(oldView.Id.ToString(), propertyName, uValue); } } break; case "V": TextBox textBoxV = e.EditingElement as TextBox; if (null != textBoxV) { double vValue; if (double.TryParse(textBoxV.Text, out vValue)) { bool databaseUpdated = SheetDataWriter.ChangeViewItem(oldView.Id.ToString(), propertyName, vValue); } } break; } } } catch (Exception ex) { string message = ex.Message; } }