private void Select_Host(object sender, RoutedEventArgs e) { try { Selection selection = uidoc.Selection; SelectElementsFilter conduitFilter = new SelectElementsFilter(mySource.my_select_host_filter); var element = doc.GetElement(selection.PickObject(ObjectType.Element, conduitFilter, "Please select floor or wall element")); if (element != null) { host.Content = element.Name; host.ToolTip = element.UniqueId; host_of_opening = element; level.SelectedItem = my_level_data.First(x => x.single_value == doc.GetElement(element.LevelId).Name); level.IsEnabled = true; level_data item = (level_data)level.SelectedItem; elevation.Text = Math.Round(item.elevation * myAll_Data.list_unit_value_data[2], mySource.lam_tron).ToString(); Update_UK_MA(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------- private void Select_Element_Update(object sender, RoutedEventArgs e) { try { Selection selection = uidoc.Selection; SelectElementsFilter conduitFilter = new SelectElementsFilter(mySource.my_select_filter); element = doc.GetElement(selection.PickObject(ObjectType.Element, conduitFilter, "Please select opening element")) as FamilyInstance; if (element != null) { host.Content = element.Host.Name; host.ToolTip = element.Host.UniqueId; host_of_opening = element.Host; if (new FilteredElementCollector(doc).OfClass(typeof(FamilySymbol)).Where(x => x.Name == host_of_opening.Name).ToList().Count() > 0) { level.SelectedItem = my_level_data.First(x => x.single_value == element.get_Parameter(BuiltInParameter.INSTANCE_SCHEDULE_ONLY_LEVEL_PARAM).AsValueString()); if (element.get_Parameter(BuiltInParameter.INSTANCE_SCHEDULE_ONLY_LEVEL_PARAM).IsReadOnly == true) { level.IsEnabled = false; } else { level.IsEnabled = true; } } else { level.SelectedItem = my_level_data.First(x => x.single_value == doc.GetElement(element.LevelId).Name); if (element.get_Parameter(BuiltInParameter.FAMILY_LEVEL_PARAM).IsReadOnly == true) { level.IsEnabled = false; } else { level.IsEnabled = true; } } level_data item = (level_data)level.SelectedItem; if (element.Category.Name == "Doors") { elevation.Text = Math.Round((item.elevation + element.get_Parameter(BuiltInParameter.INSTANCE_SILL_HEIGHT_PARAM).AsDouble()) * myAll_Data.list_unit_value_data[2], mySource.lam_tron).ToString(); door.IsChecked = true; } else { elevation.Text = Math.Round((item.elevation + element.get_Parameter(BuiltInParameter.INSTANCE_ELEVATION_PARAM).AsDouble()) * myAll_Data.list_unit_value_data[2], mySource.lam_tron).ToString(); generic_model.IsChecked = true; } Get_Family(); family.SelectedItem = my_family_data.First(x => x.single_value == element.get_Parameter(BuiltInParameter.ELEM_FAMILY_PARAM).AsValueString()); Get_Type(); type.SelectedItem = my_type_data.First(x => x.single_value == element.get_Parameter(BuiltInParameter.ELEM_TYPE_PARAM).AsValueString()); Get_Parameter(element); Update_UK_MA(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }