Building Coder 链接:Failure API Take Two
Revit 二次开发论坛链接:翻译 Building Coder - 失败处理API(上)
发布错误
错误发布API绝对属于易用型。我们可以首先在外部应用程序的OnStartup方法中注册新的错误定义,通常还需要设置其严重程度和解决方案类型。下面是注册一个新警告的例子。自定义的错误被注册之后,就可以在程序中自由地使用了。public Result OnStartup( UIControlledApplication a ) { // Create failure definition Ids m_idWarning = new FailureDefinitionId( new Guid( "0C3F66B5-3E26-4d24-A228-7A8358C76D39" ) ); // VS工具菜单里有GUID生成器 // Create failure definition and add resolution m_fdWarning = FailureDefinition.CreateFailureDefinition( m_idWarning, FailureSeverity.Warning, // 严重程度 "I am the warning." ); m_fdWarning.AddResolutionType( FailureResolutionType.MoveElements, "MoveElements", typeof( DeleteElements ) ); // 解决方案类型 return Result.Succeeded; }Document.PostFailure()方法用于告诉文档对象当前有一个错误。
transaction.Start(); // 需要包含在一个事务中 FailureMessage fm = new FailureMessage( m_idWarning ); m_doc.PostFailure( fm ); transaction.Commit();错误会在提交事务时被验证,解决错误(如果需要的话)也是在事务被提交时进行。