API: How to get custom props from model in drawing?

Is there a way to automatically activate a view (doesn't matter which
one), and get the custom properties of the model in that view through
the API?
If a view was pre-selected (to make things easier), how would I get the
custom props of the model (in a SLDDRW)?
Reply to
Loading thread data ...
Yes, you can use GetFirstView and GetNextView to get the first real view (1st one is sheet format or something, so you have to get the second one to reach the actual view). Then you can get the model with ReferencedDocument and so on, there's an short example in API Help actually...
Reply to
Markku Lehtola
A bit of working code would be nice, because I cant seem to find the example you were referring to.
Right now, I'm considering grabbing the associated file from the drawing name, grabbing the parameter etc. The only drawback to that is that it requires that the drawing file name be teh same as the part/assembly file name (with a different extension of course). At least I know I can do that for sure.
Reply to
Here is a couple examples from the help file to get you started.
This example shows how to get the document referenced by a drawing view.
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swView As SldWorks.View
Dim swDrawModel As SldWorks.ModelDoc2
Dim sModelName As String
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
Set swView = swSelMgr.GetSelectedObject5(1)
Set swDrawModel = swView.ReferencedDocument
sModelName = swView.GetReferencedModelName
Debug.Print "File = " & swModel.GetPathName
Debug.Print " View = " & swView.Name
Debug.Print " Model = " & sModelName
Debug.Print " " & swDrawModel.GetPathName
End Sub
This example shows how to get the custom properties for the configurations in a document.
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 swConfig As SldWorks.Configuration
Dim vConfName As Variant
Dim vPropName As Variant
Dim vPropValue As Variant
Dim vPropType As Variant
Dim nNumProp As Long
Dim i As Long
Dim j As Long
Dim bRet As Boolean
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Debug.Print "File = " + swModel.GetPathName
vConfName = swModel.GetConfigurationNames
For i = 0 To UBound(vConfName)
Set swConfig = swModel.GetConfigurationByName(vConfName(i))
nNumProp = swConfig.GetCustomProperties(vPropName, vPropValue, vPropType)
Debug.Print " Config = " & vConfName(i)
For j = 0 To nNumProp - 1
Debug.Print " " & vPropName(j) & " = " & vPropValue(j)
Next j
Debug.Print " ---------------------------"
Next i
End Sub
Reply to

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.