Solidedge V19 - IsDocumentFop Slow

Creator
Creator

Hello,

I have a problem regarding IsDocumentFop.

 

My customer told me he sees this:

serverbusy.png

 

 

 

 

 

 

 

 

In English:

serverbusy_eng.jpg

 

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):

 

SeApp.SetOLERequestPendingTimeout(100000000)

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:

 

SeApp.DoIdle()

Does anyone have an idea what I might me doing wrong?

Any help would be appreciated.

Thank you.

 

Regards,

AP

 

Edit: I'm using the Revisionmanager in an addin...

6 REPLIES

Re: Solidedge V19 - IsDocumentFop Slow

Solution Partner Phenom Solution Partner Phenom
Solution Partner Phenom

Hello AP,

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.

 

regards JB

regards

JB
VS2015, SE ST10

Re: Solidedge V19 - IsDocumentFop Slow

Creator
Creator

Hello JB,

 

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?

 

Thank you.

 

Regards,

AP

Re: Solidedge V19 - IsDocumentFop Slow

Creator
Creator

By the way.... I did this in a seperate exe file:

 

seperate_exe.png

 

Still slow. No addin active. Any ideas?

 

Regards,

AP

Re: Solidedge V19 - IsDocumentFop Slow

Solution Partner Phenom Solution Partner Phenom
Solution Partner Phenom

Hello AP,

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.

 

JB

regards

JB
VS2015, SE ST10

Re: Solidedge V19 - IsDocumentFop Slow

Creator
Creator

Hi JB,

 

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!

 

Regards,

AP

Re: Solidedge V19 - IsDocumentFop Slow

Solution Partner Phenom Solution Partner Phenom
Solution Partner Phenom

Hi AP,

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

try

objFamily = objPart.FamilyMembers

If objfamily.Count >0 Then

 ' this is as Family Master...

End If 

catch

end try

 

I'm not shure if this works with V19, my oldes SDK Help is from SE ST

 

regards JB

regards

JB
VS2015, SE ST10