I have a problem regarding IsDocumentFop.
My customer told me he sees this:
After a while I found out, that IsDocumentFop is the reason, which is used somewhere in the code.
iRetStat = oRevFileDoc.IsDocumentFOP(iFOPStatus)
To me it seemed like Solidedge is struggling with the "given time" to retrieve this information.
So I just did this to give Solidedge some more time (implemented within onConnection-event):
Now the "Server Busy" message does not appear, BUT it takes way to long to retrieve this information from standard parts.
I already tried to "DoIdle" throughout the code, to kind of refresh Solidedge:
Does anyone have an idea what I might me doing wrong?
Any help would be appreciated.
Edit: I'm using the Revisionmanager in an addin...
is seems that you use the RevManager API while using the Solid Edge Application.
Remember that this starts a new process of the RevisionManager parallel to the Solid Edge pProcess.
You can get all information with the Solid Edge API using the objects starting at the Application object.
Use the RevManager API only if you want to get Information without open the ASM in Solid Edge. Opening an Assembly file in Solid Edge and RevisionManager at the same time can result in file access problems.
thank you for your answer. You said I can get the information from using the Solid Edge API (without Rev-Manager)... But how can I get the IsDocumentFOP information without using Rev-Manager API? What's the method?
I think there is no direct was in the SE API to get this information.
You are trying to get the information for a part that is child of a family of part Master file.
In the Master file you can get the list of familiy Members (if any) by the property FamilyMembers of the PartDocument.
In the child part the only was I know is to see if the Model Item(1) has a Member in the CopiedParts collection. The CopiedPart object has a property FamiliyOfPartsMember (name of the family member) and a FileName property (name of the Master file).
Since you are working on a very old SE Version, I cannot reproduce your problem. With ST8 you code has no noticable delay.
Hope this helps.
thank you! That helped.
What I need to to do is:
1. Check if the current file is a standard part. Now I'll do this (quick & dirty):
For j As Integer = 1 To oPartDoc.Models.Count Dim oModel As SolidEdgePart.Model = oPartDoc.Models.Item(j) For k As Integer = 1 To oModel.CopiedParts.Count Dim oCopiedPart As SolidEdgePart.CopiedPart = oModel.CopiedParts.Item(k) Dim sCopiedPart As String = oCopiedPart.FamilyOfPartsMember.ToString If sCopiedPart <> "" Then MsgBox("Normteil? = " & sCopiedPart & " -> " & oDoc.FullName.ToString) End If Next Next
Now in this case, if the Msgbox is displayed, it's a standard part...
Is that right? Do I need to iterate through the Models, or can I just take index "1" like
Dim oModel As SolidEdgePart.Model = oPartDoc.Models.Item(1)
and work with this model object instance?
2. Check if the file is a masterfile... But how can I do that? Could you give me an example?
Thank you guys for your help!
Q1) you can use Item(1) when using an old SE Version, multibody was introduced with SE ST5
Q2) If the filename has no hint that this is a Master File then you can try to get FamilyMembers Collection:
Dim objFamily As SolidEdgePart.FamilyMembers
objFamily = objPart.FamilyMembers
If objfamily.Count >0 Then
' this is as Family Master...
I'm not shure if this works with V19, my oldes SDK Help is from SE ST