/// <summary> /// This method is the event handler, which will dump the change information to tracking dialog /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void CtrlApp_DocumentChanged(object sender, Autodesk.Revit.DB.Events.DocumentChangedEventArgs e) { // get the current document. Document doc = e.GetDocument(); // dump the element information ICollection <ElementId> addedElem = e.GetAddedElementIds(); foreach (ElementId id in addedElem) { AddChangeInfoRow(id, doc, "Added"); } ICollection <ElementId> deletedElem = e.GetDeletedElementIds(); foreach (ElementId id in deletedElem) { AddChangeInfoRow(id, doc, "Deleted"); } ICollection <ElementId> modifiedElem = e.GetModifiedElementIds(); foreach (ElementId id in modifiedElem) { AddChangeInfoRow(id, doc, "Modified"); } }
/// <summary> /// This method is the event handler, which will dump the change information to tracking dialog /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void CtrlApp_DocumentChanged(object sender, Autodesk.Revit.DB.Events.DocumentChangedEventArgs e) { // get the current document. Document doc = e.GetDocument(); List <int> IDs = new List <int>(); // dump the element information ICollection <Autodesk.Revit.DB.ElementId> addedElem = e.GetAddedElementIds(); foreach (ElementId id in addedElem) { OpenCOVERPlugin.COVER.Instance.SendElement(doc.GetElement(id)); } ICollection <Autodesk.Revit.DB.ElementId> deletedElem = e.GetDeletedElementIds(); foreach (ElementId id in deletedElem) { OpenCOVERPlugin.COVER.Instance.deleteElement(id); } ICollection <ElementId> modifiedElem = e.GetModifiedElementIds(); foreach (ElementId id in modifiedElem) { OpenCOVERPlugin.COVER.Instance.deleteElement(id); OpenCOVERPlugin.COVER.Instance.SendElement(doc.GetElement(id)); } }
public override bool NeedsToBeExpired(Autodesk.Revit.DB.Events.DocumentChangedEventArgs e) { var document = e.GetDocument(); var added = e.GetAddedElementIds().Where(x => x.IsCategoryId(document)); if (added.Any()) { return(true); } var modified = e.GetModifiedElementIds().Where(x => x.IsCategoryId(document)); if (modified.Any()) { return(true); } var deleted = e.GetDeletedElementIds(); if (deleted.Any()) { var empty = new ElementId[0]; var deletedSet = new HashSet <ElementId>(deleted); foreach (var param in Params.Output.OfType <Parameters.IGH_ElementIdParam>()) { if (param.NeedsToBeExpired(document, empty, deletedSet, empty)) { return(true); } } } return(false); }
bool IGH_PersistentElementComponent.NeedsToBeExpired(Autodesk.Revit.DB.Events.DocumentChangedEventArgs e) { var filter = new Autodesk.Revit.DB.ElementClassFilter(typeof(Level)); var added = e.GetAddedElementIds(filter); if (added.Count > 0) { return(true); } var deleted = e.GetDeletedElementIds(); if (deleted.Count > 0) { var document = e.GetDocument(); var empty = new ElementId[0]; foreach (var param in Params.Output.OfType <Parameters.IGH_PersistentElementParam>()) { if (param.NeedsToBeExpired(document, empty, deleted, empty)) { return(true); } } } return(false); }
private void ControlledApplication_DocumentChanged(object sender, Autodesk.Revit.DB.Events.DocumentChangedEventArgs e) { Autodesk.Revit.DB.Document doc = e.GetDocument(); var app = doc.Application; string journalPath = app.RecordingJournalFilename; string user = app.Username; using (StreamWriter sw = new StreamWriter(Utills.journal)) { sw.WriteLine(journalPath); sw.Close(); } using (StreamWriter sw = new StreamWriter(Utills.userPath)) { sw.WriteLine(user); sw.Close(); } string versionBuild = app.VersionBuild; DateTime d = DateTime.Now; List <string> transactions = e.GetTransactionNames().ToList(); var modified = e.GetModifiedElementIds(); List <Element> modifiedElements = new List <Element>(); if (modified?.Count() > 0) { modifiedElements.AddRange(modified.Select(x => doc.GetElement(x))?.ToList()); } var added = e.GetAddedElementIds(); List <Element> addedElements = new List <Element>(); if (added?.Count() > 0) { addedElements.AddRange(added.Select(x => doc.GetElement(x))?.ToList()); } List <ElementId> DeletedIds = new List <ElementId>(); var deleted = updater.Deleteds; if (deleted?.Count() > 0) { DeletedIds.AddRange(deleted); } Utills.GetDataFromEvents(addedElements, modifiedElements, DeletedIds, transactions, user, out DataTable addtbl, out DataTable edittbl, out DataTable deletedtbl, out DataTable transtbl); addtbl.ToTXT(Utills.addPath); edittbl.ToTXT(Utills.editPath); deletedtbl.ToTXT(Utills.deletedPath); transtbl.ToTXT(Utills.transPath); }
public override bool NeedsToBeExpired(DB.Events.DocumentChangedEventArgs e) { var elementFilter = ElementFilter; var _Filter_ = Params.IndexOfInputParam("Filter"); var filters = _Filter_ < 0 ? Enumerable.Empty <DB.ElementFilter>() : Params.Input[_Filter_].VolatileData.AllData(true).OfType <Types.ElementFilter>().Select(x => new DB.LogicalAndFilter(x.Value, elementFilter)); foreach (var filter in filters.Any() ? filters : Enumerable.Repeat(elementFilter, 1)) { var added = filter is null?e.GetAddedElementIds() : e.GetAddedElementIds(filter); if (added.Count > 0) { return(true); } var modified = filter is null?e.GetModifiedElementIds() : e.GetModifiedElementIds(filter); if (modified.Count > 0) { return(true); } var deleted = e.GetDeletedElementIds(); if (deleted.Count > 0) { var document = e.GetDocument(); var empty = new DB.ElementId[0]; foreach (var param in Params.Output.OfType <Kernel.IGH_ElementIdParam>()) { if (param.NeedsToBeExpired(document, empty, deleted, empty)) { return(true); } } } } return(false); }
private static void ControlledApplication_DocumentChanged(object sender, Autodesk.Revit.DB.Events.DocumentChangedEventArgs e) { var document = e.GetDocument(); var documentTitle = document.Title; var transactionNames = e.GetTransactionNames(); if (document.IsWorkshared) { var path = ModelPathUtils.ConvertModelPathToUserVisiblePath(document.GetWorksharingCentralModelPath()); documentTitle = Path.GetFileNameWithoutExtension(path); } var addedIds = e.GetAddedElementIds().Select(x => x.IntegerValue); var modifiedIds = e.GetModifiedElementIds().Select(x => x.IntegerValue); var deletedIds = e.GetDeletedElementIds().Select(x => x.IntegerValue); controller.DocumentChangedEvent.DocumentChanged(transactionNames, documentTitle, addedIds, modifiedIds, deletedIds); }
/// <summary> /// This method is the event handler, which will dump the change information to tracking dialog /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void CtrlApp_DocumentChanged(object sender, Autodesk.Revit.DB.Events.DocumentChangedEventArgs e) { if (OpenCOVERPlugin.COVER.Instance.isConnected()) { // get the current document. Document doc = e.GetDocument(); List <int> IDs = new List <int>(); // dump the element information ICollection <Autodesk.Revit.DB.ElementId> addedElem = e.GetAddedElementIds(); foreach (ElementId id in addedElem) { OpenCOVERPlugin.COVER.Instance.SendElement(doc.GetElement(id)); } ICollection <Autodesk.Revit.DB.ElementId> deletedElem = e.GetDeletedElementIds(); foreach (ElementId id in deletedElem) { OpenCOVERPlugin.COVER.Instance.deleteElement(id); } ICollection <ElementId> modifiedElem = e.GetModifiedElementIds(); foreach (ElementId id in modifiedElem) { Element el = doc.GetElement(id); if (el is Autodesk.Revit.DB.DesignOption) { // design option changed // resend only changes OpenCOVERPlugin.COVER.Instance.designOptionsChanged(doc, (Autodesk.Revit.DB.DesignOption)el); } else { OpenCOVERPlugin.COVER.Instance.deleteElement(id); OpenCOVERPlugin.COVER.Instance.SendElement(el); } } } }