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

  • Thread starter Thread starter Fye
  • Start date Start date
F

Fye

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)?
 
Fye said:
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?

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...
If a view was pre-selected (to make things easier), how would I get the
custom props of the model (in a SLDDRW)?


--

regards

Markku Lehtola
Certified SolidWorks Professional (CSWP)

www.markkulehtola.net
 
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.
 
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) & " <" & vPropType(j) &
"> = " & vPropValue(j)

Next j

Debug.Print " ---------------------------"

Next i

End Sub
 
Back
Top