/// <summary> /// Поиск квартир в чертеже. /// </summary> public static List <RevitBlock> GetChilds(ObjectId idBtr, string patternBlockNameMatch) { List <RevitBlock> places = new List <RevitBlock>(); using (var btrParent = idBtr.Open(OpenMode.ForRead) as BlockTableRecord) { foreach (ObjectId idEnt in btrParent) { using (var blRefChild = idEnt.Open(OpenMode.ForRead, false, true) as BlockReference) { if (blRefChild != null) { string blName = blRefChild.GetEffectiveName(); if (IsRevitBlockName(blName, patternBlockNameMatch)) { try { var place = new RevitBlock(blRefChild, blName); places.Add(place); } catch (System.Exception ex) { Inspector.AddError($"Ошибка считывания блока квартиры {blName} - {ex.Message}.", blRefChild, icon: SystemIcons.Error); } } else { Inspector.AddError($"Отфильтрован блок квартиры '{blName}', имя не соответствует " + $"'{Options.Instance.BlockApartmentNameMatch}", blRefChild, icon: SystemIcons.Information); } } } } } return(places); }
/// <summary> /// Поиск квартир в чертеже. /// </summary> public static List<RevitBlock> GetChilds(ObjectId idBtr, string patternBlockNameMatch) { List<RevitBlock> places = new List<RevitBlock>(); using (var btrParent = idBtr.Open(OpenMode.ForRead) as BlockTableRecord) { foreach (ObjectId idEnt in btrParent) { using (var blRefChild = idEnt.Open(OpenMode.ForRead, false, true) as BlockReference) { if (blRefChild != null) { string blName = blRefChild.GetEffectiveName(); if (IsRevitBlockName(blName, patternBlockNameMatch)) { try { var place = new RevitBlock(blRefChild, blName); places.Add(place); } catch (System.Exception ex) { Inspector.AddError($"Ошибка считывания блока квартиры {blName} - {ex.Message}.", blRefChild, icon: SystemIcons.Error); } } else { Inspector.AddError($"Отфильтрован блок квартиры '{blName}', имя не соответствует " + $"'{Options.Instance.BlockApartmentNameMatch}", blRefChild, icon: SystemIcons.Information); } } } } } return places; }