Run the following macro and observe the issue:
Dim swApp As SldWorks.SldWorks
Sub main()
Set swApp = Application.SldWorks
Dim swModel As ModelDoc2
Dim swFirstNonVisiblePartDocument As ModelDoc2
Set swModel = swApp.GetFirstDocument
While Not swModel Is Nothing
If swModel.GetType = SwConst.swDocumentTypes_e.swDocPART And swModel.Visible = False Then
Set swFirstNonVisiblePartDocument = swModel
Set swModel = Nothing
Else
Set swModel = swModel.GetNext
End If
Wend
Debug.Print "Found: " & swFirstNonVisiblePartDocument.GetTitle
Dim Statistics As SldWorks.FeatureStatistics
Set Statistics = swFirstNonVisiblePartDocument.FeatureManager.FeatureStatistics
Debug.Print Statistics.PartName
End Sub
The printed part name will be of the top-level assembly and not the part document.
This bug is so annoying because its workaround requires activating the part document to get the stats which is sooooo slow. Imagine having 300 part documents to show…
This is an odd one. I ran your test code and then started digging into other attributes. It turns out that if the file’s “Visible” attribute is False, then it’s loaded into memory only. GetPathName doesn’t return anything at all.
I feel like you may be stuck having to load the model in some capacity in order to get correct information.
Yup. That’s what I’m doing right now. I’m making the document visible so it is active. I am waiting for SW to confirm this.
This has been confirmed by SOLIDWORKS as a bug. Doubt it will be fixed any time soon.
Dear Amen,
I am able to reproduce the issue at my end and yes its a bug.
The method is pointing to the assembly instead it should point a part of the assembly I tried running through a loops of parts in assembly and I got the same results.
We already have a SPR for it. The SPR number is 1126583.
I have also attached the SPR to your SR. You'll be notified once the SPR gets resolved.
Regards,
1 Like