cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Need ProToolkit API to retrieve simplified rep on assembly subcomponent

Need ProToolkit API to retrieve simplified rep on assembly subcomponent

Interactive Creo can specify simplified rep on assembly sub-component instance.

Top Assembly

   + Sub-Component A (Simprep on)

   + Sub-Component A (No Simprep)

   + Sub-Component B

          :

PTC support confirmed there is no API to retrieve simplified rep on an assembly sub-component instance.

Please implement API.

4 Comments
Amethyst

Wouldn't ProMdlRepresentationLoad or ProMdlRepresentationFiletypeLoad do the trick? You would need to know the model's simprep before loading it... but I think you would need to know that also via your implementation, right? One of the arguments is ProSimprepData... so you should be able to set the status of the sub-components using that?

I haven't tested this at all... and I certainly have my doubts that it would work (you would need to know the Asmcomppath of the components PRIOR to opening the model)... but it may help.

One idea that may work - you could try loading it with "default exclude all", and then loading the desired components from there.

Thanks,

James Sullivan

CadActive Technologies

Visitor

James,


Thank you for the suggestion.

Your suggestion seems setting simprep on a sub component.

If I am wrong, please tell me so.


I am not setting the simprep.

I do not have simprep information. I believe there is an API to get simprep on the top assembly.

What I need is simprep information of a sub component of loaded model, and as far as I understand there is no API.

Amethyst

Ah Okay - I think I see what you are saying now.

You aren't necessarily looking for "saved" simp reps- you're looking to see if a sub-model is using a "user-defined rep".

In theory, you could use "ProSimprepDataGet" on your top model. That returns a "ProSimprepData" object, which contains an array of "ProSimprepItem" objects.

In theory, you could loop through that array of "items", and compare the "ProSimprepItemPath" to the "ProAsmcomppath" of your desired sub-assembly - however, that would only tell you the "state" of that sub-item - you can't tell if the sub-assembly is set to a specific "named" or "saved" simplified rep.

Newbie

I have the same problem.  Given a sub-assembly, I need to determine its active simplified representation.  I am going to try dumping the fully expanded model tree to a text file using a macro.  I can then parse this file to determine the active simplified representation for any given sub-assembly.  I can then list all the IPFCSolid models for the session and use the file name to correlate the simplified representations with the IPFCAssembly model objects.  Of course, this would be much easier if Creo provided API access to the model tree. 

 

This is an ugly workaround, however, I think it might work.  I opened a hotline case with PTC, they are going to try and formulate a workaround as well.