static public void MyTest(Document doc) { string familyName = "Single-Flush"; // get the family we want FilteredElementCollector fec = new FilteredElementCollector(doc); fec.OfClass(typeof(Family)); Func <Element, bool> nameEquals = e => e.Name.Equals(familyName); Family f = fec.First <Element>(nameEquals) as Family; // get the symbols of that family FamilySymbolFilter fsf = new FamilySymbolFilter(f.Id); fec = new FilteredElementCollector(doc); fec.WherePasses(fsf); // list them Func <Element, string> getName = e => e.Name; string str = string.Join("\n", fec.Select <Element, string>(getName).ToArray <string>()); System.Windows.Forms.MessageBox.Show(str.ToString(), "FamilySymbols of " + familyName); }
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { var uiApp = commandData.Application; var uiDoc = uiApp.ActiveUIDocument; var app = uiApp.Application; var doc = uiDoc.Document; // Start code here // Lay nhung doi tuong dang chon try { var refObject = uiDoc.Selection.PickObject(ObjectType.Element); if (refObject != null) { var elementId = refObject.ElementId; var element = doc.GetElement(elementId); var elementTypeId = element.GetTypeId(); var elementType = element.GetType(); var revitElementType = doc.GetElement(elementTypeId) as ElementType; //var revitType = revitElementType.GetType(); var familyTypeId = revitElementType.GetTypeId(); var categoryName = element.Category.Name; if (revitElementType is FamilySymbol) { var familyInstanceFilter = new FamilyInstanceFilter(doc, elementTypeId); var collector = new FilteredElementCollector(doc); var elementFilter = new FamilySymbolFilter(familyTypeId); var collections = collector.WherePasses(familyInstanceFilter).ToElements(); TaskDialog.Show("Count Similar Object", collections.Count().ToString()); return(Result.Succeeded); } TaskDialog.Show("Warning", "Your selected object can not be count!"); return(Result.Failed); } } catch (Exception e) { message = e.Message; return(Result.Failed); } return(Result.Succeeded); }
public static FamilySymbol GetSpecialSymbol(Autodesk.Revit.DB.Document doc, int fiType) { //找family FilteredElementCollector families = new FilteredElementCollector(doc); IList <Element> fams = null; //3D Module if (fiType == 1) { fams = families.OfClass(typeof(Family)). Where(x => (x.Name == "DoNotDeleteWarning")).ToList(); } //2D Module if (fiType == 2) { fams = families.OfClass(typeof(Family)). Where(x => (x.Name == "DoNotDeleteWarning2")).ToList(); } //tempFi if (fiType == 4) { fams = families.OfClass(typeof(Family)). Where(x => (x.Name == "TempFi")).ToList(); } if (fams.Count() != 0) { //找familySymbol FamilySymbolFilter filter = new FamilySymbolFilter(fams.First().Id); FilteredElementCollector famSymbols = new FilteredElementCollector(doc); var famSyms = famSymbols.WherePasses(filter).ToElements(); if (famSyms.Count != 0) { FamilySymbol fs = famSyms.First() as FamilySymbol; return(fs); } else { return(null); } } else { return(null); } }
/// <summary> /// The my test. /// </summary> /// <param name="doc"> /// The doc. /// </param> public static void MyTest(Document doc) { string familyName = "Single-Flush"; // get the family we want FilteredElementCollector fec = new FilteredElementCollector(doc); fec.OfClass(typeof(Family)); Family f = fec.First <Element>(e => e.Name.Equals(familyName)) as Family; // get the symbols of that family FamilySymbolFilter fsf = new FamilySymbolFilter(f.Id); fec = new FilteredElementCollector(doc); fec.WherePasses(fsf); string str = string.Join("\n", fec.Select <Element, string>(e => e.Name).ToArray <string>()); MessageBox.Show(str.ToString(), @"FamilySymbols of " + familyName); }
public static void MyTest( Document doc ) { string familyName = "Single-Flush"; // get the family we want FilteredElementCollector fec = new FilteredElementCollector( doc ); fec.OfClass( typeof( Family ) ); Func<Element, bool> nameEquals = e => e.Name.Equals( familyName ); Family f = fec.First<Element>( nameEquals ) as Family; // get the symbols of that family FamilySymbolFilter fsf = new FamilySymbolFilter( f.Id ); fec = new FilteredElementCollector( doc ); fec.WherePasses( fsf ); // list them Func<Element, string> getName = e => e.Name; string str = string.Join( "\n", fec.Select<Element, string>( getName ).ToArray<string>() ); System.Windows.Forms.MessageBox.Show( str.ToString(), "FamilySymbols of " + familyName ); }