Revit API 2013文档在同步或重载后更改没有看到新添加或更改的元素

本文关键字:新添加 添加 元素 2013 同步 重载 Revit API 文档 | 更新日期: 2023-09-27 18:03:54

我在两台不同机器上使用中央文件模型和两个本地文件时遇到了问题。当我在一台机器上添加一个元素,做一个同步,然后在另一台机器上重新加载,API不会看到这个新添加的元素与DocumentChanged事件。

这是代码:

private void DocumentChanged(object sender, Autodesk.Revit.DB.Events.DocumentChangedEventArgs e)
    {
        switch(e.Operation.ToString())
        {
            case "TransactionUndone":
            case "TransactionRedone":
            case "TransactionCommitted":
                this.transactionEventHandler.HandleEvent(sender, e, this.persistance, this.elementMutationHandler);
                break;
        }            
    }

在这段代码之后,我立即这样做:

ICollection<ElementId> deletedElements = e.GetDeletedElementIds();
ICollection<ElementId> changedElements = e.GetModifiedElementIds();
ICollection<ElementId> addedElements = e.GetAddedElementIds();

问题是,对于已删除的元素,这可以完美地工作(在重新加载后),但对于修改和添加的元素,这不起作用。

在本地文件中添加或修改元素时,代码可以完美地工作,但这不是我需要的。我需要处理来自其他用户的修改和添加的元素,这些用户将这些更改同步到中央文件。

有没有人知道如果我做错了什么,或者也许有一些其他的方式来实现这一点?

Revit API 2013文档在同步或重载后更改没有看到新添加或更改的元素

我认为你需要添加Attribute

[Regeneration(RegenerationOption.Automatic)]