Add protection against reference to reference in STEP import.
TDF_Label subL = AddShape(Sub0, STool, NewShapesMap, ShapePDMap, PDFileMap, ShapeLabelMap);
if (!subL.IsNull()) {
TDF_Label instL = STool->AddComponent(L, subL, it.Value().Location());
- ShapeLabelMap.Bind(it.Value(), instL);
+ if (!ShapeLabelMap.IsBound(it.Value())) {
+ ShapeLabelMap.Bind(it.Value(), instL);
+ }
}
}
if (SHAS.Length() > 0) STool->SetExternRefs(L, SHAS);
--- /dev/null
+puts "================================================================="
+puts "0031568: Data Exchange - invalid model produced after STEP import"
+puts "================================================================="
+
+pload DCAF
+
+ReadStep D [locate_data_file bug31568_Konecranes_Sample_3D.stp]
+set ref [XGetReferredShape D 0:1:1:41:11]
+if {$ref != "0:1:1:23"} {
+ puts "Error: wrong reference in data model"
+}
+
+Close D