SOLIDWORKS C# API - Delete Selected Sketch
Objective
I want to:
-
Delete Selected Sketch into Solidworks Part Document using Solidworks C# API
-
We will continue from previous article 🚀 Delete Selected Sketch UI.
Demo Video
Please see below video on how to “Delete Selected Sketch into Solidworks Part Document” using Solidworks C# API from WPF Application.
Please note that there are no explanation in the video.
Explanation of each step and why we write code this way is given in this post.
Update Method - ExecuteDeleteCommand
In this section, we update ExecuteDeleteCommand method.
- First we replace below 👇🏻 code from ExecuteDeleteCommand method.
await Task.Run(() =>
{
// Sleeping with 2 sec
Thread.Sleep(2000);
});
- Then we use below code.
bool result = await Task.Run(DeleteSketch);
In above code, we are doing following.
- Create a
booltype variable. - Name of this variable =
result - Value of this
resultvariable is set byDeleteSketchmethod. - In above code, we use
awaitkeyword. This will wait for completion ofDeleteSketchmethod.
Since DeleteSketch method did not exist hence we need to create a new method as shown below 👇🏻.
bool DeleteSketch()
{
return true;
}
- In above code
DeleteSketch()method return true as default value. - In
ExecuteDeleteCommand()method, we will add following code.
if (result)
this.eventAggregator.GetEvent<InformationMessagesService>().Publish(messageToShow);
else
this.eventAggregator.GetEvent<ErrorMessagesService>().Publish(messageToShow);
- In above code, we are checking value of
resultvariable. - If value of
resultvariable =true - Then we will show an Information message.
- For showing message we use
this.eventAggregatorfield. - This field get
InformationMessagesServiceclass and publish a message. - If value of
resultvariable =false - Then we will show an Error message.
- For showing message we use
this.eventAggregatorfield. - This field get
ErrorMessagesServiceclass and publish a message. - In both cases message depend upon
messageToShowvariable. - Value of this
messageToShowvariable comes fromDeleteSketch()method.
Update Method - DeleteSketch
- Now we need to update
DeleteSketch()method for deleting selected Sketch.
swApp = new SldWorks.SldWorks();
- In above code we are setting value of
swAppvariable to newSldWorks.SldWorks()type. - Reference: Please visit 🚀 online SOLIDWORKS API Help.
if (swApp == null)
{
messageToShow = "Failed to find Solidworks application.";
return false;
}
- In above code, we are checking value of
swAppvariable. - We are checking if
swAppvariable isnullor not? - If value is
null, then we will execute code inside thisifcondition.
messageToShow = "Failed to find Solidworks application.";
return false;
- Above code execute when value of
swAppvariable isnull. - In above code, we are setting value of
messageToShowvariable to"Failed to find Solidworks application.". - This variable will be use to show messages to user.
- After this we return
falseand exit theChangeSketchName()method.
swDoc = swApp.ActiveDoc;
- In above code we are setting value of
swDocvariable to newswApp.ActiveDocproperty. - This
ActiveDocproperty is part ofswAppvariable. - If there is NO document active then this
ActiveDocproperty returnnull. - Reference: Please visit 🚀 online SOLIDWORKS API Help.
if (swDoc == null)
{
messageToShow = "Failed to get Solidworks document.";
return false;
}
- In above code, we are checking value of
swDocvariable. - We are checking if
swDocvariable isnullor not? - If value is
null, then we will execute code inside thisifcondition.
messageToShow = "Failed to get Solidworks document.";
return false;
- Above code execute when value of
swDocvariable isnull. - In above code, we are setting value of
messageToShowvariable to"Failed to get Solidworks document.". - This variable will be use to show messages to user.
- After this we return
falseand exit theChangeSketchName()method.
bool result = swDoc.Extension.DeleteSelection2((int)swDeleteSelectionOptions_e.swDelete_Children);
- In above code, we delete selected Sketch.
- For changing the name, we use
DeleteSelection2()method. DeleteSelection2()method is part ofExtensionproperty.Extensionproperty is part ofswDocvariable.DeleteSelection2()method takes following parameters.-
DeleteOptions: Options as defined in
swDeleteSelectionOptions_e.Member Description swDelete_Absorbed 2swDelete_Advanced 4swDelete_Children 1
-
-
Return Value :
trueif selected item is deleted,falseif not. -
In our code, I have used following values:
Parameter Name Value Used DeleteOptions swDeleteSelectionOptions_e.swDelete_Children - We store return value of
DeleteSelection2()method inresultvariable. resultvariable Type :bool
if (result == false)
{
messageToShow = "Failed to delete selected sketch.";
return false;
}
- We check value of
resultvariable and successfully delete Selected Sketch or not. - In above code, we are checking value of
resultvariable and successfully deleted Sketch or not. - We are checking if
resultvariable istrueorfalse? - If value is
false, then we will execute code inside thisifcondition.
messageToShow = "Failed to delete selected sketch.";
return false;
- Above code execute when value of
resultvariable isfalse. - In above code, we are setting value of
messageToShowvariable to"Failed to delete selected sketch.". - This variable will be use to show messages to user.
- After this we return
falseand exit theDeleteSketch()method.
messageToShow = "Selected Sketch is deleted.";
return true;
- Above code execute when value of
resultvariable istrueand did not execute code insideifcondition. - In above code, we are setting value of
messageToShowvariable to"Selected Sketch is deleted.". - This variable will be use to show messages to user.
- After this we return
trueand exit theDeleteSketch()method.
FINAL RESULT
For Demo, we already had a sketch we want to delete with our program.
Please see below 👇🏻 image for reference.
Now, we have done everything needed to Delete Solidworks Sketch into Solidworks Document through our application.
Please see below image for final result of our work.
This is it !!!
I hope my efforts will helpful to someone!
If you found anything to add or update, please let me know on my e-mail.
Hope this post helps you to Delete Selected Solidworks Sketch from WPF PRISM Application.
If you like the post then please share it with your friends also.
Do let me know by you like this post or not!
Till then, Happy learning!!!

