public static MEPId GetId(MEPComponents mepComponent) { MEPId mepId = new MEPId(); List <int[]> index = _map[(byte)mepComponent]; if (index.Count == 0) { throw new Exception("No such MEP Comp is found"); } foreach (int[] bundle in index) { mepId.builtInCategories.Add(_listNode[bundle[0]].cate); mepId.elementTypes.Add(_listNode[bundle[0]].types[bundle[1]]); } return(mepId); }
protected virtual void ExtractObjects(MEPComponents mepComp) { MEPId mepId = null; int num = 0; try { mepId = MEPHelper.GetId(mepComp); num = mepId.builtInCategories.Count; } catch { } for (int i = 0; i < num; ++i) { BuiltInCategory bic = mepId.builtInCategories[i]; ElementType et = mepId.elementTypes[i]; FilteredElementCollector coll = new FilteredElementCollector(_doc); FamilyInstanceFilter fif = new FamilyInstanceFilter(_doc, et.Id); _equips.AddRange(coll.OfCategory(bic).WherePasses(fif).Cast <FamilyInstance>().ToList()); } }