//---------------------------------------------------------- public string Duplicate_Type(UIApplication uiapp, Document doc) { string result = "F"; try { type_data item_type = (type_data)type.SelectedItem; ElementType new_type = item_type.type.Duplicate(b.Text + "x" + h.Text); new_type.get_Parameter(BuiltInParameter.FAMILY_WIDTH_PARAM).Set(Convert.ToDouble(b.Text) / myAll_Data.list_unit_value_data[2]); new_type.get_Parameter(BuiltInParameter.FAMILY_HEIGHT_PARAM).Set(Convert.ToDouble(h.Text) / myAll_Data.list_unit_value_data[2]); my_type_data.Add(new type_data() { type = new_type, single_value = new_type.Name }); type.Items.Refresh(); type.SelectedItem = my_type_data.First(x => x.single_value == new_type.Name); Update_UK_MA(); result = "S"; } catch (Exception ex) { MessageBox.Show(ex.Message); } return(result); }
public void Get_Element() { try { family_data item_family = (family_data)family.SelectedItem; type_data item_type = (type_data)type.SelectedItem; ElementMulticategoryFilter filter_category = new ElementMulticategoryFilter(mySource.my_BuiltInCategory); element = new FilteredElementCollector(doc) .WherePasses(filter_category) .WhereElementIsNotElementType() .First(x => x.Name == item_type.single_value && x.get_Parameter(BuiltInParameter.ELEM_FAMILY_PARAM).AsValueString() == item_family.single_value) as FamilyInstance; } catch (Exception ex) { //MessageBox.Show(ex.Message); } }
//---------------------------------------------------------- public void Update_UK_MA() { try { level_data item_level = (level_data)level.SelectedItem; type_data item_type = (type_data)type.SelectedItem; if (door.IsChecked == true) { my_parameter_data.Where(x => x.parameter_name == mySource.para_name[2] || x.parameter_name == mySource.para_name[4]) .ToList().ForEach(x => x.parameter_value = (Convert.ToDouble(elevation.Text) + (item_type.type.get_Parameter(BuiltInParameter.FAMILY_HEIGHT_PARAM).AsDouble()) * myAll_Data.list_unit_value_data[2]).ToString()); } else { my_parameter_data.Where(x => x.parameter_name == mySource.para_name[2] || x.parameter_name == mySource.para_name[3]) .ToList().ForEach(x => x.parameter_value = elevation.Text); } thong_tin_parameter.Items.Refresh(); } catch (Exception ex) { } }
//---------------------------------------------------------- public string Draw_By_Revit(UIApplication uiapp, Document doc) { string result = "F"; try { if (data_point.Count() > 0) { level_data item_level = (level_data)level.SelectedItem; family_data item_family = (family_data)family.SelectedItem; type_data item_type = (type_data)type.SelectedItem; XYZ center = new XYZ(); if (data_point[0].Count() == 2) { center = (data_point[0][0] + data_point[0][1]) / 2; } else { center = data_point[0][0]; } FamilySymbol familySymbol = item_type.type as FamilySymbol; Level level_opening = item_level.level; if (familySymbol.IsActive == false) { familySymbol.Activate(); } var instance = doc.Create.NewFamilyInstance(center, familySymbol, host_of_opening, level_opening, Autodesk.Revit.DB.Structure.StructuralType.NonStructural); double elevation_value = Convert.ToDouble(elevation.Text) / myAll_Data.list_unit_value_data[2] - item_level.elevation; if (new FilteredElementCollector(doc).OfClass(typeof(FamilySymbol)).Where(x => x.Name == host_of_opening.Name).ToList().Count() == 0 && host_of_opening.Category.Name != "Walls") { } else { if (door.IsChecked == true) { instance.get_Parameter(BuiltInParameter.INSTANCE_SILL_HEIGHT_PARAM).Set(elevation_value); if (instance.LookupParameter(mySource.para_name[0]) != null) { instance.LookupParameter(mySource.para_name[0]).Set(Convert.ToDouble(elevation.Text) / myAll_Data.list_unit_value_data[2]); } if (instance.LookupParameter(mySource.para_name[1]) != null) { instance.LookupParameter(mySource.para_name[1]).Set(0); } } else { if (host_of_opening.Category.Name != "Walls") { instance.get_Parameter(BuiltInParameter.INSTANCE_SCHEDULE_ONLY_LEVEL_PARAM).Set(item_level.level.Id); } instance.get_Parameter(BuiltInParameter.INSTANCE_ELEVATION_PARAM).Set(elevation_value); } } foreach (parameter_data data in my_parameter_data) { if (instance.LookupParameter(data.parameter_name).IsReadOnly == false) { if (data.parameter_value == "True") { instance.LookupParameter(data.parameter_name).Set(1); } else if (data.parameter_value == "False") { instance.LookupParameter(data.parameter_name).Set(0); } else { instance.LookupParameter(data.parameter_name).Set(Convert.ToDouble(data.parameter_value) / myAll_Data.list_unit_value_data[2]); } } } } result = "S"; } catch (Exception ex) { MessageBox.Show(ex.Message); } return(result); }
//---------------------------------------------------------- public string Update_By_Revit(UIApplication uiapp, Document doc) { string result = "F"; try { level_data item_level = (level_data)level.SelectedItem; family_data item_family = (family_data)family.SelectedItem; type_data item_type = (type_data)type.SelectedItem; FamilySymbol familySymbol = item_type.type as FamilySymbol; if (familySymbol.IsActive == false) { familySymbol.Activate(); } if (element.Symbol != familySymbol) { element.Symbol = familySymbol; } double elevation_value = Convert.ToDouble(elevation.Text) / myAll_Data.list_unit_value_data[2] - item_level.elevation; if (new FilteredElementCollector(doc).OfClass(typeof(FamilySymbol)).Where(x => x.Name == host_of_opening.Name).ToList().Count() == 0 && host_of_opening.Category.Name != "Walls") { } else { if (element.Category.Name == "Doors") { element.get_Parameter(BuiltInParameter.INSTANCE_SILL_HEIGHT_PARAM).Set(elevation_value); if (element.LookupParameter(mySource.para_name[0]) != null) { element.LookupParameter(mySource.para_name[0]).Set(Convert.ToDouble(elevation.Text) / myAll_Data.list_unit_value_data[2]); } if (element.LookupParameter(mySource.para_name[1]) != null) { element.LookupParameter(mySource.para_name[1]).Set(0); } } else { if (host_of_opening.Category.Name != "Walls") { element.get_Parameter(BuiltInParameter.INSTANCE_SCHEDULE_ONLY_LEVEL_PARAM).Set(item_level.level.Id); } element.get_Parameter(BuiltInParameter.INSTANCE_ELEVATION_PARAM).Set(elevation_value); } } foreach (parameter_data data in my_parameter_data) { if (data.parameter_value == "True") { element.LookupParameter(data.parameter_name).Set(1); } else if (data.parameter_value == "False") { element.LookupParameter(data.parameter_name).Set(0); } else { element.LookupParameter(data.parameter_name).Set(Convert.ToDouble(data.parameter_value) / myAll_Data.list_unit_value_data[2]); } } if (data_point.Count() > 0) { XYZ center = new XYZ(); if (data_point[0].Count() == 2) { center = (data_point[0][0] + data_point[0][1]) / 2; } else { center = data_point[0][0]; } LocationPoint location = element.Location as LocationPoint; XYZ location_point = location.Point; XYZ move_point = new XYZ(center.X - location_point.X, center.Y - location_point.Y, 0); ElementTransformUtils.MoveElement(doc, element.Id, move_point); } result = "S"; } catch (Exception ex) { MessageBox.Show(ex.Message); } return(result); }