最近开发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);