4

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();

問題は、削除された要素の場合は (リロード後に) 完全に機能しますが、変更および追加された要素の場合は何もしないことです。

ローカル ファイル内の要素を追加または変更する場合、コードは完全に機能しますが、これは私が必要としているものではありません。これらの変更を中央ファイルに同期した他のユーザーからの変更および追加された要素を処理する必要があります。

私が何か間違ったことをしているのか、それともこれを達成するための他の方法があるのか​​ 誰かが知っていますか?

4

1 に答える 1