How to get the Referenced attribute Tag value

×

Warning message

Access denied. You must log in to view this page.

Can anyone say how to get the Reference value's tag.
In ocaf in the document viewer it is showing

TDF_Reference = 1:1:0 how to get the 1:1:0 by the code.

i have tried like this,

for (TDF_ChildIterator it1(L,Standard_False); it1.More(); it1.Next())
{
TDF_Label L1 = it1.Value();
if(L1.FindAttribute(TDF_Reference::GetID(),TDR))
{
//What code i have write here to get that 1:1:0
}
}

Thanks in Advance,
Vidhyan

}

Svetlozar Kostadinov's picture

1.Do you mean referenced label instead of "referenced attribute"? TDF_Reference can refers to a TDF_Label only.
2.You don't need to iterate if you want to find a label's tag. Just call TDF_Label::Tag().
3.The entry "1:1:0" is not valid. All entries begin with "0:".
4.I think TDF_Tool class will solve your problems.

Regards!

Vidhyan's picture

I am having a box and cylinder in ocaf and i have fused box with cylinder.

0.1.1 is cylinder and 0.1.2 is box
so 0.1.3 will be cylider with the referenced label stating
0.1.3.1 contains TDF_Reference = 0.1.1 and
0.1.3.2 contains TDF_Reference = 0.1.2

Now how to get that 0.1.1 as a value that present in the TDF_Reference

Thanks,
Vidhyan

Dirk B's picture

Hello Vidhyan!
Try using TDF_Tool::Label. Here is an example, where entry is the string 1:1:0 and _Doc->Main().Data() is the root of your document:
TDF_Label GetLabelFromEntry(std::string entry){
TCollection_AsciiString anEntry = entry.c_str();
TDF_Label aLabel;
TDF_Tool::Label(_Doc->Main().Data(), anEntry, aLabel, Standard_False);
return aLabel;
}

Regards,
Dirk