最近開發Revit命令需要限制某些操作,思路是監控用戶操作,如果達到限制條件,將操作回退。思路有兩種:
1.調用WindowsAPI,發送快捷命令Ctrl+Z。
2.通過Revit底層提供DLL找到回退方法。
對於第一種方法,相對來說感覺不是那么完美,在應用中感覺有點繁瑣。所以尋找Revit是否有對應的API。但是在官方的API文檔里找不到對應的方法,只好找Revit隱藏的DLL了,不過最終還是找到了,這個方法隱藏在UIFrameworkServices.dll里。
1 /// <summary> 2 /// 操作回退 3 /// </summary> 4 /// <param name="bForUndo">默認為true</param> 5 /// <param name="iNumOperations">回退的步數</param> 6 public static void performMultipleUndoRedoOperations(bool bForUndo,int iNumOperations);