private void RunCategoryActionItems(Guid docId, UpdaterData data, Element element) { try { ReportingElementInfo reportingInfo = null; var infoFound = from info in reportingElements where info.DocId == docId && info.ReportingUniqueId == element.UniqueId select info; if (infoFound.Count() > 0) { reportingInfo = infoFound.First(); } BuiltInCategory bltCategory = (BuiltInCategory)element.Category.Id.IntegerValue; switch (bltCategory) { case BuiltInCategory.OST_Grids: Grid grid = element as Grid; if (GridUtils.ExtentGeometryChanged(docId, grid.Id, grid.GetExtents())) { if (null != reportingInfo) { ReportFailure(reportingInfo); } } else if (GridUtils.gridParameters.ContainsKey(docId)) { foreach (ElementId paramId in GridUtils.gridParameters[docId]) { if (data.IsChangeTriggered(grid.Id, Element.GetChangeTypeParameter(paramId))) { if (null != reportingInfo) { ReportFailure(reportingInfo); } } } } break; default: if (null != reportingInfo) { ReportFailure(reportingInfo); } break; } } catch (Exception ex) { string message = ex.Message; MessageBox.Show("Failed to run category action items.\n" + ex.Message, "DTM Updater", MessageBoxButton.OK, MessageBoxImage.Warning); } }
private void ReportFailure(ReportingElementInfo eInfo) { try { AppCommand.Instance.IsElementChanged = true; AppCommand.Instance.ReportingInfo = eInfo; } catch (Exception ex) { string message = ex.Message; MessageBox.Show("Failed to report failure.\n" + ex.Message, "DTM Updater", MessageBoxButton.OK, MessageBoxImage.Warning); } }
private void AddElementToStorage(Guid docId, Element element) { try { string categoryName = element.Category.Name; var triggerFound = from trigger in registeredUpdaters[docId].CategoryTriggers where trigger.CategoryName == categoryName select trigger; if (triggerFound.Count() > 0) { CategoryTrigger trigger = triggerFound.First(); ReportingElementInfo eInfo = new ReportingElementInfo(docId, trigger._id, trigger.CategoryName, element.Id, element.UniqueId); reportingElements.Add(eInfo); } } catch (Exception ex) { string message = ex.Message; MessageBox.Show("Failed to add element.\n" + ex.Message, "DTM Updater", MessageBoxButton.OK, MessageBoxImage.Warning); } }
public WarningWindow(ReportingElementInfo info) { reportingInfo = info; descriptionText = reportingInfo.CategoryName + " are locked."; InitializeComponent(); }
internal void RefreshTriggers(Document doc, ProjectUpdater pUpdater) { try { Guid docId = DataStorageUtil.GetProjectFileId(doc); UpdaterRegistry.RemoveDocumentTriggers(updaterId, doc); var elementsToDelete = from eInfo in reportingElements where eInfo.DocId == docId select eInfo; if (elementsToDelete.Count() > 0) { List <ReportingElementInfo> elementsInfo = elementsToDelete.ToList(); foreach (ReportingElementInfo eInfo in elementsInfo) { reportingElements.Remove(eInfo); } } foreach (CategoryTrigger trigger in pUpdater.CategoryTriggers) { if (trigger.IsEnabled) { ElementCategoryFilter catFilter = new ElementCategoryFilter(catDictionary[trigger.CategoryName]); UpdaterRegistry.AddTrigger(updaterId, catFilter, Element.GetChangeTypeAny()); if (trigger.CategoryName == "Grids") { GridUtils.CollectGridExtents(doc, docId); if (GridUtils.gridParameters.ContainsKey(docId)) { foreach (ElementId paramId in GridUtils.gridParameters[docId]) { UpdaterRegistry.AddTrigger(updaterId, catFilter, Element.GetChangeTypeParameter(paramId)); } } FilteredElementCollector collector = new FilteredElementCollector(doc); List <Element> elements = collector.WherePasses(catFilter).WhereElementIsNotElementType().ToElements().ToList(); foreach (Element element in elements) { ReportingElementInfo reportingInfo = new ReportingElementInfo(docId, trigger._id, trigger.CategoryName, element.Id, element.UniqueId); reportingElements.Add(reportingInfo); } } else if (trigger.CategoryName == "Views") { FilteredElementCollector collector = new FilteredElementCollector(doc); List <View> views = collector.WherePasses(catFilter).WhereElementIsNotElementType().ToElements().Cast <View>().ToList(); var viewTemplates = from view in views where view.IsTemplate select view; if (viewTemplates.Count() > 0) { foreach (Element view in viewTemplates) { ReportingElementInfo reportingInfo = new ReportingElementInfo(docId, trigger._id, trigger.CategoryName, view.Id, view.UniqueId); reportingElements.Add(reportingInfo); } } } else { FilteredElementCollector collector = new FilteredElementCollector(doc); List <Element> elements = collector.WherePasses(catFilter).WhereElementIsNotElementType().ToElements().ToList(); foreach (Element element in elements) { ReportingElementInfo reportingInfo = new ReportingElementInfo(docId, trigger._id, trigger.CategoryName, element.Id, element.UniqueId); reportingElements.Add(reportingInfo); } } } } if (registeredUpdaters.ContainsKey(docId)) { registeredUpdaters.Remove(docId); } registeredUpdaters.Add(docId, pUpdater); } catch (Exception ex) { string message = ex.Message; MessageBox.Show("Failed to refresh triggers\n" + ex.Message, "DTM Updater", MessageBoxButton.OK, MessageBoxImage.Warning); } }