我在两台不同机器上使用中央文件模型和两个本地文件时遇到问题。当我在一台机器上添加一个元素,进行同步然后在另一台机器上重新加载时,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();
问题是,对于已删除的元素,它可以完美地工作(在重新加载之后),但对于修改和添加的元素,它什么也不做。
在本地文件中添加或修改元素时,该代码可以完美运行,但这不是我所需要的。我需要处理将这些更改同步到中央文件的其他用户修改和添加的元素。
有谁知道我做错了什么,或者也许有其他方法可以做到这一点?