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
Fye
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
Fye

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
Jeff

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.