/// <summary> /// Initialize the data member, obtain the Space and Zone elements. /// </summary> private void Initialize() { Dictionary <int, List <Space> > spaceDictionary = new Dictionary <int, List <Space> >(); Dictionary <int, List <Zone> > zoneDictionary = new Dictionary <int, List <Zone> >(); Document activeDoc = m_commandData.Application.ActiveUIDocument.Document; FilteredElementIterator levelsIterator = (new FilteredElementCollector(activeDoc)).OfClass(typeof(Level)).GetElementIterator(); FilteredElementIterator spacesIterator = (new FilteredElementCollector(activeDoc)).WherePasses(new SpaceFilter()).GetElementIterator(); FilteredElementIterator zonesIterator = (new FilteredElementCollector(activeDoc)).OfClass(typeof(Zone)).GetElementIterator(); levelsIterator.Reset(); while (levelsIterator.MoveNext()) { Level level = levelsIterator.Current as Level; if (level != null) { m_levels.Add(level); spaceDictionary.Add(level.Id.IntegerValue, new List <Space>()); zoneDictionary.Add(level.Id.IntegerValue, new List <Zone>()); } } spacesIterator.Reset(); while (spacesIterator.MoveNext()) { Space space = spacesIterator.Current as Space; if (space != null) { spaceDictionary[space.LevelId.IntegerValue].Add(space); } } zonesIterator.Reset(); while (zonesIterator.MoveNext()) { Zone zone = zonesIterator.Current as Zone; if (zone != null && activeDoc.GetElement(zone.LevelId) != null) { zoneDictionary[zone.LevelId.IntegerValue].Add(zone); } } m_spaceManager = new SpaceManager(m_commandData, spaceDictionary); m_zoneManager = new ZoneManager(m_commandData, zoneDictionary); }
/// <summary> /// Initialize the data member, obtain the Space and Zone elements. /// </summary> private void Initialize() { Dictionary<int, List<Space>> spaceDictionary = new Dictionary<int, List<Space>>(); Dictionary<int, List<Zone>> zoneDictionary = new Dictionary<int, List<Zone>>(); Document activeDoc = m_commandData.Application.ActiveUIDocument.Document; FilteredElementIterator levelsIterator = (new FilteredElementCollector(activeDoc)).OfClass(typeof(Level)).GetElementIterator(); FilteredElementIterator spacesIterator =(new FilteredElementCollector(activeDoc)).WherePasses(new SpaceFilter()).GetElementIterator(); FilteredElementIterator zonesIterator = (new FilteredElementCollector(activeDoc)).OfClass(typeof(Zone)).GetElementIterator(); levelsIterator.Reset(); while (levelsIterator.MoveNext()) { Level level = levelsIterator.Current as Level; if (level != null) { m_levels.Add(level); spaceDictionary.Add(level.Id.IntegerValue, new List<Space>()); zoneDictionary.Add(level.Id.IntegerValue, new List<Zone>()); } } spacesIterator.Reset(); while (spacesIterator.MoveNext()) { Space space = spacesIterator.Current as Space; if (space != null) { spaceDictionary[space.Level.Id.IntegerValue].Add(space); } } zonesIterator.Reset(); while (zonesIterator.MoveNext()) { Zone zone = zonesIterator.Current as Zone; if (zone != null && zone.Level != null) { zoneDictionary[zone.Level.Id.IntegerValue].Add(zone); } } m_spaceManager = new SpaceManager(m_commandData, spaceDictionary); m_zoneManager = new ZoneManager(m_commandData, zoneDictionary); }