Suppression and Unsuppression of elements in a pattern

Top  Previous  Next

Read about general suppression programatically first, if you have't already.


Within a single RectangularPattern (or any other pattern) you can use this fragment as a starting point for suppressing individual features within a pattern. Note that the first element in a pattern cannot be suppressed.


       CComPtr<Parameter> XCountParam ;

       pRectPatFeat->get_XCount (&XCountParam) ;

       const int ikXCount = XCountParam->GetValue () ;


       TRACE (L"Component %d is called %s, and the x count is %d ",iRect,bstrName,ikXCount) ;


       CComPtr<FeaturePatternElements> pFeaturePatternElements ;

       pRectPatFeat->get_PatternElements (&pFeaturePatternElements) ;


       const int ikNumElements = pFeaturePatternElements->GetCount() ;

       TRACE (L", this has %d FeaturePatternElements\n",ikNumElements) ;


       // Start at 2 because the first element cannot be suppressed

       for (int iElem = 2 ; iElem <= ikNumElements ; iElem++) {

           CComPtr<FeaturePatternElement> pFeaturePatternElement ;

           pFeaturePatternElements->get_Item (iElem,&pFeaturePatternElement) ;


           VARIANT_BOOL bSuppressed ;


           if (((iElem/2)*2) == iElem) {

               bSuppressed = VARIANT_TRUE ;


           } else {

               bSuppressed = VARIANT_FALSE ;



           pFeaturePatternElement->put_Suppressed(bSuppressed) ;






Note that you'll need to call Update to refresh the display:


   pPartDocument->Update () ; // Like an AutoCAD regen



Text, images and diagrams © 2021 Owen F. Ransen. All rights reserved. (But copy the source code as much as you want!)