Hide Table of Contents

Delete a Smart Feature Example (C#)

This example shows how to delete a feature from a Smart Component.

// Preconditions:
// 1. Open public_documents\samples\tutorial\api\holecube.sldprt.
// 2. Expand the Smart Feature and Features folders to verify that
//    Features contains two extrusion features.
// Postconditions:
// 1. Deletes one extrusion feature from the Features folder.
// 2. Expand the Smart Feature and Features folders to verify that
//    Features contains one extrusion feature.
// NOTE: Because the model is used elsewhere, do not save changes.
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using System.Runtime.InteropServices;
namespace DeleteSmartFeature_CSharp.csproj
partial class SolidWorksMacro

FeatureManager featMgr;
Feature myFeature;
ModelDoc2 swTrainAss;
ModelDoc2 swSmartPart;
SmartComponentFeatureData swSCFD;
SelectionMgr selMgr;
Feature feat;
object[] feats;
object obj;
int i;
int count;
bool boolstatus;

public void Main()
            swSmartPart = (
            featMgr = swSmartPart.FeatureManager;
            feats = (
            count = featMgr.GetFeatureCount(

for (i = 0; i <= count - 1; i++)
                myFeature = (
if (myFeature.Name == "Smart Feature")
                    swSCFD = (

// Open the training assembly of the Smart Component
                    // Open the SmartComponent PropertyManager page to access its selection lists
                    boolstatus = swSCFD.AccessSelections(true);

                    swTrainAss = (
                    selMgr = (

Debug.Print("Number of features: " + selMgr.GetSelectedObjectCount2((int)swSmartComponentSelectionTypes_e.swSmartComponentFeatures));
Debug.Print("Number of components: " + selMgr.GetSelectedObjectCount2((int)swSmartComponentSelectionTypes_e.swSmartComponentComponents));

// Get the first extrusion from the features selection list
                    obj = selMgr.GetSelectedObject6(1, (int)swSmartComponentSelectionTypes_e.swSmartComponentFeatures);
                    feat = (

// To delete an extrusion feature from a Smart Component,
                    // re-select it in the Smart Features selection list
                    boolstatus = feat.Select2(true, (int)swSmartComponentSelectionTypes_e.swSmartComponentFeatures);

// Modify the definition of the Smart Feature,
                    // close the training assembly, and rebuild the Smart Component
                    boolstatus = myFeature.ModifyDefinition(swSCFD, swSmartPart, null);


public SldWorks swApp;



Provide feedback on this topic

SOLIDWORKS welcomes your feedback concerning the presentation, accuracy, and thoroughness of the documentation. Use the form below to send your comments and suggestions about this topic directly to our documentation team. The documentation team cannot answer technical support questions. Click here for information about technical support.

* Required

Subject:   Feedback on Help Topics
Page:   Delete a Smart Feature Example (C#)
*   I acknowledge I have read and I hereby accept the privacy policy under which my Personal Data will be used by Dassault Systèmes

Print Topic

Select the scope of content to print:


We have detected you are using a browser version older than Internet Explorer 7. For optimized display, we suggest upgrading your browser to Internet Explorer 7 or newer.

 Never show this message again

Web Help Content Version: API Help (English only) 2018 SP05

To disable Web help from within SOLIDWORKS and use local help instead, click Help > Use SOLIDWORKS Web Help.

To report problems encountered with the Web help interface and search, contact your local support representative. To provide feedback on individual help topics, use the “Feedback on this topic” link on the individual topic page.