private void addItemsToCheckList(PressureLossReportHelper helper, ICollection<Autodesk.Revit.DB.Element> founds) { //get the selected systems first ElementSet selSystems = new ElementSet(); helper.getSelectedSystems(selSystems); List<string> checkedItems = new List<string>(); foreach (Element elem in selSystems) { MEPSystem mepSys = elem as MEPSystem; if (mepSys == null) continue; checkedItems.Add(mepSys.Name); } List<MEPSystemType> selSystemTypes = helper.getSelectedSystemTypes(true); if ((selSystemTypes == null || selSystemTypes.Count < 1) && (checkedItems == null || checkedItems.Count < 1)) { bool bCheckAll = true; if (helper.isSelectInValidSystemType()) bCheckAll = false; addItemsToCheckList(helper, founds, null, bCheckAll); } else { foreach (Autodesk.Revit.DB.Element elem in founds) { Autodesk.Revit.DB.MEPSystem mepSysElem = elem as Autodesk.Revit.DB.MEPSystem; Autodesk.Revit.DB.MEPSystemType mepSysType = helper.getSystemType(helper.Doc, mepSysElem); if (isCheckedSystemType(mepSysType) && helper.isValidSystem(helper.Doc, mepSysElem, helper.Domain) && isCalculationOn(helper.Doc, mepSysElem)) { if (selSystemTypes != null && PressureLossReportHelper.isSystemTypeInList(selSystemTypes, mepSysType)) checkedItems.Add(mepSysElem.Name); } } addItemsToCheckList(helper, founds, checkedItems); } }
private static void invokeCommand(Document doc, PressureLossReportHelper helper, bool bForAllSystems) { //upgrade the formats ReportFormatUpgrades.Instance.executeUpgrades(); //post warning if some systems' calculation is not ALL ElementSet selSystems = new ElementSet(); if (!bForAllSystems && helper.getSelectedSystems(selSystems)) { WholeReportSettingsDlg settingsDlg = new WholeReportSettingsDlg(); settingsDlg.ShowDialog(); } else //post system filter { ReportSystemSelectorDlg rssDlg = new ReportSystemSelectorDlg(); if (rssDlg.ShowDialog() == DialogResult.OK) { UserPressureLossReportApplication.beginCommand(PressureLossReportHelper.instance.Doc, rssDlg.CheckedElements); } } }
private void addItemsToCheckList(PressureLossReportHelper helper, ICollection<Autodesk.Revit.DB.Element> founds, List<string> checkedItems, bool bCheckAll = false) { SortedDictionary<string, bool> systemList = new SortedDictionary<string, bool>(); foreach (Autodesk.Revit.DB.Element elem in founds) { Autodesk.Revit.DB.MEPSystem mepSysElem = elem as Autodesk.Revit.DB.MEPSystem; Autodesk.Revit.DB.MEPSystemType mepSysType = helper.getSystemType(helper.Doc, mepSysElem); if (isCheckedSystemType(mepSysType) && helper.isValidSystem(helper.Doc, mepSysElem, helper.Domain) && isCalculationOn(helper.Doc, mepSysElem)) { if (bCheckAll || (checkedItems != null && checkedItems.Contains(mepSysElem.Name))) systemList.Add(mepSysElem.Name, true); else systemList.Add(mepSysElem.Name, false); allElementItems.Add(mepSysElem); } } bool bDisabled = true; foreach (KeyValuePair<string, bool> kvp in systemList) { SystemCheckList.Items.Add(kvp.Key, kvp.Value); if (bDisabled && kvp.Value == true) bDisabled = false; } btnOK.Enabled = !bDisabled; SortSystemByNameCamparer systemCompare = new SortSystemByNameCamparer(); allElementItems.Sort(systemCompare); }