0026715: Problems in reading STEP short names in complex entities
authorika <ika@opencascade.com>
Thu, 1 Oct 2015 11:01:08 +0000 (14:01 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 1 Oct 2015 11:02:03 +0000 (14:02 +0300)
Add function to find next part of complex entity by name or short name.
Add missing short names.

Test cases for issue CR26715

27 files changed:
src/RWStepAP214/RWStepAP214_ReadWriteModule.cxx
src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndPlaneAngleUnit.cxx
src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndVolumeUnit.cxx
src/RWStepBasic/RWStepBasic_RWSiUnitAndAreaUnit.cxx
src/RWStepBasic/RWStepBasic_RWSiUnitAndLengthUnit.cxx
src/RWStepBasic/RWStepBasic_RWSiUnitAndMassUnit.cxx
src/RWStepBasic/RWStepBasic_RWSiUnitAndVolumeUnit.cxx
src/RWStepDimTol/RWStepDimTol_RWGeoTolAndGeoTolWthDatRef.cxx
src/RWStepDimTol/RWStepDimTol_RWGeoTolAndGeoTolWthDatRefAndGeoTolWthMod.cxx
src/RWStepDimTol/RWStepDimTol_RWGeoTolAndGeoTolWthDatRefAndModGeoTolAndPosTol.cxx
src/RWStepDimTol/RWStepDimTol_RWGeoTolAndGeoTolWthDatRefAndUneqDisGeoTol.cxx
src/RWStepDimTol/RWStepDimTol_RWGeoTolAndGeoTolWthMod.cxx
src/RWStepGeom/RWStepGeom_RWBSplineCurveWithKnotsAndRationalBSplineCurve.cxx
src/RWStepGeom/RWStepGeom_RWBSplineSurfaceWithKnotsAndRationalBSplineSurface.cxx
src/RWStepRepr/RWStepRepr_RWCompGroupShAspAndCompShAspAndDatumFeatAndShAsp.cxx
src/RWStepRepr/RWStepRepr_RWCompShAspAndDatumFeatAndShAsp.cxx
src/RWStepRepr/RWStepRepr_RWReprItemAndLengthMeasureWithUnit.cxx
src/RWStepRepr/RWStepRepr_RWReprItemAndLengthMeasureWithUnitAndQRI.cxx
src/RWStepRepr/RWStepRepr_RWReprItemAndPlaneAngleMeasureWithUnit.cxx
src/RWStepRepr/RWStepRepr_RWReprItemAndPlaneAngleMeasureWithUnitAndQRI.cxx
src/RWStepRepr/RWStepRepr_RWShapeRepresentationRelationshipWithTransformation.cxx
src/RWStepShape/RWStepShape_RWMeasureRepresentationItemAndQualifiedRepresentationItem.cxx
src/StepData/StepData_StepReaderData.cxx
src/StepData/StepData_StepReaderData.hxx
tests/bugs/step/bug26715_1 [new file with mode: 0755]
tests/bugs/step/bug26715_2 [new file with mode: 0755]
tests/bugs/step/bug26715_3 [new file with mode: 0755]

index c85f115..950b94e 100644 (file)
@@ -2647,6 +2647,15 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
   typeshor->SetItem ("ADDRSS",1);
   typeshor->SetItem ("ABSR",2);
   typeshor->SetItem ("ADVFC",3);
+  typeshor->SetItem ("ANCROC",4);
+  typeshor->SetItem ("ANFLAR",5);
+  typeshor->SetItem ("AFAO",6);
+  typeshor->SetItem ("ANNOCC",7);
+  typeshor->SetItem ("ANSBOC",8);
+  typeshor->SetItem ("ANNSYM",9);
+  typeshor->SetItem ("ANSYOC",10);
+  typeshor->SetItem ("ANNTXT",11);
+  typeshor->SetItem ("ANTXOC",12);
 //203  typeshor->SetItem ("ALPRRL",ALTERNATE_PRODUCT_RELATIONSHIP);
   typeshor->SetItem ("APPCNT",13);
   typeshor->SetItem ("APCNEL",14);
@@ -2658,6 +2667,7 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
   typeshor->SetItem ("APPRLT",19);
   typeshor->SetItem ("APPRL",20);
   typeshor->SetItem ("APPSTT",21);
+  typeshor->SetItem ("ARINST",22);
 //203  typeshor->SetItem ("AMWU",AREA_MEASURE_WITH_UNIT);
 //203  typeshor->SetItem ("ARUNT",AREA_UNIT);
   typeshor->SetItem ("ASCMUS",379);
@@ -2667,6 +2677,7 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
   typeshor->SetItem ("A2PL3D",37);
   typeshor->SetItem ("BZRCRV",43);
   typeshor->SetItem ("BZRSRF",44);
+  typeshor->SetItem ("BLNRSL",46);
   typeshor->SetItem ("BNDCR",47);
   typeshor->SetItem ("BNDCRV",48);
   typeshor->SetItem ("BNDSRF",49);
@@ -2675,7 +2686,13 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
   typeshor->SetItem ("BSCWK",39);
   typeshor->SetItem ("BSPSR",40);
   typeshor->SetItem ("BSSWK",41);
+  typeshor->SetItem ("BXDMN",50);
+  typeshor->SetItem ("BXHLSP",51);
   typeshor->SetItem ("CLNDT",53);
+  typeshor->SetItem ("CMRIMG",54);
+  typeshor->SetItem ("CMRMDL",55);
+  typeshor->SetItem ("CMMDD3",57);
+  typeshor->SetItem ("CMRUSG",58);
   typeshor->SetItem ("CRTPNT",59);
   typeshor->SetItem ("CRTROP",60);
 //203  typeshor->SetItem ("CTO2",CARTESIAN_TRANSFORMATION_OPERATOR_2D);
@@ -2694,6 +2711,8 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
 //203  typeshor->SetItem ("CHNRQS",CHANGE_REQUEST);
 
   typeshor->SetItem ("CLSSHL",63);
+  typeshor->SetItem ("CLRRGB",65);
+  typeshor->SetItem ("CLRSPC",66);
   typeshor->SetItem ("CMPCRV",67);
   typeshor->SetItem ("CCOS",68);
   typeshor->SetItem ("CMCRSG",69);
@@ -2701,9 +2720,15 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
 //203  typeshor->SetItem ("CNFEFF",CONFIGURATION_EFFECTIVITY);
 //203  typeshor->SetItem ("CNFITM",CONFIGURATION_ITEM);
 
+  typeshor->SetItem ("CMPTXT",70);
+  typeshor->SetItem ("CTWAC",71);
+  typeshor->SetItem ("CTWBB",72);
+  typeshor->SetItem ("CTWE",73);
   typeshor->SetItem ("CNCSRF",75);
 //203  typeshor->SetItem ("CNEDST",CONNECTED_EDGE_SET);
   typeshor->SetItem ("CNFCST",76);
+  typeshor->SetItem ("CNDPIN",77);
+  typeshor->SetItem ("CDORSI",78);
   typeshor->SetItem ("CDSR",391);
 //203  typeshor->SetItem ("CNDPUN",CONTEXT_DEPENDENT_UNIT);
 //203  typeshor->SetItem ("CNTRCT",CONTRACT);
@@ -2711,22 +2736,43 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
 //203  typeshor->SetItem ("CNTTYP",CONTRACT_TYPE);
   typeshor->SetItem ("CNBSUN",79);
   typeshor->SetItem ("CUTO",80);
+  typeshor->SetItem ("CSSHRP",82);
+  typeshor->SetItem ("CSGSLD",83);
 
   typeshor->SetItem ("CRBNSR",85);
   typeshor->SetItem ("CRVRPL",86);
+  typeshor->SetItem ("CRVSTY",87);
+  typeshor->SetItem ("CRSTFN",88);
+  typeshor->SetItem ("CSFP",89);
   typeshor->SetItem ("CYLSRF",90);
 
 //203  typeshor->SetItem ("DTDEFF",DATED_EFFECTIVITY);
   typeshor->SetItem ("DTANTM",92);
   typeshor->SetItem ("DATA",93);
+  typeshor->SetItem ("DTASS",94);
+  typeshor->SetItem ("DTRL",95);
   typeshor->SetItem ("DTTMRL",96);
+  typeshor->SetItem ("DFNSYM",97);
   typeshor->SetItem ("DFNRPR",98);
   typeshor->SetItem ("DGNPCR",99);
+  typeshor->SetItem ("DGTRSR",100);
+  typeshor->SetItem ("DSRPIT",101);
+  typeshor->SetItem ("DMNCRV",102);
+  typeshor->SetItem ("DMCRTR",103);
   typeshor->SetItem ("DSGCNT",340);
 //203  typeshor->SetItem ("DMFR",DESIGN_MAKE_FROM_RELATIONSHIP);
   typeshor->SetItem ("DMNEXP",104);
 //203  typeshor->SetItem ("DRCACT",DIRECTED_ACTION);
   typeshor->SetItem ("DRCTN",105);
+  typeshor->SetItem ("DRANOC",106);
+  typeshor->SetItem ("DRGCLL",107);
+  typeshor->SetItem ("DPDC",108);
+  typeshor->SetItem ("DPDCF",109);
+  typeshor->SetItem ("DRSBRP",110);
+  typeshor->SetItem ("DRSYRP",111);
+  typeshor->SetItem ("DTLWD",112);
+  typeshor->SetItem ("DRWDFN",113);
+  typeshor->SetItem ("DRWRVS",114);
   typeshor->SetItem ("DCMNT",367);
 //203  typeshor->SetItem ("DCMRFR",DOCUMENT_REFERENCE);
   typeshor->SetItem ("DCMRLT",369);
@@ -2742,13 +2788,26 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
   typeshor->SetItem ("ELMSRF",118);
   typeshor->SetItem ("ELLPS",119);
   typeshor->SetItem ("EVDGPC",120);
+  typeshor->SetItem ("EXTSRC",121);
+  typeshor->SetItem ("EDCF",122);
+  typeshor->SetItem ("EDHS",123);
+  typeshor->SetItem ("EXDFIT",124);
+  typeshor->SetItem ("EXDFSY",125);
+  typeshor->SetItem ("EDTF",126);
+  typeshor->SetItem ("EDTS",127);
+  typeshor->SetItem ("EXARSL",128);
 //203  typeshor->SetItem ("EXCACT",EXECUTED_ACTION);
 
-  typeshor->SetItem ("FCTBR",134);
-  typeshor->SetItem ("FBSR",135);
   typeshor->SetItem ("FCBND",131);
   typeshor->SetItem ("FCOTBN",132);
   typeshor->SetItem ("FCSRF",133);
+  typeshor->SetItem ("FCTBR",134);
+  typeshor->SetItem ("FBSR",135);
+  typeshor->SetItem ("FLARST",136);
+  typeshor->SetItem ("FASC",137);
+  typeshor->SetItem ("FASH",138);
+  typeshor->SetItem ("FASTSW",139);
+  typeshor->SetItem ("FAST",140);
   typeshor->SetItem ("FNDFTR",141);
   typeshor->SetItem ("GBSSR",146);
   typeshor->SetItem ("GBWSR",147);
@@ -2758,8 +2817,12 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
   typeshor->SetItem ("GMTST",145);
   typeshor->SetItem ("GC",148);
   typeshor->SetItem ("GUAC",149);
+  typeshor->SetItem ("GRPASS",151);
+  typeshor->SetItem ("GRPRLT",152);
+  typeshor->SetItem ("HLSPSL",153);
   typeshor->SetItem ("HYPRBL",154);
   typeshor->SetItem ("INTCRV",155);
+  typeshor->SetItem ("INVSBL",156);
   typeshor->SetItem ("ITDFTR",354);
   typeshor->SetItem ("LMWU",157);
   typeshor->SetItem ("LNGUNT",158);
@@ -2770,6 +2833,8 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
   typeshor->SetItem ("MNSLBR",162);
   typeshor->SetItem ("MSSR",163);
   typeshor->SetItem ("MPPITM",164);
+  typeshor->SetItem ("MDGPA",166);
+  typeshor->SetItem ("MDGPR",167);
 //203  typeshor->SetItem ("MMWU",MASS_MEASURE_WITH_UNIT);
 //203  typeshor->SetItem ("MSSUNT",MASS_UNIT);
   typeshor->SetItem ("MSWTUN",165);
@@ -2779,9 +2844,12 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
 //203  typeshor->SetItem ("OFCR2D",OFFSET_CURVE_2D);
   typeshor->SetItem ("OFCR3D",171);
   typeshor->SetItem ("OFFSRF",172);
+  typeshor->SetItem ("ODRF",173);
   typeshor->SetItem ("OPNSHL",174);
   typeshor->SetItem ("ORDDT",175);
   typeshor->SetItem ("ORGNZT",176);
+  typeshor->SetItem ("ORGASS",177);
+  typeshor->SetItem ("ORGRL",178);
   typeshor->SetItem ("ORGADD",179);
 //203  typeshor->SetItem ("ORGPRJ",ORGANIZATIONAL_PROJECT);
 //203  typeshor->SetItem ("ORGRLT",ORGANIZATION_RELATIONSHIP);
@@ -2791,14 +2859,17 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
   typeshor->SetItem ("OROPSH",183);
   typeshor->SetItem ("ORNPTH",184);
   typeshor->SetItem ("OTBNCR",185);
+  typeshor->SetItem ("ORSI",186);
   typeshor->SetItem ("PRBL",187);
   typeshor->SetItem ("PRRPCN",188);
 
-  typeshor->SetItem ("PRSADD",195);
   typeshor->SetItem ("PRANOR",192);
   typeshor->SetItem ("PAOA",193);
   typeshor->SetItem ("PAOR",194);
+  typeshor->SetItem ("PRSADD",195);
   typeshor->SetItem ("PLCMNT",196);
+  typeshor->SetItem ("PLNBX",197);
+  typeshor->SetItem ("PLNEXT",198);
 
   typeshor->SetItem ("PAMWU",200);
   typeshor->SetItem ("PLANUN",201);
@@ -2806,8 +2877,23 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
   typeshor->SetItem ("PNONCR",203);
   typeshor->SetItem ("PNONSR",204);
   typeshor->SetItem ("PNTRPL",205);
-  typeshor->SetItem ("PLYLN",208);
+  typeshor->SetItem ("PNTSTY",206);
   typeshor->SetItem ("PLYLP",207);
+  typeshor->SetItem ("PLYLN",208);
+  typeshor->SetItem ("PRDFCL",209);
+  typeshor->SetItem ("PDCF",210);
+  typeshor->SetItem ("PRDFIT",211);
+  typeshor->SetItem ("PRDFSY",212);
+  typeshor->SetItem ("PDTF",213);
+  typeshor->SetItem ("PRSAR",214);
+  typeshor->SetItem ("PRLYAS",215);
+  typeshor->SetItem ("PRSRPR",216);
+  typeshor->SetItem ("PRSST",217);
+  typeshor->SetItem ("PRSSZ",218);
+  typeshor->SetItem ("PRSTAS",219);
+  typeshor->SetItem ("PSBC",220);
+  typeshor->SetItem ("PRSVW",221);
+  typeshor->SetItem ("PRSITM",222);
   typeshor->SetItem ("PRDCT",223);
   typeshor->SetItem ("PRDCTG",224);
 //203  typeshor->SetItem ("PRCTRL",PRODUCT_CATEGORY_RELATIONSHIP);
@@ -2830,16 +2916,22 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
   typeshor->SetItem ("QACU",382);
   typeshor->SetItem ("QSUNCR",236);
   typeshor->SetItem ("QSUNSR",237);
+  typeshor->SetItem ("RMWU",238);
   typeshor->SetItem ("RBSC",239);
   typeshor->SetItem ("RBSS",240);
   typeshor->SetItem ("RCCMSR",241);
   typeshor->SetItem ("RCTRSR",242);
+  typeshor->SetItem ("RPITGR",243);
   typeshor->SetItem ("RCCS",244);
   typeshor->SetItem ("RPRSNT",245);
   typeshor->SetItem ("RPRCNT",246);
   typeshor->SetItem ("RPRITM",247);
   typeshor->SetItem ("RPRMP",248);
   typeshor->SetItem ("RPRRLT",249);
+  typeshor->SetItem ("RVARSL",250);
+  typeshor->SetItem ("RGANWD",251);
+  typeshor->SetItem ("RGCRCN",252);
+  typeshor->SetItem ("RGCRCY",253);
   typeshor->SetItem ("RRWT",388);
   typeshor->SetItem ("SMCRV",254);
   typeshor->SetItem ("SCRCLS",255);
@@ -2858,8 +2950,10 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
   typeshor->SetItem ("SAMWU",265);
   typeshor->SetItem ("SLANUN",336);
   typeshor->SetItem ("SLDMDL",266);
+  typeshor->SetItem ("SLDRPL",267);
   typeshor->SetItem ("SHUO",383);
   typeshor->SetItem ("SPHSRF",269);
+  typeshor->SetItem ("STYITM",270);
 //203  typeshor->SetItem ("STRRQS",START_REQUEST);
 //203  typeshor->SetItem ("STRWRK",START_WORK);
   typeshor->SetItem ("SPPRRL",385);
@@ -2869,10 +2963,35 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
   typeshor->SetItem ("SROFRV",274);
   typeshor->SetItem ("SRFPTC",275);
   typeshor->SetItem ("SRFRPL",276);
+  typeshor->SetItem ("SRSDST",277);
+  typeshor->SetItem ("SRSTBN",278);
+  typeshor->SetItem ("SSCG",279);
+  typeshor->SetItem ("SSFA",280);
+  typeshor->SetItem ("SSPL",281);
+  typeshor->SetItem ("SSSC",282);
+  typeshor->SetItem ("SRSTSL",283);
+  typeshor->SetItem ("SRSTUS",284);
+  typeshor->SetItem ("SWARSL",285);
   typeshor->SetItem ("SWPSRF",286);
+  typeshor->SetItem ("SYMCLR",287);
+  typeshor->SetItem ("SYMRPR",288);
+  typeshor->SetItem ("SYRPMP",289);
+  typeshor->SetItem ("SYMSTY",290);
+  typeshor->SetItem ("SYMTRG",291);
+  typeshor->SetItem ("TRMSYM",294);
+  typeshor->SetItem ("TXTLTR",295);
+  typeshor->SetItem ("TLWAC",296);
+  typeshor->SetItem ("TLWBB",297);
+  typeshor->SetItem ("TLWD",298);
+  typeshor->SetItem ("TLWE",299);
+  typeshor->SetItem ("TXTSTY",300);
+  typeshor->SetItem ("TSFDF",301);
+  typeshor->SetItem ("TSWBC",302);
+  typeshor->SetItem ("TSWM",303);
   typeshor->SetItem ("TPRPIT",304);
   typeshor->SetItem ("TRDSRF",305);
   typeshor->SetItem ("TRMCRV",308);
+  typeshor->SetItem ("TDRF",309);
   typeshor->SetItem ("UMWU",310);
   typeshor->SetItem ("UNFCRV",311);
   typeshor->SetItem ("UNFSRF",312);
@@ -2884,8 +3003,32 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
 //203  typeshor->SetItem ("VRTSHL",VERTEX_SHELL);
 //203  typeshor->SetItem ("VMWU",VOLUME_MEASURE_WITH_UNIT);
 //203  typeshor->SetItem ("VLMUNT",VOLUME_UNIT);
+  typeshor->SetItem ("VWVLM",317);
   typeshor->SetItem ("WOYADD",318);
+  typeshor->SetItem ("TMWU",341);
+  typeshor->SetItem ("RTUNT",342);
+  typeshor->SetItem ("TMUNT",343);
+  typeshor->SetItem ("CI3WS",350);
+  typeshor->SetItem ("CTO2",351);
+  typeshor->SetItem ("DRVUNT",352);
+  typeshor->SetItem ("DRUNEL",353);
+  typeshor->SetItem ("PRITRP",355);
+  typeshor->SetItem ("MFUO",378);
 //203  typeshor->SetItem ("WRSHL",WIRE_SHELL);
+  typeshor->SetItem ("MTRDSG",390);
+  typeshor->SetItem ("ADATA",392);
+  typeshor->SetItem ("APDTAS",393);
+  typeshor->SetItem ("APGRAS",395);
+  typeshor->SetItem ("APORAS",396);
+  typeshor->SetItem ("APAOA",397);
+  typeshor->SetItem ("APPRIT",398);
+  typeshor->SetItem ("ASCA",399);
+  typeshor->SetItem ("APDCRF",400);
+  typeshor->SetItem ("DCMFL",401);
+  typeshor->SetItem ("CHROBJ",402);
+  typeshor->SetItem ("EXFCSL",403);
+  typeshor->SetItem ("RVFCSL",404);
+  typeshor->SetItem ("SWFCSL",405);
 
   // Added by ABV 08.09.99 for CAX TRJ 2 (validation properties)
   typeshor->SetItem ("MSRPIT",406);
@@ -2921,8 +3064,57 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
   typeshor->SetItem ("VRACRQ",438);
   typeshor->SetItem ("PRCTRL",439);
   typeshor->SetItem ("ACRQSL",440);
-//  typeshor->SetItem ("DM??",441);
-
+  typeshor->SetItem ("DRGMDL",441);
+  typeshor->SetItem ("ANGLCT",442);
+  typeshor->SetItem ("ANGSZ",443);
+  typeshor->SetItem ("DMCHRP",444);
+  typeshor->SetItem ("DMNLCT",445);
+  typeshor->SetItem ("DLWP",446);
+  typeshor->SetItem ("DMNSZ",447);
+  typeshor->SetItem ("DSWP",448);
+  typeshor->SetItem ("SHDMRP",449);
+  typeshor->SetItem ("DCRPTY",450);
+  typeshor->SetItem ("OBJRL",451);
+  typeshor->SetItem ("RLASS",452);
+  typeshor->SetItem ("IDNRL",453);
+  typeshor->SetItem ("IDNASS",454);
+  typeshor->SetItem ("EXIDAS",455);
+  typeshor->SetItem ("EFFASS",456);
+  typeshor->SetItem ("NMASS",457);
+  typeshor->SetItem ("GNRPRP",458);
+  typeshor->SetItem ("EDGP",461);
+  typeshor->SetItem ("AEIA",462);
+  typeshor->SetItem ("CMSHAS",470);
+  typeshor->SetItem ("DRSHAS",471);
+  typeshor->SetItem ("EXTNSN",472);
+  typeshor->SetItem ("DRDMLC",473);
+  typeshor->SetItem ("LMANFT",474);
+  typeshor->SetItem ("TLRVL",475);
+  typeshor->SetItem ("MSRQLF",476);
+  typeshor->SetItem ("PLMNTL",477);
+  typeshor->SetItem ("PRCQLF",478);
+  typeshor->SetItem ("TYPQLF",479);
+  typeshor->SetItem ("QLRPIT", 480);
+  typeshor->SetItem ("CMRPIT", 482);
+  typeshor->SetItem ("CMRPIT", 483);
+  typeshor->SetItem ("CMS0", 485);
+  typeshor->SetItem ("CNEDST", 486);
+  typeshor->SetItem ("EBWM", 488);
+  typeshor->SetItem ("EBWSR", 489);
+  typeshor->SetItem ("NMSSR", 491);
+  typeshor->SetItem ("ORNSRF", 492);
+  typeshor->SetItem ("SBFC", 493);
+  typeshor->SetItem ("SBDG", 494);
+  typeshor->SetItem ("CFSS", 496);
+  typeshor->SetItem ("MSSUNT", 501);
+  typeshor->SetItem ("THTMUN", 502);
+  typeshor->SetItem ("DTENV", 565);
+  typeshor->SetItem ("MTPRRP", 566);
+  typeshor->SetItem ("PRDFR", 567);
+  typeshor->SetItem ("MTRPRP", 569);
+  typeshor->SetItem ("PDFR", 573);
+  typeshor->SetItem ("DCP1", 600);
+  typeshor->SetItem ("DCPREQ", 601);
 //  typeshor->SetItem (AngularLocation);
 //  typeshor->SetItem (AngularSize);
 //  typeshor->SetItem (DimensionalCharacteristicRepresentation);
@@ -2931,8 +3123,49 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
 //  typeshor->SetItem (DimensionalSize);
 //  typeshor->SetItem (DimensionalSizeWithPath);
 //  typeshor->SetItem (ShapeDimensionRepresentation);
-
+  typeshor->SetItem ("CYLTLR", 609);
+  typeshor->SetItem ("SRWP", 610);
+  typeshor->SetItem ("ANGTLR", 611);
+  typeshor->SetItem ("CNCTLR", 612);
+  typeshor->SetItem ("CRRNTL", 613);
+  typeshor->SetItem ("CXLTLR", 614);
+  typeshor->SetItem ("FLTTLR", 615);
+  typeshor->SetItem ("LNP0", 616);
+  typeshor->SetItem ("PRLTLR", 617);
+  typeshor->SetItem ("PRPTLR", 618);
+  typeshor->SetItem ("PSTTLR", 619);
+  typeshor->SetItem ("RNDTLR", 620);
+  typeshor->SetItem ("STRTLR", 621);
+  typeshor->SetItem ("SRPRTL", 622);
+  typeshor->SetItem ("SYMTLR", 623);
+  typeshor->SetItem ("TTRNTL", 624);
+  typeshor->SetItem ("GMTTLR", 625);
+  typeshor->SetItem ("GMTLRL", 626);
+  typeshor->SetItem ("GTWDR", 627);
+  typeshor->SetItem ("MDGMTL", 628);
+  typeshor->SetItem ("DTMFTR", 630);
+  typeshor->SetItem ("DTMRFR", 631);
+  typeshor->SetItem ("CMMDTM", 632);
+  typeshor->SetItem ("DTMTRG", 633);
+  typeshor->SetItem ("PDT0", 634);
   typeshor->SetItem ("MMWU",651);
+  typeshor->SetItem ("CNOFSY",661);
+  typeshor->SetItem ("GMTALG",662);
+  typeshor->SetItem ("PRPT",663);
+  typeshor->SetItem ("TNGNT",664);
+  typeshor->SetItem ("PRLOFF",665);
+  typeshor->SetItem ("GISU",666);
+  typeshor->SetItem ("IDATT",667);
+  typeshor->SetItem ("IIRU",668);
+  typeshor->SetItem ("GTWDU",674);
+  typeshor->SetItem ("PRZNDF",679);
+  typeshor->SetItem ("RNZNDF",680);
+  typeshor->SetItem ("RNZNOR",681);
+  typeshor->SetItem ("TLRZN",682);
+  typeshor->SetItem ("TLZNDF",683);
+  typeshor->SetItem ("TLZNFR",684);
+  typeshor->SetItem ("INRPIT",700);
+  typeshor->SetItem ("VLRPIT",701);
     
 }
 
index 08b3042..1647342 100644 (file)
@@ -35,7 +35,7 @@ void RWStepBasic_RWConversionBasedUnitAndPlaneAngleUnit::ReadStep
         // sln 09.10.2001. BUC61003. Correction of looking for items of complex entity in case of them  do not saticfy to alphabetical order
         // CONVERSION_BASED_UNIT
        Standard_Integer num = 0;//num0;
-       data->NamedForComplex("CONVERSION_BASED_UNIT CNBSUN",num0,num,ach);
+       data->NamedForComplex("CONVERSION_BASED_UNIT", "CNBSUN",num0,num,ach);
        if (!data->CheckNbParams(num,2,ach,"conversion_based_unit")) return;
                Handle(TCollection_HAsciiString) aName;
        data->ReadString (num,1,"name",ach,aName);
@@ -44,14 +44,14 @@ void RWStepBasic_RWConversionBasedUnitAndPlaneAngleUnit::ReadStep
         
         // NAMED_UNIT
         //num = 0; //gka TRJ9 c2-id-214.stp
-       data->NamedForComplex("NAMED_UNIT NMDUNT",num0,num,ach);
+       data->NamedForComplex("NAMED_UNIT", "NMDUNT",num0,num,ach);
         if (!data->CheckNbParams(num,1,ach,"named_unit")) return;
        Handle(StepBasic_DimensionalExponents) aDimensions;
        data->ReadEntity(num, 1,"dimensions", ach, STANDARD_TYPE(StepBasic_DimensionalExponents), aDimensions);
 
         // PLANE_ANGLE_UNIT
         //num = 0; //gka
-       data->NamedForComplex("PLANE_ANGLE_UNIT PLANUN",num0,num,ach);
+       data->NamedForComplex("PLANE_ANGLE_UNIT", "PLANUN",num0,num,ach);
         if (!data->CheckNbParams(num,0,ach,"plane_angle_unit")) return;
         
        ent->Init(aDimensions,aName,aConversionFactor);
index f254cb5..373b507 100644 (file)
@@ -48,7 +48,7 @@ void RWStepBasic_RWConversionBasedUnitAndVolumeUnit::ReadStep(const Handle(StepD
   Handle(StepBasic_DimensionalExponents) aDimensions;
   data->ReadEntity(num, 1,"dimensions", ach, STANDARD_TYPE(StepBasic_DimensionalExponents), aDimensions);
   
-  data->NamedForComplex("VOLUME_UNIT",num0,num,ach);
+  data->NamedForComplex("VOLUME_UNIT","VLMUNT",num0,num,ach);
   if (!data->CheckNbParams(num,0,ach,"volume_unit")) return;
   
   ent->Init(aDimensions,aName,aConversionFactor);
index 235a965..650817d 100644 (file)
@@ -34,15 +34,15 @@ void RWStepBasic_RWSiUnitAndAreaUnit::ReadStep(const Handle(StepData_StepReaderD
                                               const Handle(StepBasic_SiUnitAndAreaUnit)& ent) const
 {
   Standard_Integer num = 0;
-  data->NamedForComplex("AREA_UNIT",num0,num,ach);
+  data->NamedForComplex("AREA_UNIT","ARUNT",num0,num,ach);
   if (!data->CheckNbParams(num,0,ach,"area_unit")) return;
 
-  data->NamedForComplex("NAMED_UNIT NMDUNT",num0,num,ach);
+  data->NamedForComplex("NAMED_UNIT", "NMDUNT",num0,num,ach);
   if (!data->CheckNbParams(num,1,ach,"named_unit")) return;
   Handle(StepBasic_DimensionalExponents) aDimensions;
   data->ReadEntity(num, 1,"dimensions", ach, STANDARD_TYPE(StepBasic_DimensionalExponents), aDimensions);
   
-  data->NamedForComplex("SI_UNIT SUNT",num0,num,ach);
+  data->NamedForComplex("SI_UNIT", "SUNT",num0,num,ach);
   if (!data->CheckNbParams(num,2,ach,"si_unit")) return;
   
   RWStepBasic_RWSiUnit reader;
index 97b90a7..ba0640d 100644 (file)
@@ -35,13 +35,13 @@ void RWStepBasic_RWSiUnitAndLengthUnit::ReadStep(const Handle(StepData_StepReade
                                                 const Handle(StepBasic_SiUnitAndLengthUnit)& ent) const
 {
   Standard_Integer num = 0;  // num0;
-  Standard_Boolean sorted = data->NamedForComplex("LENGTH_UNIT LNGUNT",num0,num,ach);
+  Standard_Boolean sorted = data->NamedForComplex("LENGTH_UNIT", "LNGUNT",num0,num,ach);
 
   // --- Instance of plex componant LengthUnit ---
   if (!data->CheckNbParams(num,0,ach,"length_unit")) return;
 
   if (!sorted) num = 0; //pdn unsorted case 
-  sorted &=data->NamedForComplex("NAMED_UNIT NMDUNT",num0,num,ach);
+  sorted &=data->NamedForComplex("NAMED_UNIT", "NMDUNT",num0,num,ach);
 
   // --- Instance of common supertype NamedUnit ---
   if (!data->CheckNbParams(num,1,ach,"named_unit")) return;
@@ -52,7 +52,7 @@ void RWStepBasic_RWSiUnitAndLengthUnit::ReadStep(const Handle(StepData_StepReade
   data->CheckDerived(num,1,"dimensions",ach,Standard_False);
 
   if (!sorted) num = 0; //pdn unsorted case 
-  data->NamedForComplex("SI_UNIT SUNT",num0,num,ach);
+  data->NamedForComplex("SI_UNIT", "SUNT",num0,num,ach);
 
   // --- Instance of plex componant SiUnit ---
   if (!data->CheckNbParams(num,2,ach,"si_unit")) return;
index 3e505f1..dcc95f7 100644 (file)
@@ -44,13 +44,13 @@ void RWStepBasic_RWSiUnitAndMassUnit::ReadStep(const Handle(StepData_StepReaderD
                                                const Handle(StepBasic_SiUnitAndMassUnit)& ent) const
 {
   Standard_Integer num = 0;  // num0;
-  Standard_Boolean sorted = data->NamedForComplex("MASS_UNIT",num0,num,ach);
+  Standard_Boolean sorted = data->NamedForComplex("MASS_UNIT","MSSUNT",num0,num,ach);
 
   // --- Instance of plex componant LengthUnit ---
   if (!data->CheckNbParams(num,0,ach,"mass_unit")) return;
 
   if (!sorted) num = 0; //pdn unsorted case 
-  sorted &=data->NamedForComplex("NAMED_UNIT NMDUNT",num0,num,ach);
+  sorted &=data->NamedForComplex("NAMED_UNIT", "NMDUNT",num0,num,ach);
 
   // --- Instance of common supertype NamedUnit ---
   if (!data->CheckNbParams(num,1,ach,"named_unit")) return;
@@ -61,7 +61,7 @@ void RWStepBasic_RWSiUnitAndMassUnit::ReadStep(const Handle(StepData_StepReaderD
   data->CheckDerived(num,1,"dimensions",ach,Standard_False);
 
   if (!sorted) num = 0; //pdn unsorted case 
-  data->NamedForComplex("SI_UNIT SUNT",num0,num,ach);
+  data->NamedForComplex("SI_UNIT", "SUNT",num0,num,ach);
 
   // --- Instance of plex componant SiUnit ---
   if (!data->CheckNbParams(num,2,ach,"si_unit")) return;
index 2cdb06f..958d92a 100644 (file)
@@ -34,12 +34,12 @@ void RWStepBasic_RWSiUnitAndVolumeUnit::ReadStep(const Handle(StepData_StepReade
                                                 const Handle(StepBasic_SiUnitAndVolumeUnit)& ent) const
 {
   Standard_Integer num = 0;
-  data->NamedForComplex("NAMED_UNIT NMDUNT",num0,num,ach);
+  data->NamedForComplex("NAMED_UNIT", "NMDUNT",num0,num,ach);
   if (!data->CheckNbParams(num,1,ach,"named_unit")) return;
   Handle(StepBasic_DimensionalExponents) aDimensions;
   data->ReadEntity(num, 1,"dimensions", ach, STANDARD_TYPE(StepBasic_DimensionalExponents), aDimensions);
   
-  data->NamedForComplex("SI_UNIT SUNT",num0,num,ach);
+  data->NamedForComplex("SI_UNIT", "SUNT",num0,num,ach);
   if (!data->CheckNbParams(num,2,ach,"si_unit")) return;
   
   RWStepBasic_RWSiUnit reader;
@@ -73,7 +73,7 @@ void RWStepBasic_RWSiUnitAndVolumeUnit::ReadStep(const Handle(StepData_StepReade
     return;
   }
   
-  data->NamedForComplex("VOLUME_UNIT",num0,num,ach);
+  data->NamedForComplex("VOLUME_UNIT","VLMUNT",num0,num,ach);
   if (!data->CheckNbParams(num,0,ach,"volume_unit")) return;
   
   ent->Init(hasAprefix,aPrefix,aName);
index 6dc02bc..0233192 100644 (file)
@@ -47,7 +47,7 @@ void RWStepDimTol_RWGeoTolAndGeoTolWthDatRef::ReadStep
    const Handle(StepDimTol_GeoTolAndGeoTolWthDatRef)& ent) const
 {
   Standard_Integer num = 0;//num0;
-  data->NamedForComplex("GEOMETRIC_TOLERANCE",num0,num,ach);
+  data->NamedForComplex("GEOMETRIC_TOLERANCE","GMTTLR",num0,num,ach);
   if (!data->CheckNbParams(num,4,ach,"geometric_tolerance")) return;
   // Own fields of GeometricTolerance
   Handle(TCollection_HAsciiString) aName;
@@ -59,7 +59,7 @@ void RWStepDimTol_RWGeoTolAndGeoTolWthDatRef::ReadStep
   StepDimTol_GeometricToleranceTarget aTolerancedShapeAspect;
   data->ReadEntity (num, 4, "toleranced_shape_aspect", ach, aTolerancedShapeAspect);
 
-  data->NamedForComplex("GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE",num0,num,ach);
+  data->NamedForComplex("GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE","GTWDR",num0,num,ach);
   // Own fields of GeometricToleranceWithDatumReference
   Handle(StepDimTol_HArray1OfDatumSystemOrReference) aDatumSystem;
   Standard_Integer sub5 = 0;
index 96a0a32..d9ee750 100644 (file)
@@ -48,7 +48,7 @@ void RWStepDimTol_RWGeoTolAndGeoTolWthDatRefAndGeoTolWthMod::ReadStep
    const Handle(StepDimTol_GeoTolAndGeoTolWthDatRefAndGeoTolWthMod)& ent) const
 {
   Standard_Integer num = 0;//num0;
-  data->NamedForComplex("GEOMETRIC_TOLERANCE",num0,num,ach);
+  data->NamedForComplex("GEOMETRIC_TOLERANCE","GMTTLR",num0,num,ach);
   if (!data->CheckNbParams(num,4,ach,"geometric_tolerance")) return;
   // Own fields of GeometricTolerance
   Handle(TCollection_HAsciiString) aName;
@@ -60,7 +60,7 @@ void RWStepDimTol_RWGeoTolAndGeoTolWthDatRefAndGeoTolWthMod::ReadStep
   StepDimTol_GeometricToleranceTarget aTolerancedShapeAspect;
   data->ReadEntity (num, 4, "toleranced_shape_aspect", ach, aTolerancedShapeAspect);
 
-  data->NamedForComplex("GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE",num0,num,ach);
+  data->NamedForComplex("GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE","GTWDR",num0,num,ach);
   // Own fields of GeometricToleranceWithDatumReference
   Handle(StepDimTol_HArray1OfDatumSystemOrReference) aDatumSystem;
   Standard_Integer sub5 = 0;
index ab43867..42e1d20 100644 (file)
@@ -46,7 +46,7 @@ void RWStepDimTol_RWGeoTolAndGeoTolWthDatRefAndModGeoTolAndPosTol::ReadStep
    const Handle(StepDimTol_GeoTolAndGeoTolWthDatRefAndModGeoTolAndPosTol)& ent) const
 {
   Standard_Integer num = 0;//num0;
-  data->NamedForComplex("GEOMETRIC_TOLERANCE",num0,num,ach);
+  data->NamedForComplex("GEOMETRIC_TOLERANCE","GMTTLR",num0,num,ach);
   if (!data->CheckNbParams(num,4,ach,"geometric_tolerance")) return;
   // Own fields of GeometricTolerance
   Handle(TCollection_HAsciiString) aName;
@@ -58,7 +58,7 @@ void RWStepDimTol_RWGeoTolAndGeoTolWthDatRefAndModGeoTolAndPosTol::ReadStep
   StepDimTol_GeometricToleranceTarget aTolerancedShapeAspect;
   data->ReadEntity (num, 4, "toleranced_shape_aspect", ach, aTolerancedShapeAspect);
 
-  data->NamedForComplex("GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE",num0,num,ach);
+  data->NamedForComplex("GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE","GTWDR",num0,num,ach);
   // Own fields of GeometricToleranceWithDatumReference
   Handle(StepDimTol_HArray1OfDatumSystemOrReference) aDatumSystem;
   Standard_Integer sub5 = 0;
@@ -77,7 +77,7 @@ void RWStepDimTol_RWGeoTolAndGeoTolWthDatRefAndModGeoTolAndPosTol::ReadStep
     new StepDimTol_GeometricToleranceWithDatumReference;
   GTWDR->SetDatumSystem(aDatumSystem);
 
-  data->NamedForComplex("MODIFIED_GEOMETRIC_TOLERANCE",num0,num,ach);
+  data->NamedForComplex("MODIFIED_GEOMETRIC_TOLERANCE","MDGMTL",num0,num,ach);
   // Own fields of ModifiedGeometricTolerance
   StepDimTol_LimitCondition aModifier = StepDimTol_MaximumMaterialCondition;
   if (data->ParamType (num, 1) == Interface_ParamEnum) {
index 5099603..32dbc1d 100644 (file)
@@ -49,7 +49,7 @@ void RWStepDimTol_RWGeoTolAndGeoTolWthDatRefAndUneqDisGeoTol::ReadStep
    const Handle(StepDimTol_GeoTolAndGeoTolWthDatRefAndUneqDisGeoTol)& ent) const
 {
   Standard_Integer num = 0;//num0;
-  data->NamedForComplex("GEOMETRIC_TOLERANCE",num0,num,ach);
+  data->NamedForComplex("GEOMETRIC_TOLERANCE","GMTTLR",num0,num,ach);
   if (!data->CheckNbParams(num,4,ach,"geometric_tolerance")) return;
   // Own fields of GeometricTolerance
   Handle(TCollection_HAsciiString) aName;
@@ -61,7 +61,7 @@ void RWStepDimTol_RWGeoTolAndGeoTolWthDatRefAndUneqDisGeoTol::ReadStep
   StepDimTol_GeometricToleranceTarget aTolerancedShapeAspect;
   data->ReadEntity (num, 4, "toleranced_shape_aspect", ach, aTolerancedShapeAspect);
 
-  data->NamedForComplex("GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE",num0,num,ach);
+  data->NamedForComplex("GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE","GTWDR",num0,num,ach);
   // Own fields of GeometricToleranceWithDatumReference
   Handle(StepDimTol_HArray1OfDatumSystemOrReference) aDatumSystem;
   Standard_Integer sub5 = 0;
index dcba7d4..93ee607 100644 (file)
@@ -45,7 +45,7 @@ void RWStepDimTol_RWGeoTolAndGeoTolWthMod::ReadStep
    const Handle(StepDimTol_GeoTolAndGeoTolWthMod)& ent) const
 {
   Standard_Integer num = 0;//num0;
-  data->NamedForComplex("GEOMETRIC_TOLERANCE",num0,num,ach);
+  data->NamedForComplex("GEOMETRIC_TOLERANCE","GMTTLR",num0,num,ach);
   if (!data->CheckNbParams(num,4,ach,"geometric_tolerance")) return;
   // Own fields of GeometricTolerance
   Handle(TCollection_HAsciiString) aName;
index 8da2b2f..63d4a18 100644 (file)
@@ -57,16 +57,12 @@ void RWStepGeom_RWBSplineCurveWithKnotsAndRationalBSplineCurve::ReadStep
 
 // sln 04.10.2001. BUC61003. Correction of looking for items of complex entity
        Standard_Integer num = 0;  // num0
-       data->NamedForComplex("BOUNDED_CURVE BNDCRV",num0,num,ach);
-
-       // --- Instance of plex componant BoundedCurve ---
-
-       if (!data->CheckNbParams(num,0,ach,"bounded_curve")) return;
+       data->NamedForComplex("BOUNDED_CURVE", "BNDCRV",num0,num,ach);
 
 //     num = data->NextForComplex(num);
 // sln 04.10.2001. BUC61003. Correction of looking for items of complex entity
 //        num =  0; gka TRJ9
-        data->NamedForComplex("B_SPLINE_CURVE BSPCR",num0,num,ach);
+  data->NamedForComplex("B_SPLINE_CURVE", "BSPCR",num0,num,ach);
 
        // --- Instance of common supertype BSplineCurve ---
 
@@ -125,7 +121,7 @@ void RWStepGeom_RWBSplineCurveWithKnotsAndRationalBSplineCurve::ReadStep
 //     num = data->NextForComplex(num);
 // sln 04.10.2001. BUC61003. Correction of looking for items of complex entity
 //        num =  0; //gka TRJ9
-       data->NamedForComplex("B_SPLINE_CURVE_WITH_KNOTS BSCWK",num0,num,ach);
+       data->NamedForComplex("B_SPLINE_CURVE_WITH_KNOTS", "BSCWK",num0,num,ach);
 
        // --- Instance of plex componant BSplineCurveWithKnots ---
 
@@ -179,23 +175,15 @@ void RWStepGeom_RWBSplineCurveWithKnotsAndRationalBSplineCurve::ReadStep
 //        num =  0; gka TRJ9
        data->NamedForComplex("CURVE",num0,num,ach);
 
-       // --- Instance of plex componant Curve ---
-
-       if (!data->CheckNbParams(num,0,ach,"curve")) return;
-
 //     num = data->NextForComplex(num);
 // sln 04.10.2001. BUC61003. Correction of looking for items of complex entity
         //num =  0;
-       data->NamedForComplex("GEOMETRIC_REPRESENTATION_ITEM GMRPIT",num0,num,ach);
-
-       // --- Instance of plex componant GeometricRepresentationItem ---
-
-       if (!data->CheckNbParams(num,0,ach,"geometric_representation_item")) return;
+       data->NamedForComplex("GEOMETRIC_REPRESENTATION_ITEM", "GMRPIT",num0,num,ach);
 
 //     num = data->NextForComplex(num);
 // sln 04.10.2001. BUC61003. Correction of looking for items of complex entity
         //num =  0;
-       data->NamedForComplex("RATIONAL_B_SPLINE_CURVE RBSC",num0,num,ach);
+       data->NamedForComplex("RATIONAL_B_SPLINE_CURVE", "RBSC",num0,num,ach);
 
        // --- Instance of plex componant RationalBSplineCurve ---
 
@@ -219,7 +207,7 @@ void RWStepGeom_RWBSplineCurveWithKnotsAndRationalBSplineCurve::ReadStep
 //     num = data->NextForComplex(num);
 // sln 04.10.2001. BUC61003. Correction of looking for items of complex entity
         //num =  0;
-       data->NamedForComplex("REPRESENTATION_ITEM RPRITM",num0,num,ach);
+       data->NamedForComplex("REPRESENTATION_ITEM", "RPRITM",num0,num,ach);
 
        // --- Instance of plex componant RepresentationItem ---
 
index 3270f58..35116e3 100644 (file)
@@ -61,14 +61,10 @@ void RWStepGeom_RWBSplineSurfaceWithKnotsAndRationalBSplineSurface::ReadStep
 {
 
        Standard_Integer num = 0;    // num0
-       data->NamedForComplex("BOUNDED_SURFACE BNDSRF",num0,num,ach);
-
-       // --- Instance of plex componant BoundedSurface ---
-
-       if (!data->CheckNbParams(num,0,ach,"bounded_surface")) return;
+       data->NamedForComplex("BOUNDED_SURFACE", "BNDSRF",num0,num,ach);
 
 //     num = data->NextForComplex(num);
-       data->NamedForComplex("B_SPLINE_SURFACE BSPSR",num0,num,ach);
+       data->NamedForComplex("B_SPLINE_SURFACE", "BSPSR",num0,num,ach);
 
        // --- Instance of common supertype BSplineSurface ---
 
@@ -149,7 +145,7 @@ void RWStepGeom_RWBSplineSurfaceWithKnotsAndRationalBSplineSurface::ReadStep
        data->ReadLogical (num,7,"self_intersect",ach,aSelfIntersect);
 
 //     num = data->NextForComplex(num);
-       data->NamedForComplex("B_SPLINE_SURFACE_WITH_KNOTS BSSWK",num0,num,ach);
+       data->NamedForComplex("B_SPLINE_SURFACE_WITH_KNOTS", "BSSWK",num0,num,ach);
 
        // --- Instance of plex componant BSplineSurfaceWithKnots ---
 
@@ -229,14 +225,10 @@ void RWStepGeom_RWBSplineSurfaceWithKnotsAndRationalBSplineSurface::ReadStep
        else ach->AddFail("Parameter #5 (knot_spec) is not an enumeration");
 
 //     num = data->NextForComplex(num);
-       data->NamedForComplex("GEOMETRIC_REPRESENTATION_ITEM GMRPIT",num0,num,ach);
-
-       // --- Instance of plex componant GeometricRepresentationItem ---
-
-       if (!data->CheckNbParams(num,0,ach,"geometric_representation_item")) return;
+       data->NamedForComplex("GEOMETRIC_REPRESENTATION_ITEM", "GMRPIT",num0,num,ach);
 
 //     num = data->NextForComplex(num);
-       data->NamedForComplex("RATIONAL_B_SPLINE_SURFACE RBSS",num0,num,ach);
+       data->NamedForComplex("RATIONAL_B_SPLINE_SURFACE", "RBSS",num0,num,ach);
 
        // --- Instance of plex componant RationalBSplineSurface ---
 
@@ -265,7 +257,7 @@ void RWStepGeom_RWBSplineSurfaceWithKnotsAndRationalBSplineSurface::ReadStep
        }
 
 //     num = data->NextForComplex(num);
-       data->NamedForComplex("REPRESENTATION_ITEM RPRITM",num0,num,ach);
+       data->NamedForComplex("REPRESENTATION_ITEM", "RPRITM",num0,num,ach);
 
        // --- Instance of plex componant RepresentationItem ---
 
@@ -278,11 +270,7 @@ void RWStepGeom_RWBSplineSurfaceWithKnotsAndRationalBSplineSurface::ReadStep
        data->ReadString (num,1,"name",ach,aName);
 
 //     num = data->NextForComplex(num);
-       data->NamedForComplex("SURFACE SRFC",num0,num,ach);
-
-       // --- Instance of plex componant Surface ---
-
-       if (!data->CheckNbParams(num,0,ach,"surface")) return;
+       data->NamedForComplex("SURFACE", "SRFC",num0,num,ach);
 
        //--- Initialisation of the red entity ---
 
index 04ef761..1b6bc28 100644 (file)
@@ -42,7 +42,7 @@ void RWStepRepr_RWCompGroupShAspAndCompShAspAndDatumFeatAndShAsp::ReadStep
    const Handle(StepRepr_CompGroupShAspAndCompShAspAndDatumFeatAndShAsp)& ent) const
 {
   Standard_Integer num = 0;
-  data->NamedForComplex("SHAPE_ASPECT", num0, num, ach);
+  data->NamedForComplex("SHAPE_ASPECT","SHPASP", num0, num, ach);
   if (!data->CheckNbParams(num, 4, ach, "shape_aspect")) return;
 
   Handle(TCollection_HAsciiString) aName;
index eb69f18..885bfeb 100644 (file)
@@ -42,7 +42,7 @@ void RWStepRepr_RWCompShAspAndDatumFeatAndShAsp::ReadStep
    const Handle(StepRepr_CompShAspAndDatumFeatAndShAsp)& ent) const
 {
   Standard_Integer num = 0;
-  data->NamedForComplex("SHAPE_ASPECT", num0, num, ach);
+  data->NamedForComplex("SHAPE_ASPECT","SHPASP", num0, num, ach);
   if (!data->CheckNbParams(num, 4, ach, "shape_aspect")) return;
 
   Handle(TCollection_HAsciiString) aName;
index 156bb64..2895e17 100644 (file)
@@ -40,7 +40,7 @@ void RWStepRepr_RWReprItemAndLengthMeasureWithUnit::ReadStep
         const Handle(StepRepr_ReprItemAndLengthMeasureWithUnit)& ent) const
 {
   Standard_Integer num = 0;//num0;
-  data->NamedForComplex("MEASURE_WITH_UNIT",num0,num,ach);
+  data->NamedForComplex("MEASURE_WITH_UNIT","MSWTUN",num0,num,ach);
   if (!data->CheckNbParams(num,2,ach,"measure_with_unit")) return;
   // --- own field : valueComponent ---
   Handle(StepBasic_MeasureValueMember) mvc = new StepBasic_MeasureValueMember;
@@ -51,7 +51,7 @@ void RWStepRepr_RWReprItemAndLengthMeasureWithUnit::ReadStep
   Handle(StepBasic_MeasureWithUnit) aMeasureWithUnit = new StepBasic_MeasureWithUnit;
   aMeasureWithUnit->Init(mvc, aUnitComponent);
 
-  data->NamedForComplex("REPRESENTATION_ITEM",num0,num,ach);
+  data->NamedForComplex("REPRESENTATION_ITEM","RPRITM",num0,num,ach);
   if (!data->CheckNbParams(num,1,ach,"representation_item")) return;
   // --- own field : name ---
   Handle(TCollection_HAsciiString) aName;
index e0abd7a..6b59595 100644 (file)
@@ -44,7 +44,7 @@ void RWStepRepr_RWReprItemAndLengthMeasureWithUnitAndQRI::ReadStep
    const Handle(StepRepr_ReprItemAndLengthMeasureWithUnitAndQRI)& ent) const
 {
   Standard_Integer num = 0;//num0;
-  data->NamedForComplex("MEASURE_WITH_UNIT",num0,num,ach);
+  data->NamedForComplex("MEASURE_WITH_UNIT","MSWTUN",num0,num,ach);
   if (!data->CheckNbParams(num,2,ach,"measure_with_unit")) return;
   // --- own field : valueComponent ---
   Handle(StepBasic_MeasureValueMember) mvc = new StepBasic_MeasureValueMember;
@@ -55,7 +55,7 @@ void RWStepRepr_RWReprItemAndLengthMeasureWithUnitAndQRI::ReadStep
   Handle(StepBasic_MeasureWithUnit) aMeasureWithUnit = new StepBasic_MeasureWithUnit;
   aMeasureWithUnit->Init(mvc, aUnitComponent);
   
-  data->NamedForComplex("QUALIFIED_REPRESENTATION_ITEM",num0,num,ach);
+  data->NamedForComplex("QUALIFIED_REPRESENTATION_ITEM","QLRPIT",num0,num,ach);
   if (!data->CheckNbParams(num,1,ach,"qualified_representation_item")) return;
   // --- own field : qualifiers ---
   Handle(StepShape_HArray1OfValueQualifier) quals;
@@ -73,7 +73,7 @@ void RWStepRepr_RWReprItemAndLengthMeasureWithUnitAndQRI::ReadStep
   Handle(StepShape_QualifiedRepresentationItem) aQRI = new StepShape_QualifiedRepresentationItem();
   aQRI->SetQualifiers(quals);
 
-  data->NamedForComplex("REPRESENTATION_ITEM",num0,num,ach);
+  data->NamedForComplex("REPRESENTATION_ITEM","RPRITM",num0,num,ach);
   if (!data->CheckNbParams(num,1,ach,"representation_item")) return;
   // --- own field : name ---
   Handle(TCollection_HAsciiString) aName;
index 5a023ae..7285c11 100644 (file)
@@ -41,7 +41,7 @@ void RWStepRepr_RWReprItemAndPlaneAngleMeasureWithUnit::ReadStep
         const Handle(StepRepr_ReprItemAndPlaneAngleMeasureWithUnit)& ent) const
 {
   Standard_Integer num = 0;//num0;
-  data->NamedForComplex("MEASURE_WITH_UNIT",num0,num,ach);
+  data->NamedForComplex("MEASURE_WITH_UNIT","MSWTUN",num0,num,ach);
   if (!data->CheckNbParams(num,2,ach,"measure_with_unit")) return;
   // --- own field : valueComponent ---
   Handle(StepBasic_MeasureValueMember) mvc = new StepBasic_MeasureValueMember;
@@ -52,7 +52,7 @@ void RWStepRepr_RWReprItemAndPlaneAngleMeasureWithUnit::ReadStep
   Handle(StepBasic_MeasureWithUnit) aMeasureWithUnit = new StepBasic_MeasureWithUnit;
   aMeasureWithUnit->Init(mvc, aUnitComponent);
 
-  data->NamedForComplex("REPRESENTATION_ITEM",num0,num,ach);
+  data->NamedForComplex("REPRESENTATION_ITEM","RPRITM",num0,num,ach);
   if (!data->CheckNbParams(num,1,ach,"representation_item")) return;
   // --- own field : name ---
   Handle(TCollection_HAsciiString) aName;
index 6df252a..9e0ac51 100644 (file)
@@ -44,7 +44,7 @@ void RWStepRepr_RWReprItemAndPlaneAngleMeasureWithUnitAndQRI::ReadStep
         const Handle(StepRepr_ReprItemAndPlaneAngleMeasureWithUnitAndQRI)& ent) const
 {
   Standard_Integer num = 0;//num0;
-  data->NamedForComplex("MEASURE_WITH_UNIT",num0,num,ach);
+  data->NamedForComplex("MEASURE_WITH_UNIT","MSWTUN",num0,num,ach);
   if (!data->CheckNbParams(num,2,ach,"measure_with_unit")) return;
   // --- own field : valueComponent ---
   Handle(StepBasic_MeasureValueMember) mvc = new StepBasic_MeasureValueMember;
@@ -55,7 +55,7 @@ void RWStepRepr_RWReprItemAndPlaneAngleMeasureWithUnitAndQRI::ReadStep
   Handle(StepBasic_MeasureWithUnit) aMeasureWithUnit = new StepBasic_MeasureWithUnit;
   aMeasureWithUnit->Init(mvc, aUnitComponent);
   
-  data->NamedForComplex("QUALIFIED_REPRESENTATION_ITEM",num0,num,ach);
+  data->NamedForComplex("QUALIFIED_REPRESENTATION_ITEM","QLRPIT",num0,num,ach);
   if (!data->CheckNbParams(num,1,ach,"qualified_representation_item")) return;
   // --- own field : qualifiers ---
   Handle(StepShape_HArray1OfValueQualifier) quals;
@@ -72,7 +72,7 @@ void RWStepRepr_RWReprItemAndPlaneAngleMeasureWithUnitAndQRI::ReadStep
   Handle(StepShape_QualifiedRepresentationItem) aQRI = new StepShape_QualifiedRepresentationItem();
   aQRI->SetQualifiers(quals);
 
-  data->NamedForComplex("REPRESENTATION_ITEM",num0,num,ach);
+  data->NamedForComplex("REPRESENTATION_ITEM","RPRITM",num0,num,ach);
   if (!data->CheckNbParams(num,1,ach,"representation_item")) return;
   // --- own field : name ---
   Handle(TCollection_HAsciiString) aName;
index d00379d..26432ae 100644 (file)
@@ -37,7 +37,7 @@ void RWStepRepr_RWShapeRepresentationRelationshipWithTransformation::ReadStep
         // --- Instance of plex componant RepresentationRelationship ---
 
         Standard_Integer num = 0;  // num0;
-        data->NamedForComplex("REPRESENTATION_RELATIONSHIP RPRRLT",num0,num,ach);
+        data->NamedForComplex("REPRESENTATION_RELATIONSHIP", "RPRRLT",num0,num,ach);
 
        // --- Number of Parameter Control ---
 
@@ -70,7 +70,7 @@ void RWStepRepr_RWShapeRepresentationRelationshipWithTransformation::ReadStep
 
         // --- Instance of plex componant RepresentationRelationshipWithTransformation ---
 
-        data->NamedForComplex("REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION RRWT",num0,num,ach);
+        data->NamedForComplex("REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION", "RRWT",num0,num,ach);
        if (!data->CheckNbParams(num,1,ach,"representation_relationship_with_transformation")) return;
 
        // --- own field : transformation_operator
@@ -81,7 +81,7 @@ void RWStepRepr_RWShapeRepresentationRelationshipWithTransformation::ReadStep
 
         // --- Instance of plex componant ShapeRepresentationRelationship ---
 
-        data->NamedForComplex("SHAPE_REPRESENTATION_RELATIONSHIP SHRPRL",num0,num,ach);
+        data->NamedForComplex("SHAPE_REPRESENTATION_RELATIONSHIP", "SHRPRL",num0,num,ach);
        if (!data->CheckNbParams(num,0,ach,"shape_representation_relationship")) return;
 
        //--- Initialisation of the read entity ---
index f5bc878..267ecb0 100644 (file)
@@ -38,7 +38,7 @@ void RWStepShape_RWMeasureRepresentationItemAndQualifiedRepresentationItem::Read
   //  --- Instance of plex componant : MeasureReprItem
 
   Standard_Integer num = 0;
-  data->NamedForComplex("MEASURE_REPRESENTATION_ITEM",num0,num,ach);
+  data->NamedForComplex("MEASURE_REPRESENTATION_ITEM","MSRPIT",num0,num,ach);
 
   // --- Number of Parameter Control ---
 
@@ -55,7 +55,7 @@ void RWStepShape_RWMeasureRepresentationItemAndQualifiedRepresentationItem::Read
 
   //  --- Instance of plex componant : QualifiedReprItem
 
-  data->NamedForComplex("QUALIFIED_REPRESENTATION_ITEM",num0,num,ach);
+  data->NamedForComplex("QUALIFIED_REPRESENTATION_ITEM","QLRPIT",num0,num,ach);
 
   // --- Number of Parameter Control ---
 
@@ -78,7 +78,7 @@ void RWStepShape_RWMeasureRepresentationItemAndQualifiedRepresentationItem::Read
 
   //  --- Instance of plex componant : RepresentationItem
 
-  data->NamedForComplex("REPRESENTATION_ITEM",num0,num,ach);
+  data->NamedForComplex("REPRESENTATION_ITEM","RPRITM",num0,num,ach);
 
   if (!data->CheckNbParams(num,1,ach,"representation_item")) return;
 
index d2ee28c..ba6daae 100644 (file)
@@ -401,6 +401,43 @@ Standard_Boolean  StepData_StepReaderData::NamedForComplex
   return Standard_False;
 }
 
+//=======================================================================
+//function : NamedForComplex
+//purpose  : 
+//=======================================================================
+
+Standard_Boolean  StepData_StepReaderData::NamedForComplex
+  (const Standard_CString theName, const Standard_CString theShortName,
+   const Standard_Integer num0, Standard_Integer& num,
+   Handle(Interface_Check)& ach) const
+{
+  Standard_Integer n = (num <= 0 ? num0 : NextForComplex(num));
+  if ((n!=0) && !(stepstrcmp(RecordType(n).ToCString(),theName) &&
+                  stepstrcmp(RecordType(n).ToCString(), theShortName)))
+    {  num = n;  return Standard_True;  }
+  
+  if (n == 0) 
+    NamedForComplex (theName, theShortName, num0, n, ach);
+  //entities are not in alphabetical order
+  Handle(String) errmess = new String("Parameter n0.%d (%s) not a LIST");
+  sprintf (txtmes,errmess->ToCString(), num0, theName);
+  for (n = num0; n > 0; n = NextForComplex(n)) {
+    if (!(stepstrcmp(RecordType(n).ToCString(),theName) &&
+          stepstrcmp(RecordType(n).ToCString(), theShortName)))  {
+      num = n;
+      errmess = new String("Complex Record n0.%d, member type %s not in alphabetic order");
+      sprintf (txtmes,errmess->ToCString(), num0, theName);
+      ach->AddWarning(txtmes,errmess->ToCString());
+      return Standard_False;
+    }
+  }
+  num = 0;
+  errmess = new String("Complex Record n0.%d, member type %s not found");
+  sprintf (txtmes,errmess->ToCString(), num0, theName);
+  ach->AddFail (txtmes,errmess->ToCString());
+  return Standard_False;
+}
+
 //  ##  ##  ##  ##  ##  ##  ##  ##  ##  ##  ##  ##  ##  ##  ##  ##  ##  ##  ##
 
 
index c119f4a..07abe3c 100644 (file)
@@ -120,6 +120,23 @@ public:
   //! Returns True if alphabetic order, False else
   Standard_EXPORT Standard_Boolean NamedForComplex (const Standard_CString name, const Standard_Integer num0, Standard_Integer& num, Handle(Interface_Check)& ach) const;
   
+  //! Determines the first component which brings a given name, or
+  //! short name for a Complex Type Entity
+  //! <num0> is the very first record of this entity
+  //! <num> is given the last NextNamedForComplex, starts at zero
+  //! it is returned as the newly found number
+  //! Hence, in the normal case, NextNamedForComplex starts by num0
+  //! if <num> is zero, else by NextForComplex(num)
+  //! If the alphabetic order is not respected, it restarts from
+  //! num0 and loops on NextForComplex until finding <name>
+  //! In case of "non-alphabetic order", <ach> is filled with a
+  //! Warning for this name
+  //! In case of "not-found at all", <ach> is filled with a Fail,
+  //! and <num> is returned as zero
+  //!
+  //! Returns True if alphabetic order, False else
+  Standard_EXPORT Standard_Boolean NamedForComplex (const Standard_CString theName, const Standard_CString theShortName, const Standard_Integer num0, Standard_Integer& num, Handle(Interface_Check)& ach) const;
+
   //! Checks Count of Parameters of record <num> to equate <nbreq>
   //! If this Check is successful, returns True
   //! Else, fills <ach> with an Error Message then returns False
diff --git a/tests/bugs/step/bug26715_1 b/tests/bugs/step/bug26715_1
new file mode 100755 (executable)
index 0000000..d2ba3d1
--- /dev/null
@@ -0,0 +1,28 @@
+puts "========"
+puts "OCC26715"
+puts "========"
+puts ""
+##########################################################################
+# Problems in reading STEP short names in complex entities
+##########################################################################
+
+stepread [locate_data_file bug26715_001.stp] a *
+tpcompound result
+
+set square 28950.7
+
+set nbshapes_expected "
+Number of shapes in shape
+ VERTEX    : 420
+ EDGE      : 536
+ WIRE      : 120
+ FACE      : 118
+ SHELL     : 1
+ SOLID     : 1
+ COMPSOLID : 0
+ COMPOUND  : 1
+ SHAPE     : 1197
+"
+checknbshapes result -ref ${nbshapes_expected} -t -m "importing file"
+
+set 3dviewer 1
diff --git a/tests/bugs/step/bug26715_2 b/tests/bugs/step/bug26715_2
new file mode 100755 (executable)
index 0000000..3959dd2
--- /dev/null
@@ -0,0 +1,28 @@
+puts "========"
+puts "OCC26715"
+puts "========"
+puts ""
+##########################################################################
+# Problems in reading STEP short names in complex entities
+##########################################################################
+
+stepread [locate_data_file bug26715_003.stp] a *
+tpcompound result
+
+set square 23212.2
+
+set nbshapes_expected "
+Number of shapes in shape
+ VERTEX    : 3840
+ EDGE      : 3840
+ WIRE      : 487
+ FACE      : 485
+ SHELL     : 485
+ SOLID     : 0
+ COMPSOLID : 0
+ COMPOUND  : 1
+ SHAPE     : 9138
+"
+checknbshapes result -ref ${nbshapes_expected} -t -m "importing file"
+
+set 3dviewer 1
diff --git a/tests/bugs/step/bug26715_3 b/tests/bugs/step/bug26715_3
new file mode 100755 (executable)
index 0000000..0563ccc
--- /dev/null
@@ -0,0 +1,28 @@
+puts "========"
+puts "OCC26715"
+puts "========"
+puts ""
+##########################################################################
+# Problems in reading STEP short names in complex entities
+##########################################################################
+
+stepread [locate_data_file bug26715_004.stp] a *
+tpcompound result
+
+set square 28950.7
+
+set nbshapes_expected "
+Number of shapes in shape
+ VERTEX    : 420
+ EDGE      : 536
+ WIRE      : 120
+ FACE      : 118
+ SHELL     : 1
+ SOLID     : 1
+ COMPSOLID : 0
+ COMPOUND  : 1
+ SHAPE     : 1197
+"
+checknbshapes result -ref ${nbshapes_expected} -t -m "importing file"
+
+set 3dviewer 1