예제 #1
0
        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);
        }
예제 #2
0
        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());
            }
        }