List Custom Properties Example (VBA)
This example shows how to list the custom properties for a configuration.
'-------------------------------------
'
' Preconditions: SolidWorks document is open to which
custom properties have been assigned.
'
' Postconditions: None
'-------------------------------------
Option Explicit
Public Enum swCustomInfoType_e
swCustomInfoUnknown
= 0
swCustomInfoText
= 30 '
VT_LPSTR
swCustomInfoDate
= 64 '
VT_FILETIME
swCustomInfoNumber
= 3 '
VT_I4
swCustomInfoYesOrNo
= 11 '
VT_BOOL
End Enum
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
vConfigNameArr As
Variant
Dim
vConfigName As
Variant
Dim
vCustInfoNameArr As
Variant
Dim
vCustInfoName As
Variant
Dim
bRet As
Boolean
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Debug.Print
"File = " & swModel.GetPathName
vConfigNameArr
= swModel.GetConfigurationNames
'
Is empty if a drawing becasue configurations not supported on drawings
If
IsEmpty(vConfigNameArr) Then
ReDim
vConfigNameArr(0)
vConfigNameArr(0)
= ""
Else
'
Add a blank string for the nonconfiguration-specific custom properties
ReDim
Preserve vConfigNameArr(UBound(vConfigNameArr) + 1)
End
If
For
Each vConfigName In vConfigNameArr
Debug.Print
" "
& vConfigName
vCustInfoNameArr
= swModel.GetCustomInfoNames2(vConfigName)
If
Not IsEmpty(vCustInfoNameArr) Then
For
Each vCustInfoName In vCustInfoNameArr
Debug.Print
" "
& vCustInfoName
Debug.Print
" Type
=
" & swModel.GetCustomInfoType3(vConfigName,
vCustInfoName)
Debug.Print
" Value
=
" & swModel.GetCustomInfoValue(vConfigName,
vCustInfoName)
Debug.Print
" Text
=
" & swModel.CustomInfo2(vConfigName,
vCustInfoName)
Next
End
If
Debug.Print
" ---------------------------"
Next
End Sub