private void thickComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            int selectedIndex = ((System.Windows.Controls.ComboBox)sender).SelectedIndex;

            Autodesk.Revit.DB.Category selectedStyle = _lineStyles[selectedIndex];
            thickCat = selectedStyle;
        }
Пример #2
0
 public bool IsCommandAvailable(UIApplication applicationData,
                                Autodesk.Revit.DB.CategorySet selectedCategories)
 {
     System.Collections.IEnumerator iterCategory = selectedCategories.GetEnumerator();
     iterCategory.Reset();
     while (iterCategory.MoveNext())
     {
         Autodesk.Revit.DB.Category category = (Autodesk.Revit.DB.Category)(iterCategory.Current);
         if (category.Name == "Walls")
         {
             return(false);
         }
     }
     return(true);
 }
Пример #3
0
        private void SettingsButton_Click(object sender, RoutedEventArgs e)
        {
            // Collect the categories
            Autodesk.Revit.DB.Category        lineCat    = _doc.Settings.Categories.get_Item(Autodesk.Revit.DB.BuiltInCategory.OST_Lines);
            Autodesk.Revit.DB.CategoryNameMap subCats    = lineCat.SubCategories;
            List <Autodesk.Revit.DB.Category> lineStyles = new List <Autodesk.Revit.DB.Category>();

            foreach (Autodesk.Revit.DB.Category style in subCats)
            {
                lineStyles.Add(style);
            }

            // Sort the linestyles
            lineStyles.Sort((x, y) => x.Name.CompareTo(y.Name));

            SettingsForm form = new SettingsForm(lineStyles, _doc);

            form.ShowDialog();
        }
        public SettingsForm(List <Autodesk.Revit.DB.Category> lineStyles, Autodesk.Revit.DB.Document doc)
        {
            _lineStyles = lineStyles;
            _doc        = doc;
            InitializeComponent();

            // Get current elementIds
            int  hairlineInt      = Properties.Settings.Default.hairlineInt;
            int  thinInt          = Properties.Settings.Default.thinInt;
            int  mediumInt        = Properties.Settings.Default.mediumInt;
            int  thickInt         = Properties.Settings.Default.thickInt;
            bool reloadValuesOnly = Properties.Settings.Default.reloadValuesOnly;

            // Set the checkbox
            contentOnlyCheckBox.IsEnabled  = false;
            contentOnlyCheckBox.Visibility = Visibility.Hidden;
            //contentOnlyCheckBox.IsChecked = reloadValuesOnly;

            // Hairline combobox
            hairLineComboBox.ItemsSource       = _lineStyles;
            hairLineComboBox.DisplayMemberPath = "Name";
            try
            {
                if (hairlineInt != -1)
                {
                    Autodesk.Revit.DB.Element hairlineElem = _doc.GetElement(new Autodesk.Revit.DB.ElementId(hairlineInt));

                    for (int i = 0; i < lineStyles.Count; i++)
                    {
                        Autodesk.Revit.DB.Category cat = lineStyles[i];
                        if (cat.Name.Trim() == hairlineElem.Name.Trim())
                        {
                            hairLineComboBox.SelectedIndex = i;
                            break;
                        }
                    }
                }
                else
                {
                    hairLineComboBox.SelectedIndex = 0;
                }
            }
            catch
            {
                hairLineComboBox.SelectedIndex = 0;
            }

            // Thin Combobox
            thinComboBox.ItemsSource       = _lineStyles;
            thinComboBox.DisplayMemberPath = "Name";
            try
            {
                if (thinInt != -1)
                {
                    Autodesk.Revit.DB.Element thinElem = _doc.GetElement(new Autodesk.Revit.DB.ElementId(thinInt));
                    for (int i = 0; i < lineStyles.Count; i++)
                    {
                        Autodesk.Revit.DB.Category cat = lineStyles[i];
                        if (cat.Name.Trim() == thinElem.Name.Trim())
                        {
                            thinComboBox.SelectedIndex = i;
                            break;
                        }
                        else
                        {
                            thinComboBox.SelectedIndex = 0;
                        }
                    }
                }
                else
                {
                    thinComboBox.SelectedIndex = 0;
                }
            }
            catch
            {
                thinComboBox.SelectedIndex = 0;
            }

            mediumComboBox.ItemsSource       = _lineStyles;
            mediumComboBox.DisplayMemberPath = "Name";
            try
            {
                if (mediumInt != -1)
                {
                    Autodesk.Revit.DB.Element mediumElem = _doc.GetElement(new Autodesk.Revit.DB.ElementId(mediumInt));
                    for (int i = 0; i < lineStyles.Count; i++)
                    {
                        Autodesk.Revit.DB.Category cat = lineStyles[i];
                        if (cat.Name.Trim() == mediumElem.Name.Trim())
                        {
                            mediumComboBox.SelectedIndex = i;
                            break;
                        }
                        else
                        {
                            mediumComboBox.SelectedIndex = 0;
                        }
                    }
                }
                else
                {
                    mediumComboBox.SelectedIndex = 0;
                }
            }
            catch
            {
                mediumComboBox.SelectedIndex = 0;
            }

            thickComboBox.ItemsSource       = _lineStyles;
            thickComboBox.DisplayMemberPath = "Name";
            try
            {
                if (thickInt != -1)
                {
                    Autodesk.Revit.DB.Element thickElem = _doc.GetElement(new Autodesk.Revit.DB.ElementId(thickInt));
                    //Autodesk.Revit.UI.TaskDialog.Show("Test", "Thick ElementName: " + thickElem.Name);
                    for (int i = 0; i < lineStyles.Count; i++)
                    {
                        Autodesk.Revit.DB.Category cat = lineStyles[i];
                        if (cat.Name.Trim() == thickElem.Name.Trim())
                        {
                            thickComboBox.SelectedIndex = i;
                            break;
                        }
                        else
                        {
                            thickComboBox.SelectedIndex = 0;
                        }
                    }
                }
                else
                {
                    thickComboBox.SelectedIndex = 0;
                }
            }
            catch
            {
                thickComboBox.SelectedIndex = 0;
            }
        }