Managing Custom Properties using SOLIDWORKS API
This section contains macros and code examples for utilizing the custom properties in SOLIDWORKS API.
Custom properties is a collection of key value pairs used in SOLIDWORKS to store the metadata. Custom properties can be associated with the model itself, its configurations or cut-list features (such as weldment or sheet metal).
Custom properties are managed via ICustomPropertyManager SOLIDWORKS API interface.
In many cases when it is required to read the value of the custom property (e.g. for using in the file name, for exporting, etc.) property will be firstly read from the referenced configuration and if missing from the file property. This is similar to the way properties are used to populate Bill Of Materials table.
Code below demonstrates how to implement this practice in the code.
Dim swApp As SldWorks.SldWorks
Sub main()
Set swApp = Application.SldWorks
Dim swModel As SldWorks.ModelDoc2
Set swModel = swApp.ActiveDoc
Debug.Print GetPropertyValue(swModel, "Part Number")
Debug.Print GetPropertyValue(swModel, "Revision")
End Sub
Function GetPropertyValue(model As SldWorks.ModelDoc2, prpName As String) As String
Dim prpVal As String
Dim swCustPrpMgr As SldWorks.CustomPropertyManager
If TypeOf model Is SldWorks.PartDoc Or TypeOf model Is SldWorks.AssemblyDoc Then
Set swCustPrpMgr = model.ConfigurationManager.ActiveConfiguration.CustomPropertyManager
swCustPrpMgr.Get4 prpName, True, "", prpVal
End If
If prpVal = "" Then
Set swCustPrpMgr = model.Extension.CustomPropertyManager("")
swCustPrpMgr.Get4 prpName, True, "", prpVal
End If
GetPropertyValue = prpVal
End Function