2 台の異なるマシンで中央ファイル モデルと 2 つのローカル ファイルを操作する際に問題があります。あるマシンに要素を追加し、同期を行ってから別のマシンに再読み込みすると、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();
問題は、削除された要素の場合は (リロード後に) 完全に機能しますが、変更および追加された要素の場合は何もしないことです。
ローカル ファイル内の要素を追加または変更する場合、コードは完全に機能しますが、これは私が必要としているものではありません。これらの変更を中央ファイルに同期した他のユーザーからの変更および追加された要素を処理する必要があります。
私が何か間違ったことをしているのか、それともこれを達成するための他の方法があるのか 誰かが知っていますか?