Hide Table of Contents

Select Component Face By Name Example (VBA)

This example shows how to find and select a face using its name. The face must belong to an assembly component. This code can be extended to traverse all assembly components, select assembly component geometry by name, and create assembly mates using the selected items.



Public Sub SelectComponentFaceByName(CompName As String, FaceName As String)


Dim swApp As Object

Dim AssyDoc As Object

Dim SelMgr As Object

Dim Comp As Object

Dim Body As Object

Dim Face As Object

Dim CurFaceName As String


Const swSelCOMPONENTS = 20

Set swApp = CreateObject("SldWorks.Application")


' Get active Assembly document

Set AssyDoc = swApp.ActiveDoc()

Set SelMgr = AssyDoc.SelectionManager()

AssyDoc.SelectByID CompName, "COMPONENT", 0, 0, 0

Set Comp = SelMgr.GetSelectedObject3(1)


If (SelMgr.GetSelectedObjectType2(1) <> swSelCOMPONENTS) Then

swApp.SendMsgToUser "Please Select an Assembly Component."

Exit Sub

End If


Set Body = Comp.GetBody() ' Get the Component Body


If (Body Is Nothing) Then

swApp.SendMsgToUser "Component Body Unavailable."

swApp.SendMsgToUser "Make sure not lightweight or suppressed"

Exit Sub

End If


Set Face = Body.GetFirstFace


' Traverse thru all body faces

Do While Not Face Is Nothing

' Call ModelDoc.GetEntityName.

CurFaceName = AssyDoc.GetEntityName(Face)


If (CurFaceName = FaceName) Then

Face.Select (0) ' Select the face

Exit Do

End If


Debug.Print CurFaceName

Set Face = Face.GetNextFace



' Subsequent code might select a second face, edge, or feature, and then mate the two items using AssemblyDoc::AddMate.


End Sub



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:   Select Component Face By Name Example (VBA)
*   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) 2012 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.