Пример #1
0
        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);
            }
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
        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;
            }
        }
Пример #4
0
        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);
        }
Пример #5
0
        /// <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);
            }
        }
Пример #6
0
        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);
            }
        }
Пример #7
0
        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;
            }
        }
Пример #8
0
        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;
            }
        }