Exclude Blocks from Custom Checks
This example shows how to exclude blocks from custom checks. To save time
                during model development and verification, you can exclude individual blocks from
                custom checks during a Model Advisor analysis. To exclude custom checks from
                Simulink blocks and Stateflow charts, use the
                    ModelAdvisor.Check.supportExclusion and
                    Simulink.ModelAdvisor.filterResultWithExclusion functions in
                the check definition file.
Update the Check Definition File
- Open the example that contains the supporting files for this example: - openExample('slcheck/CreateAndDeployAModelAdvisorCustomConfigurationExample')
- Delete the supporting files from your working directory except for the - AdvisorCustomizationExamplemodel and the- defineDetailStyleCheck.mand- sl_customization.mfiles.
- Open the - sl_customizationfile and modify it as follows:- function sl_customization(cm) % SL_CUSTOMIZATION - Model Advisor customization demonstration. % Copyright 2019 The MathWorks, Inc. % register custom checks cm.addModelAdvisorCheckFcn(@defineModelAdvisorChecks); % ----------------------------- % defines Model Advisor Checks % ----------------------------- function defineModelAdvisorChecks defineDetailStyleCheck; 
- Open the - defineDetailStyleCheckfile.
- To update the Check whether block names appear below blocks check to exclude blocks during Model Advisor analysis, make two modifications to the - defineDetailStyleCheckfile.- Enable the Check whether block names appear below blocks check to support check exclusions by using the - ModelAdvisor.Check.supportExclusionproperty. After- rec.setCallbackFcn(@DetailStyleCallback,'None','DetailStyle');, add- rec.supportExclusion = true;. The first section of the- function defineDetailStyleChecknow looks like:- % Create ModelAdvisor.Check object and set properties. rec = ModelAdvisor.Check('com.mathworks.sample.detailStyle'); rec.Title = 'Check whether block names appear below blocks'; rec.TitleTips = 'Check position of block names'; rec.setCallbackFcn(@DetailStyleCallback,'None','DetailStyle'); rec.supportExclusion = true; 
- Use the - Simulink.ModelAdvisor.filterResultWithExclusionfunction to filter model objects causing a check warning or failure with checks that have exclusions enabled. To do this, modify the- DetailStyleCallback(system, CheckObj)function as follows:- % Find all blocks whose name does not appear below blocks violationBlks = find_system(system, 'Type','block',... 'NamePlacement','alternate',... 'ShowName', 'on'); violationBlks = mdladvObj.filterResultWithExclusion(violationBlks); 
 
- Save the - DefineDetailStyleCheckfile. If you are asked if it is OK to overwrite the file, click OK.
Create and Save Exclusions
- In order for your customizations to be visible in the Model Advisor, you must refresh the Model Advisor check information cache. At the MATLAB command prompt, type this command: - Advisor.Manager.refresh_customizations(); 
- To open the model, double-click - AdvisorCustomizationExample.slx.
- In the Modeling tab, select Model Advisor to open the Model Advisor. 
- In the left pane of the Model Advisor window, select the By Product > Demo > Check whether block names appear below blocks check. In the right pane, select Run Checks. The check fails. 
- In the model window, right-click the - Xblock and select Model Advisor > Exclude block only > Select Checks. Navigate to the Demo folder and select the Check whether block names appear below blocks check.
- In the Model Advisor Exclusion Editor, click Save to create an exclusion file. 
- In the model window, open the - Amplifiersubsystem and right-click the- GainBlockblock and select Model Advisor > Exclude block only > Select Checks. Navigate to the Demo folder and select the Check whether block names appear below blocks check.
- In the Model Advisor Exclusion Editor, click Save to update the exclusion file. 
Review Exclusions
- In the left pane of the Model Advisor window, select the By Product > Demo > Check whether block names appear below blocks check. In the right pane, select Run Checks. The check now passes. In the right-pane of the Model Advisor window, you can see the Check Exclusion Rules that the Model Advisor applies during the analysis. 
- Close the model and the Model Advisor. 
See Also
ModelAdvisor.Check.SupportExclusion | Simulink.ModelAdvisor