コード例 #1
0
        //On DocumentChanged
        internal void DocumentChanged(Autodesk.Revit.DB.Events.DocumentChangedEventArgs e)
        {
            List <string> commands = new List <string>()
            {
                "param",
                "Modify element attributes",
                "Family Types",
                "Add Parameter",
                "Delete Selection",
                "Delete Parameter",
                "Parameter Delete",
                "Parameter Change",
                "Change Parameter Name",
                "Project Units"
            };

            if (_presenter != null && _presenter._enabled)
            {
                IList <String> operations = e.GetTransactionNames();
                if (commands.Any(operations.Contains))
                {
                    _presenter.ThisDocumentChanged();
                }
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }