Hello Julian,
Thanks to both of you who answered my question I know little bit more how to compute reference.
But I still have trouble that last reference I got is from first subaasembly and next immediate parent is occurence of first subassembly. For boolean of screw I need reference of crew in top assembly so i tried compute reference of last assembly level via .CreateReference but it doesn't work.
public SolidEdgeFramework.Reference getUpRefOfRef(
SolidEdgeFramework.Reference refDoc, ref int assemLevelsCount)
{
if (refDoc.Type != SolidEdgeFramework.ObjectType.igReference)
{
return refDoc;
}
else
{
SolidEdgeFramework.Reference upRefDoc = null;
try
{
upRefDoc =
(SolidEdgeFramework.Reference)refDoc.ImmediateParent;
}
catch
{
SolidEdgeAssembly.Occurrence firstSubAssemOcc =
(SolidEdgeAssembly.Occurrence)refDoc.ImmediateParent;
SolidEdgeAssembly.Occurrences occs =
(SolidEdgeAssembly.Occurrences)firstSubAssemOcc.Parent;
SolidEdgeAssembly.AssemblyDocument topAssemDoc =
(SolidEdgeAssembly.AssemblyDocument)occs.Parent;
refDoc = (SolidEdgeFramework.Reference)
topAssemDoc.CreateReference(firstSubAssemOcc, refDoc);
assemLevelsCount++;
return refDoc;
}
assemLevelsCount++;
return getUpRefOfRef(upRefDoc, ref assemLevelsCount);
}
}
Thanks for any advice.
Best Regards,
Jara |