Repository: tpaviot/pythonocc-core (language: python)

Issue:
(Bug?) XCAFDoc_Material_Tool not working when reading materials
XCAFDoc_Material_Tool seems to have unexpected behaviors.

I have modified [OCC.Extend.DataExchange.read_with_attributes_step](https://github.com/tpaviot/pythonocc-core/blob/master/src/Extend/DataExchange.py#L143) to read materials using XCAFDoc_Material_Tool in the following manner (this is only the important bit):

```python

def read_with_attributes_step(filename: str):

    # Create an handle to a document
    doc = TDocStd_Document(TCollection_ExtendedString('File Document'))

    # Get root assembly
    shape_tool: XCAFDoc_ShapeTool = XCAFDoc_DocumentTool_ShapeTool(doc.Main())
    color_tool: XCAFDoc_ColorTool = XCAFDoc_DocumentTool_ColorTool(doc.Main())
    mat_tool: XCAFDoc_MaterialTool = XCAFDoc_DocumentTool_MaterialTool(doc.Main())

    # By default all modes are set to True (SetColorMode, SetGDTMode,SetMatMode, SetPropsMode ...)
    step_reader = STEPCAFControl_Reader()
    status = step_reader.ReadFile(filename)

    if status == IFSelect_RetDone:
        step_reader.Transfer(doc)
    else:
        log_step_reader.error(f'Unexpected read status: {status}')

    labels = TDF_LabelSequence()
    shape_tool.GetFreeShapes(labels)

    material_labels = TDF_LabelSequence()
    mat_tool.GetMaterialLabels(material_labels)

    for i in range(1, material_labels.Length()+1):

        material_name = TCollection_HAsciiString('hello')
        material_description = TCollection_HAsciiString('hello')
        material_densname = TCollection_HAsciiString('hello')
        material_densvaltype = TCollection_HAsciiString('hello')

        print(
            mat_tool.GetMaterial(
                material_labels.Value(i),
                material_name,
                material_description,
                material_densname,
                material_densvaltype
            ),
            material_name.ToCString(),
            material_densname.ToCString(),
            material_description.ToCString(),
            material_densvaltype.ToCString()
        )
```

The output with [this file](https://drive.google.com/file/d/1SjfM8LHB5vc8olHICfCWlfhK5W_T1aDV/view?usp=sharing) (Eight cylinders symmetrically rotated, each with a material) is:
```bash
(True, 7.85e-06) hello hello hello hello
(True, 0.0) hello hello hello hello
(True, 0.0) hello hello hello hello
(True, 0.0) hello hello hello hello
(True, 0.0) hello hello hello hello
(True, 0.0) hello hello hello hello
(True, 0.0) hello hello hello hello
(True, 0.0) hello hello hello hello
```

**which means the function is not only not working as expected but not working at all**, because that is not the return type of the OCCT's [XCAFDoc_Material_Tool.Get_Material function](https://dev.opencascade.org/doc/refman/html/class_x_c_a_f_doc___material_tool.html). I add here the cpp code of that function (that evidently doesn't return a tuple):
```cpp
Standard_Boolean XCAFDoc_MaterialTool::GetMaterial(const TDF_Label& MatL,
                                                   Handle(TCollection_HAsciiString)& aName,
                                                   Handle(TCollection_HAsciiString)& aDescription,
                                                   Standard_Real& aDensity,
                                                   Handle(TCollection_HAsciiString)& aDensName,
                                                   Handle(TCollection_HAsciiString)& aDensValType) const
{
  Handle(XCAFDoc_Material) MatAttr;
  if(!MatL.FindAttribute(XCAFDoc_Material::GetID(),MatAttr)) {
    return Standard_False;
  }
  aName = MatAttr->GetName();
  aDescription = MatAttr->GetDescription();
  aDensity = MatAttr->GetDensity();
  aDensName = MatAttr->GetDensName();
  aDensValType = MatAttr->GetDensValType();
  
  return Standard_True;
}
```
I have also tried to implement that functionality with [XCAF_Doc_Material](https://dev.opencascade.org/doc/refman/html/class_x_c_a_f_doc___material.html), without succes. This is the modified read function that I used:
```python

def read_with_attributes_step(filename: str):

    # Create an handle to a document
    doc = TDocStd_Document(TCollection_ExtendedString('File Document'))

    # Get root assembly
    shape_tool: XCAFDoc_ShapeTool = XCAFDoc_DocumentTool_ShapeTool(doc.Main())
    color_tool: XCAFDoc_ColorTool = XCAFDoc_DocumentTool_ColorTool(doc.Main())
    mat_tool: XCAFDoc_MaterialTool = XCAFDoc_DocumentTool_MaterialTool(doc.Main())

    # By default all modes are set to True (SetColorMode, SetGDTMode,SetMatMode, SetPropsMode ...)
    step_reader = STEPCAFControl_Reader()
    status = step_reader.ReadFile(filename)

    if status == IFSelect_RetDone:
        step_reader.Transfer(doc)
    else:
        log_step_reader.error(f'Unexpected read status: {status}')

    labels = TDF_LabelSequence()
    shape_tool.GetFreeShapes(labels)

    material_labels = TDF_LabelSequence()
    mat_tool.GetMaterialLabels(material_labels)

    for i in range(1, material_labels.Length()+1):

        mat_attr = XCAFDoc_Material()
        mat_label = material_labels.Value(i)
        mat_label.FindAttribute(XCAFDoc_Material.GetID(), mat_attr)
        
        print('mat_attr:')
        print(mat_attr.GetDensity(),
              mat_attr.GetName(),
              mat_attr.GetDensName(),
              mat_attr.GetDensValType(),
              mat_attr.GetDescription())
```

And this is the deceiving output:
```bash
mat_attr:
0.0 None None None None
mat_attr:
0.0 None None None None
mat_attr:
0.0 None None None None
mat_attr:
0.0 None None None None
mat_attr:
0.0 None None None None
mat_attr:
0.0 None None None None
mat_attr:
0.0 None None None None
mat_attr:
0.0 None None None None
```
Note that the `.ToCString()` method should be called by the getter methods, but they return None...

I am not sure where the real issue is, whether it is a OCCT bug or something strange is happening in pythonocc-core.
Any idea on how to solve it/proceed?

If solved, maybe this a good oportunity to add import/export materials support in `DataExchange` (I could do a few commits with some code I have :)




Discussion / hints:
I add the step contents of the file here.
The materials properties to search for are:
`'Material densName 1'`
`'Material description 1'`
`'Material Name 1'`

The number goes from 1 to 8.
```
ISO-10303-21;
HEADER;
FILE_NAME('8cyl_with_headers','Time stamp: 2023-03-07 07:33:29.671877',(
    ''),(''),
  '','','');
FILE_SCHEMA(('AP214IS'));
FILE_DESCRIPTION((''),'');
ENDSEC;
DATA;
#1 = APPLICATION_PROTOCOL_DEFINITION('international standard',
  'automotive_design',2000,#2);
#2 = APPLICATION_CONTEXT(
  'core data for automotive mechanical design processes');
#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10);
#4 = PRODUCT_DEFINITION_SHAPE('','',#5);
#5 = PRODUCT_DEFINITION('design','',#6,#9);
#6 = PRODUCT_DEFINITION_FORMATION('','',#7);
#7 = PRODUCT('8Cylinders v2','8Cylinders v2','',(#8));
#8 = PRODUCT_CONTEXT('',#2,'mechanical');
#9 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#10 = SHAPE_REPRESENTATION('',(#11,#15),#19);
#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14);
#12 = CARTESIAN_POINT('',(0.,0.,0.));
#13 = DIRECTION('',(0.,0.,1.));
#14 = DIRECTION('',(1.,0.,-0.));
#15 = AXIS2_PLACEMENT_3D('',#16,#17,#18);
#16 = CARTESIAN_POINT('',(0.,0.,0.));
#17 = DIRECTION('',(0.,0.,1.));
#18 = DIRECTION('',(1.,0.,-0.));
#19 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#23)) GLOBAL_UNIT_ASSIGNED_CONTEXT(
(#20,#21,#22)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#20 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#21 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#22 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#23 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#20,
  'distance_accuracy_value','confusion accuracy');
#24 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#7));
#25 = SHAPE_DEFINITION_REPRESENTATION(#26,#32);
#26 = PRODUCT_DEFINITION_SHAPE('','',#27);
#27 = PRODUCT_DEFINITION('design','',#28,#31);
#28 = PRODUCT_DEFINITION_FORMATION('','',#29);
#29 = PRODUCT('SOLID','SOLID','',(#30));
#30 = PRODUCT_CONTEXT('',#2,'mechanical');
#31 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#32 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#33),#131);
#33 = MANIFOLD_SOLID_BREP('',#34);
#34 = CLOSED_SHELL('',(#35,#123,#127));
#35 = ADVANCED_FACE('',(#36),#49,.T.);
#36 = FACE_BOUND('',#37,.T.);
#37 = EDGE_LOOP('',(#38,#72,#95,#122));
#38 = ORIENTED_EDGE('',*,*,#39,.F.);
#39 = EDGE_CURVE('',#40,#40,#42,.T.);
#40 = VERTEX_POINT('',#41);
#41 = CARTESIAN_POINT('',(211.65287853202,95.23152229471,206.46570424998
    ));
#42 = SURFACE_CURVE('',#43,(#48,#60),.PCURVE_S1.);
#43 = CIRCLE('',#44,25.);
#44 = AXIS2_PLACEMENT_3D('',#45,#46,#47);
#45 = CARTESIAN_POINT('',(229.33054806168,77.553852765046,
    206.46570424998));
#46 = DIRECTION('',(0.57922796534,0.57922796534,0.573576436351));
#47 = DIRECTION('',(0.707106781187,-0.707106781187,-2.775557561563E-16)
  );
#48 = PCURVE('',#49,#54);
#49 = CYLINDRICAL_SURFACE('',#50,25.);
#50 = AXIS2_PLACEMENT_3D('',#51,#52,#53);
#51 = CARTESIAN_POINT('',(207.60949936144,55.832804064812,
    184.95658788682));
#52 = DIRECTION('',(0.57922796534,0.57922796534,0.573576436351));
#53 = DIRECTION('',(0.707106781187,-0.707106781187,-2.775557561563E-16)
  );
#54 = DEFINITIONAL_REPRESENTATION('',(#55),#59);
#55 = LINE('',#56,#57);
#56 = CARTESIAN_POINT('',(-6.28318530718,37.500000000001));
#57 = VECTOR('',#58,1.);
#58 = DIRECTION('',(1.,0.));
#59 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#60 = PCURVE('',#61,#66);
#61 = PLANE('',#62);
#62 = AXIS2_PLACEMENT_3D('',#63,#64,#65);
#63 = CARTESIAN_POINT('',(229.33054806168,77.553852765046,
    206.46570424998));
#64 = DIRECTION('',(0.57922796534,0.57922796534,0.573576436351));
#65 = DIRECTION('',(0.707106781187,-0.707106781187,-2.775557561563E-16)
  );
#66 = DEFINITIONAL_REPRESENTATION('',(#67),#71);
#67 = CIRCLE('',#68,25.);
#68 = AXIS2_PLACEMENT_2D('',#69,#70);
#69 = CARTESIAN_POINT('',(0.,0.));
#70 = DIRECTION('',(1.,-1.742027637139E-17));
#71 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#72 = ORIENTED_EDGE('',*,*,#73,.T.);
#73 = EDGE_CURVE('',#40,#74,#76,.T.);
#74 = VERTEX_POINT('',#75);
#75 = CARTESIAN_POINT('',(168.21078113155,51.789424894242,
    163.44747152365));
#76 = SEAM_CURVE('',#77,(#81,#88),.PCURVE_S1.);
#77 = LINE('',#78,#79);
#78 = CARTESIAN_POINT('',(189.93182983178,73.510473594476,
    184.95658788682));
#79 = VECTOR('',#80,1.);
#80 = DIRECTION('',(-0.57922796534,-0.57922796534,-0.573576436351));
#81 = PCURVE('',#49,#82);
#82 = DEFINITIONAL_REPRESENTATION('',(#83),#87);
#83 = LINE('',#84,#85);
#84 = CARTESIAN_POINT('',(-3.14159265359,3.836930773105E-13));
#85 = VECTOR('',#86,1.);
#86 = DIRECTION('',(0.,-1.));
#87 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#88 = PCURVE('',#49,#89);
#89 = DEFINITIONAL_REPRESENTATION('',(#90),#94);
#90 = LINE('',#91,#92);
#91 = CARTESIAN_POINT('',(3.14159265359,3.836930773105E-13));
#92 = VECTOR('',#93,1.);
#93 = DIRECTION('',(0.,-1.));
#94 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#95 = ORIENTED_EDGE('',*,*,#96,.F.);
#96 = EDGE_CURVE('',#74,#74,#97,.T.);
#97 = SURFACE_CURVE('',#98,(#103,#110),.PCURVE_S1.);
#98 = CIRCLE('',#99,25.);
#99 = AXIS2_PLACEMENT_3D('',#100,#101,#102);
#100 = CARTESIAN_POINT('',(185.88845066121,34.111755364579,
    163.44747152365));
#101 = DIRECTION('',(-0.57922796534,-0.57922796534,-0.573576436351));
#102 = DIRECTION('',(0.707106781187,-0.707106781187,-2.775557561563E-16)
  );
#103 = PCURVE('',#49,#104);
#104 = DEFINITIONAL_REPRESENTATION('',(#105),#109);
#105 = LINE('',#106,#107);
#106 = CARTESIAN_POINT('',(6.28318530718,-37.49999999999));
#107 = VECTOR('',#108,1.);
#108 = DIRECTION('',(-1.,0.));
#109 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#110 = PCURVE('',#111,#116);
#111 = PLANE('',#112);
#112 = AXIS2_PLACEMENT_3D('',#113,#114,#115);
#113 = CARTESIAN_POINT('',(185.88845066121,34.111755364579,
    163.44747152365));
#114 = DIRECTION('',(-0.57922796534,-0.57922796534,-0.573576436351));
#115 = DIRECTION('',(-0.707106781187,0.707106781187,2.775557561563E-16)
  );
#116 = DEFINITIONAL_REPRESENTATION('',(#117),#121);
#117 = CIRCLE('',#118,25.);
#118 = AXIS2_PLACEMENT_2D('',#119,#120);
#119 = CARTESIAN_POINT('',(0.,0.));
#120 = DIRECTION('',(-1.,-1.742027637139E-17));
#121 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#122 = ORIENTED_EDGE('',*,*,#73,.F.);
#123 = ADVANCED_FACE('',(#124),#111,.T.);
#124 = FACE_BOUND('',#125,.T.);
#125 = EDGE_LOOP('',(#126));
#126 = ORIENTED_EDGE('',*,*,#96,.T.);
#127 = ADVANCED_FACE('',(#128),#61,.T.);
#128 = FACE_BOUND('',#129,.T.);
#129 = EDGE_LOOP('',(#130));
#130 = ORIENTED_EDGE('',*,*,#39,.T.);
#131 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#135)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#132,#133,#134)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#132 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#133 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#134 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#135 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#132,
  'distance_accuracy_value','confusion accuracy');
#136 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#137,#139);
#137 = ( REPRESENTATION_RELATIONSHIP('','',#32,#10) 
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#138) 
SHAPE_REPRESENTATION_RELATIONSHIP() );
#138 = ITEM_DEFINED_TRANSFORMATION('','',#11,#15);
#139 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#140
  );
#140 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('1','','',#5,#27,$);
#141 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#29));
#142 = SHAPE_DEFINITION_REPRESENTATION(#143,#149);
#143 = PRODUCT_DEFINITION_SHAPE('','',#144);
#144 = PRODUCT_DEFINITION('design','',#145,#148);
#145 = PRODUCT_DEFINITION_FORMATION('','',#146);
#146 = PRODUCT('8Cylinders v2','8Cylinders v2','',(#147));
#147 = PRODUCT_CONTEXT('',#2,'mechanical');
#148 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#149 = SHAPE_REPRESENTATION('',(#11,#150),#154);
#150 = AXIS2_PLACEMENT_3D('',#151,#152,#153);
#151 = CARTESIAN_POINT('',(0.,0.,0.));
#152 = DIRECTION('',(0.,0.,1.));
#153 = DIRECTION('',(1.,0.,-0.));
#154 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#158)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#155,#156,#157)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#155 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#156 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#157 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#158 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#155,
  'distance_accuracy_value','confusion accuracy');
#159 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#146));
#160 = SHAPE_DEFINITION_REPRESENTATION(#161,#167);
#161 = PRODUCT_DEFINITION_SHAPE('','',#162);
#162 = PRODUCT_DEFINITION('design','',#163,#166);
#163 = PRODUCT_DEFINITION_FORMATION('','',#164);
#164 = PRODUCT('SOLID','SOLID','',(#165));
#165 = PRODUCT_CONTEXT('',#2,'mechanical');
#166 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#167 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#168),#266);
#168 = MANIFOLD_SOLID_BREP('',#169);
#169 = CLOSED_SHELL('',(#170,#258,#262));
#170 = ADVANCED_FACE('',(#171),#184,.T.);
#171 = FACE_BOUND('',#172,.T.);
#172 = EDGE_LOOP('',(#173,#207,#230,#257));
#173 = ORIENTED_EDGE('',*,*,#174,.T.);
#174 = EDGE_CURVE('',#175,#175,#177,.T.);
#175 = VERTEX_POINT('',#176);
#176 = CARTESIAN_POINT('',(211.65287853202,-95.23152229471,
    206.46570424998));
#177 = SURFACE_CURVE('',#178,(#183,#195),.PCURVE_S1.);
#178 = CIRCLE('',#179,25.);
#179 = AXIS2_PLACEMENT_3D('',#180,#181,#182);
#180 = CARTESIAN_POINT('',(229.33054806168,-77.55385276504,
    206.46570424998));
#181 = DIRECTION('',(-0.57922796534,0.57922796534,-0.573576436351));
#182 = DIRECTION('',(0.707106781187,0.707106781187,-2.775557561563E-16)
  );
#183 = PCURVE('',#184,#189);
#184 = CYLINDRICAL_SURFACE('',#185,25.);
#185 = AXIS2_PLACEMENT_3D('',#186,#187,#188);
#186 = CARTESIAN_POINT('',(207.60949936144,-55.83280406481,
    184.95658788682));
#187 = DIRECTION('',(-0.57922796534,0.57922796534,-0.573576436351));
#188 = DIRECTION('',(0.707106781187,0.707106781187,-2.775557561563E-16)
  );
#189 = DEFINITIONAL_REPRESENTATION('',(#190),#194);
#190 = LINE('',#191,#192);
#191 = CARTESIAN_POINT('',(2.13162820728E-14,-37.5));
#192 = VECTOR('',#193,1.);
#193 = DIRECTION('',(1.,0.));
#194 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#195 = PCURVE('',#196,#201);
#196 = PLANE('',#197);
#197 = AXIS2_PLACEMENT_3D('',#198,#199,#200);
#198 = CARTESIAN_POINT('',(229.33054806168,-77.55385276504,
    206.46570424998));
#199 = DIRECTION('',(-0.57922796534,0.57922796534,-0.573576436351));
#200 = DIRECTION('',(0.707106781187,0.707106781187,-2.775557561563E-16)
  );
#201 = DEFINITIONAL_REPRESENTATION('',(#202),#206);
#202 = CIRCLE('',#203,25.);
#203 = AXIS2_PLACEMENT_2D('',#204,#205);
#204 = CARTESIAN_POINT('',(0.,0.));
#205 = DIRECTION('',(1.,-1.742027637139E-17));
#206 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#207 = ORIENTED_EDGE('',*,*,#208,.T.);
#208 = EDGE_CURVE('',#175,#209,#211,.T.);
#209 = VERTEX_POINT('',#210);
#210 = CARTESIAN_POINT('',(168.21078113155,-51.78942489424,
    163.44747152365));
#211 = SEAM_CURVE('',#212,(#216,#223),.PCURVE_S1.);
#212 = LINE('',#213,#214);
#213 = CARTESIAN_POINT('',(189.93182983178,-73.51047359447,
    184.95658788682));
#214 = VECTOR('',#215,1.);
#215 = DIRECTION('',(-0.57922796534,0.57922796534,-0.573576436351));
#216 = PCURVE('',#184,#217);
#217 = DEFINITIONAL_REPRESENTATION('',(#218),#222);
#218 = LINE('',#219,#220);
#219 = CARTESIAN_POINT('',(9.424777960769,-3.836930773105E-13));
#220 = VECTOR('',#221,1.);
#221 = DIRECTION('',(0.,1.));
#222 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#223 = PCURVE('',#184,#224);
#224 = DEFINITIONAL_REPRESENTATION('',(#225),#229);
#225 = LINE('',#226,#227);
#226 = CARTESIAN_POINT('',(3.14159265359,-3.836930773105E-13));
#227 = VECTOR('',#228,1.);
#228 = DIRECTION('',(0.,1.));
#229 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#230 = ORIENTED_EDGE('',*,*,#231,.T.);
#231 = EDGE_CURVE('',#209,#209,#232,.T.);
#232 = SURFACE_CURVE('',#233,(#238,#245),.PCURVE_S1.);
#233 = CIRCLE('',#234,25.);
#234 = AXIS2_PLACEMENT_3D('',#235,#236,#237);
#235 = CARTESIAN_POINT('',(185.88845066121,-34.11175536457,
    163.44747152365));
#236 = DIRECTION('',(0.57922796534,-0.57922796534,0.573576436351));
#237 = DIRECTION('',(0.707106781187,0.707106781187,-2.775557561563E-16)
  );
#238 = PCURVE('',#184,#239);
#239 = DEFINITIONAL_REPRESENTATION('',(#240),#244);
#240 = LINE('',#241,#242);
#241 = CARTESIAN_POINT('',(12.566370614359,37.499999999999));
#242 = VECTOR('',#243,1.);
#243 = DIRECTION('',(-1.,0.));
#244 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#245 = PCURVE('',#246,#251);
#246 = PLANE('',#247);
#247 = AXIS2_PLACEMENT_3D('',#248,#249,#250);
#248 = CARTESIAN_POINT('',(185.88845066121,-34.11175536457,
    163.44747152365));
#249 = DIRECTION('',(0.57922796534,-0.57922796534,0.573576436351));
#250 = DIRECTION('',(-0.707106781187,-0.707106781187,2.775557561563E-16)
  );
#251 = DEFINITIONAL_REPRESENTATION('',(#252),#256);
#252 = CIRCLE('',#253,25.);
#253 = AXIS2_PLACEMENT_2D('',#254,#255);
#254 = CARTESIAN_POINT('',(0.,0.));
#255 = DIRECTION('',(-1.,-1.742027637139E-17));
#256 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#257 = ORIENTED_EDGE('',*,*,#208,.F.);
#258 = ADVANCED_FACE('',(#259),#246,.F.);
#259 = FACE_BOUND('',#260,.T.);
#260 = EDGE_LOOP('',(#261));
#261 = ORIENTED_EDGE('',*,*,#231,.F.);
#262 = ADVANCED_FACE('',(#263),#196,.F.);
#263 = FACE_BOUND('',#264,.T.);
#264 = EDGE_LOOP('',(#265));
#265 = ORIENTED_EDGE('',*,*,#174,.F.);
#266 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#270)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#267,#268,#269)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#267 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#268 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#269 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#270 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#267,
  'distance_accuracy_value','confusion accuracy');
#271 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#272,#274);
#272 = ( REPRESENTATION_RELATIONSHIP('','',#167,#149) 
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#273) 
SHAPE_REPRESENTATION_RELATIONSHIP() );
#273 = ITEM_DEFINED_TRANSFORMATION('','',#11,#150);
#274 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#275
  );
#275 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('2','','',#144,#162,$);
#276 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#164));
#277 = SHAPE_DEFINITION_REPRESENTATION(#278,#284);
#278 = PRODUCT_DEFINITION_SHAPE('','',#279);
#279 = PRODUCT_DEFINITION('design','',#280,#283);
#280 = PRODUCT_DEFINITION_FORMATION('','',#281);
#281 = PRODUCT('8Cylinders v2','8Cylinders v2','',(#282));
#282 = PRODUCT_CONTEXT('',#2,'mechanical');
#283 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#284 = SHAPE_REPRESENTATION('',(#11,#285),#289);
#285 = AXIS2_PLACEMENT_3D('',#286,#287,#288);
#286 = CARTESIAN_POINT('',(0.,0.,0.));
#287 = DIRECTION('',(0.,0.,1.));
#288 = DIRECTION('',(1.,0.,-0.));
#289 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#293)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#290,#291,#292)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#290 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#291 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#292 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#293 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#290,
  'distance_accuracy_value','confusion accuracy');
#294 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#281));
#295 = SHAPE_DEFINITION_REPRESENTATION(#296,#302);
#296 = PRODUCT_DEFINITION_SHAPE('','',#297);
#297 = PRODUCT_DEFINITION('design','',#298,#301);
#298 = PRODUCT_DEFINITION_FORMATION('','',#299);
#299 = PRODUCT('SOLID','SOLID','',(#300));
#300 = PRODUCT_CONTEXT('',#2,'mechanical');
#301 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#302 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#303),#401);
#303 = MANIFOLD_SOLID_BREP('',#304);
#304 = CLOSED_SHELL('',(#305,#393,#397));
#305 = ADVANCED_FACE('',(#306),#319,.T.);
#306 = FACE_BOUND('',#307,.T.);
#307 = EDGE_LOOP('',(#308,#342,#365,#392));
#308 = ORIENTED_EDGE('',*,*,#309,.T.);
#309 = EDGE_CURVE('',#310,#310,#312,.T.);
#310 = VERTEX_POINT('',#311);
#311 = CARTESIAN_POINT('',(-211.652878532,95.23152229471,206.46570424998
    ));
#312 = SURFACE_CURVE('',#313,(#318,#330),.PCURVE_S1.);
#313 = CIRCLE('',#314,25.);
#314 = AXIS2_PLACEMENT_3D('',#315,#316,#317);
#315 = CARTESIAN_POINT('',(-229.3305480616,77.553852765046,
    206.46570424998));
#316 = DIRECTION('',(0.57922796534,-0.57922796534,-0.573576436351));
#317 = DIRECTION('',(-0.707106781187,-0.707106781187,-2.775557561563E-16
    ));
#318 = PCURVE('',#319,#324);
#319 = CYLINDRICAL_SURFACE('',#320,25.);
#320 = AXIS2_PLACEMENT_3D('',#321,#322,#323);
#321 = CARTESIAN_POINT('',(-207.6094993614,55.832804064812,
    184.95658788682));
#322 = DIRECTION('',(0.57922796534,-0.57922796534,-0.573576436351));
#323 = DIRECTION('',(-0.707106781187,-0.707106781187,-2.775557561563E-16
    ));
#324 = DEFINITIONAL_REPRESENTATION('',(#325),#329);
#325 = LINE('',#326,#327);
#326 = CARTESIAN_POINT('',(2.13162820728E-14,-37.5));
#327 = VECTOR('',#328,1.);
#328 = DIRECTION('',(1.,0.));
#329 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#330 = PCURVE('',#331,#336);
#331 = PLANE('',#332);
#332 = AXIS2_PLACEMENT_3D('',#333,#334,#335);
#333 = CARTESIAN_POINT('',(-229.3305480616,77.553852765046,
    206.46570424998));
#334 = DIRECTION('',(0.57922796534,-0.57922796534,-0.573576436351));
#335 = DIRECTION('',(-0.707106781187,-0.707106781187,-2.775557561563E-16
    ));
#336 = DEFINITIONAL_REPRESENTATION('',(#337),#341);
#337 = CIRCLE('',#338,25.);
#338 = AXIS2_PLACEMENT_2D('',#339,#340);
#339 = CARTESIAN_POINT('',(0.,0.));
#340 = DIRECTION('',(1.,-1.742027637139E-17));
#341 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#342 = ORIENTED_EDGE('',*,*,#343,.T.);
#343 = EDGE_CURVE('',#310,#344,#346,.T.);
#344 = VERTEX_POINT('',#345);
#345 = CARTESIAN_POINT('',(-168.2107811315,51.789424894242,
    163.44747152365));
#346 = SEAM_CURVE('',#347,(#351,#358),.PCURVE_S1.);
#347 = LINE('',#348,#349);
#348 = CARTESIAN_POINT('',(-189.9318298317,73.510473594476,
    184.95658788682));
#349 = VECTOR('',#350,1.);
#350 = DIRECTION('',(0.57922796534,-0.57922796534,-0.573576436351));
#351 = PCURVE('',#319,#352);
#352 = DEFINITIONAL_REPRESENTATION('',(#353),#357);
#353 = LINE('',#354,#355);
#354 = CARTESIAN_POINT('',(9.424777960769,-3.836930773105E-13));
#355 = VECTOR('',#356,1.);
#356 = DIRECTION('',(0.,1.));
#357 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#358 = PCURVE('',#319,#359);
#359 = DEFINITIONAL_REPRESENTATION('',(#360),#364);
#360 = LINE('',#361,#362);
#361 = CARTESIAN_POINT('',(3.14159265359,-3.836930773105E-13));
#362 = VECTOR('',#363,1.);
#363 = DIRECTION('',(0.,1.));
#364 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#365 = ORIENTED_EDGE('',*,*,#366,.T.);
#366 = EDGE_CURVE('',#344,#344,#367,.T.);
#367 = SURFACE_CURVE('',#368,(#373,#380),.PCURVE_S1.);
#368 = CIRCLE('',#369,25.);
#369 = AXIS2_PLACEMENT_3D('',#370,#371,#372);
#370 = CARTESIAN_POINT('',(-185.8884506612,34.111755364579,
    163.44747152365));
#371 = DIRECTION('',(-0.57922796534,0.57922796534,0.573576436351));
#372 = DIRECTION('',(-0.707106781187,-0.707106781187,-2.775557561563E-16
    ));
#373 = PCURVE('',#319,#374);
#374 = DEFINITIONAL_REPRESENTATION('',(#375),#379);
#375 = LINE('',#376,#377);
#376 = CARTESIAN_POINT('',(12.566370614359,37.499999999999));
#377 = VECTOR('',#378,1.);
#378 = DIRECTION('',(-1.,0.));
#379 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#380 = PCURVE('',#381,#386);
#381 = PLANE('',#382);
#382 = AXIS2_PLACEMENT_3D('',#383,#384,#385);
#383 = CARTESIAN_POINT('',(-185.8884506612,34.111755364579,
    163.44747152365));
#384 = DIRECTION('',(-0.57922796534,0.57922796534,0.573576436351));
#385 = DIRECTION('',(0.707106781187,0.707106781187,2.775557561563E-16));
#386 = DEFINITIONAL_REPRESENTATION('',(#387),#391);
#387 = CIRCLE('',#388,25.);
#388 = AXIS2_PLACEMENT_2D('',#389,#390);
#389 = CARTESIAN_POINT('',(0.,0.));
#390 = DIRECTION('',(-1.,-1.742027637139E-17));
#391 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#392 = ORIENTED_EDGE('',*,*,#343,.F.);
#393 = ADVANCED_FACE('',(#394),#381,.F.);
#394 = FACE_BOUND('',#395,.T.);
#395 = EDGE_LOOP('',(#396));
#396 = ORIENTED_EDGE('',*,*,#366,.F.);
#397 = ADVANCED_FACE('',(#398),#331,.F.);
#398 = FACE_BOUND('',#399,.T.);
#399 = EDGE_LOOP('',(#400));
#400 = ORIENTED_EDGE('',*,*,#309,.F.);
#401 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#405)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#402,#403,#404)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#402 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#403 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#404 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#405 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#402,
  'distance_accuracy_value','confusion accuracy');
#406 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#407,#409);
#407 = ( REPRESENTATION_RELATIONSHIP('','',#302,#284) 
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#408) 
SHAPE_REPRESENTATION_RELATIONSHIP() );
#408 = ITEM_DEFINED_TRANSFORMATION('','',#11,#285);
#409 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#410
  );
#410 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('3','','',#279,#297,$);
#411 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#299));
#412 = SHAPE_DEFINITION_REPRESENTATION(#413,#419);
#413 = PRODUCT_DEFINITION_SHAPE('','',#414);
#414 = PRODUCT_DEFINITION('design','',#415,#418);
#415 = PRODUCT_DEFINITION_FORMATION('','',#416);
#416 = PRODUCT('8Cylinders v2','8Cylinders v2','',(#417));
#417 = PRODUCT_CONTEXT('',#2,'mechanical');
#418 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#419 = SHAPE_REPRESENTATION('',(#11,#420),#424);
#420 = AXIS2_PLACEMENT_3D('',#421,#422,#423);
#421 = CARTESIAN_POINT('',(0.,0.,0.));
#422 = DIRECTION('',(0.,0.,1.));
#423 = DIRECTION('',(1.,0.,-0.));
#424 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#428)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#425,#426,#427)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#425 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#426 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#427 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#428 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#425,
  'distance_accuracy_value','confusion accuracy');
#429 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#416));
#430 = SHAPE_DEFINITION_REPRESENTATION(#431,#437);
#431 = PRODUCT_DEFINITION_SHAPE('','',#432);
#432 = PRODUCT_DEFINITION('design','',#433,#436);
#433 = PRODUCT_DEFINITION_FORMATION('','',#434);
#434 = PRODUCT('SOLID','SOLID','',(#435));
#435 = PRODUCT_CONTEXT('',#2,'mechanical');
#436 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#437 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#438),#536);
#438 = MANIFOLD_SOLID_BREP('',#439);
#439 = CLOSED_SHELL('',(#440,#528,#532));
#440 = ADVANCED_FACE('',(#441),#454,.T.);
#441 = FACE_BOUND('',#442,.T.);
#442 = EDGE_LOOP('',(#443,#477,#500,#527));
#443 = ORIENTED_EDGE('',*,*,#444,.F.);
#444 = EDGE_CURVE('',#445,#445,#447,.T.);
#445 = VERTEX_POINT('',#446);
#446 = CARTESIAN_POINT('',(-211.652878532,-95.23152229471,
    206.46570424998));
#447 = SURFACE_CURVE('',#448,(#453,#465),.PCURVE_S1.);
#448 = CIRCLE('',#449,25.);
#449 = AXIS2_PLACEMENT_3D('',#450,#451,#452);
#450 = CARTESIAN_POINT('',(-229.3305480616,-77.55385276504,
    206.46570424998));
#451 = DIRECTION('',(-0.57922796534,-0.57922796534,0.573576436351));
#452 = DIRECTION('',(-0.707106781187,0.707106781187,-2.775557561563E-16)
  );
#453 = PCURVE('',#454,#459);
#454 = CYLINDRICAL_SURFACE('',#455,25.);
#455 = AXIS2_PLACEMENT_3D('',#456,#457,#458);
#456 = CARTESIAN_POINT('',(-207.6094993614,-55.83280406481,
    184.95658788682));
#457 = DIRECTION('',(-0.57922796534,-0.57922796534,0.573576436351));
#458 = DIRECTION('',(-0.707106781187,0.707106781187,-2.775557561563E-16)
  );
#459 = DEFINITIONAL_REPRESENTATION('',(#460),#464);
#460 = LINE('',#461,#462);
#461 = CARTESIAN_POINT('',(-6.28318530718,37.500000000001));
#462 = VECTOR('',#463,1.);
#463 = DIRECTION('',(1.,0.));
#464 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#465 = PCURVE('',#466,#471);
#466 = PLANE('',#467);
#467 = AXIS2_PLACEMENT_3D('',#468,#469,#470);
#468 = CARTESIAN_POINT('',(-229.3305480616,-77.55385276504,
    206.46570424998));
#469 = DIRECTION('',(-0.57922796534,-0.57922796534,0.573576436351));
#470 = DIRECTION('',(-0.707106781187,0.707106781187,-2.775557561563E-16)
  );
#471 = DEFINITIONAL_REPRESENTATION('',(#472),#476);
#472 = CIRCLE('',#473,25.);
#473 = AXIS2_PLACEMENT_2D('',#474,#475);
#474 = CARTESIAN_POINT('',(0.,0.));
#475 = DIRECTION('',(1.,-1.742027637139E-17));
#476 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#477 = ORIENTED_EDGE('',*,*,#478,.T.);
#478 = EDGE_CURVE('',#445,#479,#481,.T.);
#479 = VERTEX_POINT('',#480);
#480 = CARTESIAN_POINT('',(-168.2107811315,-51.78942489424,
    163.44747152365));
#481 = SEAM_CURVE('',#482,(#486,#493),.PCURVE_S1.);
#482 = LINE('',#483,#484);
#483 = CARTESIAN_POINT('',(-189.9318298317,-73.51047359447,
    184.95658788682));
#484 = VECTOR('',#485,1.);
#485 = DIRECTION('',(0.57922796534,0.57922796534,-0.573576436351));
#486 = PCURVE('',#454,#487);
#487 = DEFINITIONAL_REPRESENTATION('',(#488),#492);
#488 = LINE('',#489,#490);
#489 = CARTESIAN_POINT('',(-3.14159265359,3.836930773105E-13));
#490 = VECTOR('',#491,1.);
#491 = DIRECTION('',(0.,-1.));
#492 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#493 = PCURVE('',#454,#494);
#494 = DEFINITIONAL_REPRESENTATION('',(#495),#499);
#495 = LINE('',#496,#497);
#496 = CARTESIAN_POINT('',(3.14159265359,3.836930773105E-13));
#497 = VECTOR('',#498,1.);
#498 = DIRECTION('',(0.,-1.));
#499 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#500 = ORIENTED_EDGE('',*,*,#501,.F.);
#501 = EDGE_CURVE('',#479,#479,#502,.T.);
#502 = SURFACE_CURVE('',#503,(#508,#515),.PCURVE_S1.);
#503 = CIRCLE('',#504,25.);
#504 = AXIS2_PLACEMENT_3D('',#505,#506,#507);
#505 = CARTESIAN_POINT('',(-185.8884506612,-34.11175536457,
    163.44747152365));
#506 = DIRECTION('',(0.57922796534,0.57922796534,-0.573576436351));
#507 = DIRECTION('',(-0.707106781187,0.707106781187,-2.775557561563E-16)
  );
#508 = PCURVE('',#454,#509);
#509 = DEFINITIONAL_REPRESENTATION('',(#510),#514);
#510 = LINE('',#511,#512);
#511 = CARTESIAN_POINT('',(6.28318530718,-37.49999999999));
#512 = VECTOR('',#513,1.);
#513 = DIRECTION('',(-1.,0.));
#514 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#515 = PCURVE('',#516,#521);
#516 = PLANE('',#517);
#517 = AXIS2_PLACEMENT_3D('',#518,#519,#520);
#518 = CARTESIAN_POINT('',(-185.8884506612,-34.11175536457,
    163.44747152365));
#519 = DIRECTION('',(0.57922796534,0.57922796534,-0.573576436351));
#520 = DIRECTION('',(0.707106781187,-0.707106781187,2.775557561563E-16)
  );
#521 = DEFINITIONAL_REPRESENTATION('',(#522),#526);
#522 = CIRCLE('',#523,25.);
#523 = AXIS2_PLACEMENT_2D('',#524,#525);
#524 = CARTESIAN_POINT('',(0.,0.));
#525 = DIRECTION('',(-1.,-1.742027637139E-17));
#526 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#527 = ORIENTED_EDGE('',*,*,#478,.F.);
#528 = ADVANCED_FACE('',(#529),#516,.T.);
#529 = FACE_BOUND('',#530,.T.);
#530 = EDGE_LOOP('',(#531));
#531 = ORIENTED_EDGE('',*,*,#501,.T.);
#532 = ADVANCED_FACE('',(#533),#466,.T.);
#533 = FACE_BOUND('',#534,.T.);
#534 = EDGE_LOOP('',(#535));
#535 = ORIENTED_EDGE('',*,*,#444,.T.);
#536 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#540)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#537,#538,#539)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#537 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#538 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#539 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#540 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#537,
  'distance_accuracy_value','confusion accuracy');
#541 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#542,#544);
#542 = ( REPRESENTATION_RELATIONSHIP('','',#437,#419) 
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#543) 
SHAPE_REPRESENTATION_RELATIONSHIP() );
#543 = ITEM_DEFINED_TRANSFORMATION('','',#11,#420);
#544 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#545
  );
#545 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('4','','',#414,#432,$);
#546 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#434));
#547 = SHAPE_DEFINITION_REPRESENTATION(#548,#554);
#548 = PRODUCT_DEFINITION_SHAPE('','',#549);
#549 = PRODUCT_DEFINITION('design','',#550,#553);
#550 = PRODUCT_DEFINITION_FORMATION('','',#551);
#551 = PRODUCT('8Cylinders v2','8Cylinders v2','',(#552));
#552 = PRODUCT_CONTEXT('',#2,'mechanical');
#553 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#554 = SHAPE_REPRESENTATION('',(#11,#555),#559);
#555 = AXIS2_PLACEMENT_3D('',#556,#557,#558);
#556 = CARTESIAN_POINT('',(0.,0.,0.));
#557 = DIRECTION('',(0.,0.,1.));
#558 = DIRECTION('',(1.,0.,-0.));
#559 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#563)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#560,#561,#562)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#560 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#561 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#562 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#563 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#560,
  'distance_accuracy_value','confusion accuracy');
#564 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#551));
#565 = SHAPE_DEFINITION_REPRESENTATION(#566,#572);
#566 = PRODUCT_DEFINITION_SHAPE('','',#567);
#567 = PRODUCT_DEFINITION('design','',#568,#571);
#568 = PRODUCT_DEFINITION_FORMATION('','',#569);
#569 = PRODUCT('SOLID','SOLID','',(#570));
#570 = PRODUCT_CONTEXT('',#2,'mechanical');
#571 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#572 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#573),#671);
#573 = MANIFOLD_SOLID_BREP('',#574);
#574 = CLOSED_SHELL('',(#575,#663,#667));
#575 = ADVANCED_FACE('',(#576),#589,.T.);
#576 = FACE_BOUND('',#577,.T.);
#577 = EDGE_LOOP('',(#578,#612,#635,#662));
#578 = ORIENTED_EDGE('',*,*,#579,.T.);
#579 = EDGE_CURVE('',#580,#580,#582,.T.);
#580 = VERTEX_POINT('',#581);
#581 = CARTESIAN_POINT('',(211.65287853202,95.23152229471,
    -206.4657042499));
#582 = SURFACE_CURVE('',#583,(#588,#600),.PCURVE_S1.);
#583 = CIRCLE('',#584,25.);
#584 = AXIS2_PLACEMENT_3D('',#585,#586,#587);
#585 = CARTESIAN_POINT('',(229.33054806168,77.553852765046,
    -206.4657042499));
#586 = DIRECTION('',(-0.57922796534,-0.57922796534,0.573576436351));
#587 = DIRECTION('',(0.707106781187,-0.707106781187,2.775557561563E-16)
  );
#588 = PCURVE('',#589,#594);
#589 = CYLINDRICAL_SURFACE('',#590,25.);
#590 = AXIS2_PLACEMENT_3D('',#591,#592,#593);
#591 = CARTESIAN_POINT('',(207.60949936144,55.832804064812,
    -184.9565878868));
#592 = DIRECTION('',(-0.57922796534,-0.57922796534,0.573576436351));
#593 = DIRECTION('',(0.707106781187,-0.707106781187,2.775557561563E-16)
  );
#594 = DEFINITIONAL_REPRESENTATION('',(#595),#599);
#595 = LINE('',#596,#597);
#596 = CARTESIAN_POINT('',(2.13162820728E-14,-37.5));
#597 = VECTOR('',#598,1.);
#598 = DIRECTION('',(1.,0.));
#599 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#600 = PCURVE('',#601,#606);
#601 = PLANE('',#602);
#602 = AXIS2_PLACEMENT_3D('',#603,#604,#605);
#603 = CARTESIAN_POINT('',(229.33054806168,77.553852765046,
    -206.4657042499));
#604 = DIRECTION('',(-0.57922796534,-0.57922796534,0.573576436351));
#605 = DIRECTION('',(0.707106781187,-0.707106781187,2.775557561563E-16)
  );
#606 = DEFINITIONAL_REPRESENTATION('',(#607),#611);
#607 = CIRCLE('',#608,25.);
#608 = AXIS2_PLACEMENT_2D('',#609,#610);
#609 = CARTESIAN_POINT('',(0.,0.));
#610 = DIRECTION('',(1.,-1.742027637139E-17));
#611 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#612 = ORIENTED_EDGE('',*,*,#613,.T.);
#613 = EDGE_CURVE('',#580,#614,#616,.T.);
#614 = VERTEX_POINT('',#615);
#615 = CARTESIAN_POINT('',(168.21078113155,51.789424894242,
    -163.4474715236));
#616 = SEAM_CURVE('',#617,(#621,#628),.PCURVE_S1.);
#617 = LINE('',#618,#619);
#618 = CARTESIAN_POINT('',(189.93182983178,73.510473594476,
    -184.9565878868));
#619 = VECTOR('',#620,1.);
#620 = DIRECTION('',(-0.57922796534,-0.57922796534,0.573576436351));
#621 = PCURVE('',#589,#622);
#622 = DEFINITIONAL_REPRESENTATION('',(#623),#627);
#623 = LINE('',#624,#625);
#624 = CARTESIAN_POINT('',(9.424777960769,-3.836930773105E-13));
#625 = VECTOR('',#626,1.);
#626 = DIRECTION('',(0.,1.));
#627 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#628 = PCURVE('',#589,#629);
#629 = DEFINITIONAL_REPRESENTATION('',(#630),#634);
#630 = LINE('',#631,#632);
#631 = CARTESIAN_POINT('',(3.14159265359,-3.836930773105E-13));
#632 = VECTOR('',#633,1.);
#633 = DIRECTION('',(0.,1.));
#634 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#635 = ORIENTED_EDGE('',*,*,#636,.T.);
#636 = EDGE_CURVE('',#614,#614,#637,.T.);
#637 = SURFACE_CURVE('',#638,(#643,#650),.PCURVE_S1.);
#638 = CIRCLE('',#639,25.);
#639 = AXIS2_PLACEMENT_3D('',#640,#641,#642);
#640 = CARTESIAN_POINT('',(185.88845066121,34.111755364579,
    -163.4474715236));
#641 = DIRECTION('',(0.57922796534,0.57922796534,-0.573576436351));
#642 = DIRECTION('',(0.707106781187,-0.707106781187,2.775557561563E-16)
  );
#643 = PCURVE('',#589,#644);
#644 = DEFINITIONAL_REPRESENTATION('',(#645),#649);
#645 = LINE('',#646,#647);
#646 = CARTESIAN_POINT('',(12.566370614359,37.499999999999));
#647 = VECTOR('',#648,1.);
#648 = DIRECTION('',(-1.,0.));
#649 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#650 = PCURVE('',#651,#656);
#651 = PLANE('',#652);
#652 = AXIS2_PLACEMENT_3D('',#653,#654,#655);
#653 = CARTESIAN_POINT('',(185.88845066121,34.111755364579,
    -163.4474715236));
#654 = DIRECTION('',(0.57922796534,0.57922796534,-0.573576436351));
#655 = DIRECTION('',(-0.707106781187,0.707106781187,-2.775557561563E-16)
  );
#656 = DEFINITIONAL_REPRESENTATION('',(#657),#661);
#657 = CIRCLE('',#658,25.);
#658 = AXIS2_PLACEMENT_2D('',#659,#660);
#659 = CARTESIAN_POINT('',(0.,0.));
#660 = DIRECTION('',(-1.,-1.742027637139E-17));
#661 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#662 = ORIENTED_EDGE('',*,*,#613,.F.);
#663 = ADVANCED_FACE('',(#664),#651,.F.);
#664 = FACE_BOUND('',#665,.T.);
#665 = EDGE_LOOP('',(#666));
#666 = ORIENTED_EDGE('',*,*,#636,.F.);
#667 = ADVANCED_FACE('',(#668),#601,.F.);
#668 = FACE_BOUND('',#669,.T.);
#669 = EDGE_LOOP('',(#670));
#670 = ORIENTED_EDGE('',*,*,#579,.F.);
#671 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#675)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#672,#673,#674)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#672 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#673 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#674 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#675 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#672,
  'distance_accuracy_value','confusion accuracy');
#676 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#677,#679);
#677 = ( REPRESENTATION_RELATIONSHIP('','',#572,#554) 
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#678) 
SHAPE_REPRESENTATION_RELATIONSHIP() );
#678 = ITEM_DEFINED_TRANSFORMATION('','',#11,#555);
#679 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#680
  );
#680 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('5','','',#549,#567,$);
#681 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#569));
#682 = SHAPE_DEFINITION_REPRESENTATION(#683,#689);
#683 = PRODUCT_DEFINITION_SHAPE('','',#684);
#684 = PRODUCT_DEFINITION('design','',#685,#688);
#685 = PRODUCT_DEFINITION_FORMATION('','',#686);
#686 = PRODUCT('8Cylinders v2','8Cylinders v2','',(#687));
#687 = PRODUCT_CONTEXT('',#2,'mechanical');
#688 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#689 = SHAPE_REPRESENTATION('',(#11,#690),#694);
#690 = AXIS2_PLACEMENT_3D('',#691,#692,#693);
#691 = CARTESIAN_POINT('',(0.,0.,0.));
#692 = DIRECTION('',(0.,0.,1.));
#693 = DIRECTION('',(1.,0.,-0.));
#694 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#698)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#695,#696,#697)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#695 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#696 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#697 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#698 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#695,
  'distance_accuracy_value','confusion accuracy');
#699 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#686));
#700 = SHAPE_DEFINITION_REPRESENTATION(#701,#707);
#701 = PRODUCT_DEFINITION_SHAPE('','',#702);
#702 = PRODUCT_DEFINITION('design','',#703,#706);
#703 = PRODUCT_DEFINITION_FORMATION('','',#704);
#704 = PRODUCT('SOLID','SOLID','',(#705));
#705 = PRODUCT_CONTEXT('',#2,'mechanical');
#706 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#707 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#708),#806);
#708 = MANIFOLD_SOLID_BREP('',#709);
#709 = CLOSED_SHELL('',(#710,#798,#802));
#710 = ADVANCED_FACE('',(#711),#724,.T.);
#711 = FACE_BOUND('',#712,.T.);
#712 = EDGE_LOOP('',(#713,#747,#770,#797));
#713 = ORIENTED_EDGE('',*,*,#714,.F.);
#714 = EDGE_CURVE('',#715,#715,#717,.T.);
#715 = VERTEX_POINT('',#716);
#716 = CARTESIAN_POINT('',(211.65287853202,-95.23152229471,
    -206.4657042499));
#717 = SURFACE_CURVE('',#718,(#723,#735),.PCURVE_S1.);
#718 = CIRCLE('',#719,25.);
#719 = AXIS2_PLACEMENT_3D('',#720,#721,#722);
#720 = CARTESIAN_POINT('',(229.33054806168,-77.55385276504,
    -206.4657042499));
#721 = DIRECTION('',(0.57922796534,-0.57922796534,-0.573576436351));
#722 = DIRECTION('',(0.707106781187,0.707106781187,2.775557561563E-16));
#723 = PCURVE('',#724,#729);
#724 = CYLINDRICAL_SURFACE('',#725,25.);
#725 = AXIS2_PLACEMENT_3D('',#726,#727,#728);
#726 = CARTESIAN_POINT('',(207.60949936144,-55.83280406481,
    -184.9565878868));
#727 = DIRECTION('',(0.57922796534,-0.57922796534,-0.573576436351));
#728 = DIRECTION('',(0.707106781187,0.707106781187,2.775557561563E-16));
#729 = DEFINITIONAL_REPRESENTATION('',(#730),#734);
#730 = LINE('',#731,#732);
#731 = CARTESIAN_POINT('',(-6.28318530718,37.500000000001));
#732 = VECTOR('',#733,1.);
#733 = DIRECTION('',(1.,0.));
#734 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#735 = PCURVE('',#736,#741);
#736 = PLANE('',#737);
#737 = AXIS2_PLACEMENT_3D('',#738,#739,#740);
#738 = CARTESIAN_POINT('',(229.33054806168,-77.55385276504,
    -206.4657042499));
#739 = DIRECTION('',(0.57922796534,-0.57922796534,-0.573576436351));
#740 = DIRECTION('',(0.707106781187,0.707106781187,2.775557561563E-16));
#741 = DEFINITIONAL_REPRESENTATION('',(#742),#746);
#742 = CIRCLE('',#743,25.);
#743 = AXIS2_PLACEMENT_2D('',#744,#745);
#744 = CARTESIAN_POINT('',(0.,0.));
#745 = DIRECTION('',(1.,-1.742027637139E-17));
#746 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#747 = ORIENTED_EDGE('',*,*,#748,.T.);
#748 = EDGE_CURVE('',#715,#749,#751,.T.);
#749 = VERTEX_POINT('',#750);
#750 = CARTESIAN_POINT('',(168.21078113155,-51.78942489424,
    -163.4474715236));
#751 = SEAM_CURVE('',#752,(#756,#763),.PCURVE_S1.);
#752 = LINE('',#753,#754);
#753 = CARTESIAN_POINT('',(189.93182983178,-73.51047359447,
    -184.9565878868));
#754 = VECTOR('',#755,1.);
#755 = DIRECTION('',(-0.57922796534,0.57922796534,0.573576436351));
#756 = PCURVE('',#724,#757);
#757 = DEFINITIONAL_REPRESENTATION('',(#758),#762);
#758 = LINE('',#759,#760);
#759 = CARTESIAN_POINT('',(-3.14159265359,3.836930773105E-13));
#760 = VECTOR('',#761,1.);
#761 = DIRECTION('',(0.,-1.));
#762 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#763 = PCURVE('',#724,#764);
#764 = DEFINITIONAL_REPRESENTATION('',(#765),#769);
#765 = LINE('',#766,#767);
#766 = CARTESIAN_POINT('',(3.14159265359,3.836930773105E-13));
#767 = VECTOR('',#768,1.);
#768 = DIRECTION('',(0.,-1.));
#769 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#770 = ORIENTED_EDGE('',*,*,#771,.F.);
#771 = EDGE_CURVE('',#749,#749,#772,.T.);
#772 = SURFACE_CURVE('',#773,(#778,#785),.PCURVE_S1.);
#773 = CIRCLE('',#774,25.);
#774 = AXIS2_PLACEMENT_3D('',#775,#776,#777);
#775 = CARTESIAN_POINT('',(185.88845066121,-34.11175536457,
    -163.4474715236));
#776 = DIRECTION('',(-0.57922796534,0.57922796534,0.573576436351));
#777 = DIRECTION('',(0.707106781187,0.707106781187,2.775557561563E-16));
#778 = PCURVE('',#724,#779);
#779 = DEFINITIONAL_REPRESENTATION('',(#780),#784);
#780 = LINE('',#781,#782);
#781 = CARTESIAN_POINT('',(6.28318530718,-37.49999999999));
#782 = VECTOR('',#783,1.);
#783 = DIRECTION('',(-1.,0.));
#784 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#785 = PCURVE('',#786,#791);
#786 = PLANE('',#787);
#787 = AXIS2_PLACEMENT_3D('',#788,#789,#790);
#788 = CARTESIAN_POINT('',(185.88845066121,-34.11175536457,
    -163.4474715236));
#789 = DIRECTION('',(-0.57922796534,0.57922796534,0.573576436351));
#790 = DIRECTION('',(-0.707106781187,-0.707106781187,-2.775557561563E-16
    ));
#791 = DEFINITIONAL_REPRESENTATION('',(#792),#796);
#792 = CIRCLE('',#793,25.);
#793 = AXIS2_PLACEMENT_2D('',#794,#795);
#794 = CARTESIAN_POINT('',(0.,0.));
#795 = DIRECTION('',(-1.,-1.742027637139E-17));
#796 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#797 = ORIENTED_EDGE('',*,*,#748,.F.);
#798 = ADVANCED_FACE('',(#799),#786,.T.);
#799 = FACE_BOUND('',#800,.T.);
#800 = EDGE_LOOP('',(#801));
#801 = ORIENTED_EDGE('',*,*,#771,.T.);
#802 = ADVANCED_FACE('',(#803),#736,.T.);
#803 = FACE_BOUND('',#804,.T.);
#804 = EDGE_LOOP('',(#805));
#805 = ORIENTED_EDGE('',*,*,#714,.T.);
#806 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#810)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#807,#808,#809)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#807 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#808 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#809 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#810 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#807,
  'distance_accuracy_value','confusion accuracy');
#811 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#812,#814);
#812 = ( REPRESENTATION_RELATIONSHIP('','',#707,#689) 
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#813) 
SHAPE_REPRESENTATION_RELATIONSHIP() );
#813 = ITEM_DEFINED_TRANSFORMATION('','',#11,#690);
#814 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#815
  );
#815 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('6','','',#684,#702,$);
#816 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#704));
#817 = SHAPE_DEFINITION_REPRESENTATION(#818,#824);
#818 = PRODUCT_DEFINITION_SHAPE('','',#819);
#819 = PRODUCT_DEFINITION('design','',#820,#823);
#820 = PRODUCT_DEFINITION_FORMATION('','',#821);
#821 = PRODUCT('8Cylinders v2','8Cylinders v2','',(#822));
#822 = PRODUCT_CONTEXT('',#2,'mechanical');
#823 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#824 = SHAPE_REPRESENTATION('',(#11,#825),#829);
#825 = AXIS2_PLACEMENT_3D('',#826,#827,#828);
#826 = CARTESIAN_POINT('',(0.,0.,0.));
#827 = DIRECTION('',(0.,0.,1.));
#828 = DIRECTION('',(1.,0.,-0.));
#829 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#833)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#830,#831,#832)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#830 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#831 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#832 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#833 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#830,
  'distance_accuracy_value','confusion accuracy');
#834 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#821));
#835 = SHAPE_DEFINITION_REPRESENTATION(#836,#842);
#836 = PRODUCT_DEFINITION_SHAPE('','',#837);
#837 = PRODUCT_DEFINITION('design','',#838,#841);
#838 = PRODUCT_DEFINITION_FORMATION('','',#839);
#839 = PRODUCT('SOLID','SOLID','',(#840));
#840 = PRODUCT_CONTEXT('',#2,'mechanical');
#841 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#842 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#843),#941);
#843 = MANIFOLD_SOLID_BREP('',#844);
#844 = CLOSED_SHELL('',(#845,#933,#937));
#845 = ADVANCED_FACE('',(#846),#859,.T.);
#846 = FACE_BOUND('',#847,.T.);
#847 = EDGE_LOOP('',(#848,#882,#905,#932));
#848 = ORIENTED_EDGE('',*,*,#849,.F.);
#849 = EDGE_CURVE('',#850,#850,#852,.T.);
#850 = VERTEX_POINT('',#851);
#851 = CARTESIAN_POINT('',(-211.652878532,95.23152229471,-206.4657042499
    ));
#852 = SURFACE_CURVE('',#853,(#858,#870),.PCURVE_S1.);
#853 = CIRCLE('',#854,25.);
#854 = AXIS2_PLACEMENT_3D('',#855,#856,#857);
#855 = CARTESIAN_POINT('',(-229.3305480616,77.553852765046,
    -206.4657042499));
#856 = DIRECTION('',(-0.57922796534,0.57922796534,-0.573576436351));
#857 = DIRECTION('',(-0.707106781187,-0.707106781187,2.775557561563E-16)
  );
#858 = PCURVE('',#859,#864);
#859 = CYLINDRICAL_SURFACE('',#860,25.);
#860 = AXIS2_PLACEMENT_3D('',#861,#862,#863);
#861 = CARTESIAN_POINT('',(-207.6094993614,55.832804064812,
    -184.9565878868));
#862 = DIRECTION('',(-0.57922796534,0.57922796534,-0.573576436351));
#863 = DIRECTION('',(-0.707106781187,-0.707106781187,2.775557561563E-16)
  );
#864 = DEFINITIONAL_REPRESENTATION('',(#865),#869);
#865 = LINE('',#866,#867);
#866 = CARTESIAN_POINT('',(-6.28318530718,37.500000000001));
#867 = VECTOR('',#868,1.);
#868 = DIRECTION('',(1.,0.));
#869 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#870 = PCURVE('',#871,#876);
#871 = PLANE('',#872);
#872 = AXIS2_PLACEMENT_3D('',#873,#874,#875);
#873 = CARTESIAN_POINT('',(-229.3305480616,77.553852765046,
    -206.4657042499));
#874 = DIRECTION('',(-0.57922796534,0.57922796534,-0.573576436351));
#875 = DIRECTION('',(-0.707106781187,-0.707106781187,2.775557561563E-16)
  );
#876 = DEFINITIONAL_REPRESENTATION('',(#877),#881);
#877 = CIRCLE('',#878,25.);
#878 = AXIS2_PLACEMENT_2D('',#879,#880);
#879 = CARTESIAN_POINT('',(0.,0.));
#880 = DIRECTION('',(1.,-1.742027637139E-17));
#881 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#882 = ORIENTED_EDGE('',*,*,#883,.T.);
#883 = EDGE_CURVE('',#850,#884,#886,.T.);
#884 = VERTEX_POINT('',#885);
#885 = CARTESIAN_POINT('',(-168.2107811315,51.789424894242,
    -163.4474715236));
#886 = SEAM_CURVE('',#887,(#891,#898),.PCURVE_S1.);
#887 = LINE('',#888,#889);
#888 = CARTESIAN_POINT('',(-189.9318298317,73.510473594476,
    -184.9565878868));
#889 = VECTOR('',#890,1.);
#890 = DIRECTION('',(0.57922796534,-0.57922796534,0.573576436351));
#891 = PCURVE('',#859,#892);
#892 = DEFINITIONAL_REPRESENTATION('',(#893),#897);
#893 = LINE('',#894,#895);
#894 = CARTESIAN_POINT('',(-3.14159265359,3.836930773105E-13));
#895 = VECTOR('',#896,1.);
#896 = DIRECTION('',(0.,-1.));
#897 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#898 = PCURVE('',#859,#899);
#899 = DEFINITIONAL_REPRESENTATION('',(#900),#904);
#900 = LINE('',#901,#902);
#901 = CARTESIAN_POINT('',(3.14159265359,3.836930773105E-13));
#902 = VECTOR('',#903,1.);
#903 = DIRECTION('',(0.,-1.));
#904 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#905 = ORIENTED_EDGE('',*,*,#906,.F.);
#906 = EDGE_CURVE('',#884,#884,#907,.T.);
#907 = SURFACE_CURVE('',#908,(#913,#920),.PCURVE_S1.);
#908 = CIRCLE('',#909,25.);
#909 = AXIS2_PLACEMENT_3D('',#910,#911,#912);
#910 = CARTESIAN_POINT('',(-185.8884506612,34.111755364579,
    -163.4474715236));
#911 = DIRECTION('',(0.57922796534,-0.57922796534,0.573576436351));
#912 = DIRECTION('',(-0.707106781187,-0.707106781187,2.775557561563E-16)
  );
#913 = PCURVE('',#859,#914);
#914 = DEFINITIONAL_REPRESENTATION('',(#915),#919);
#915 = LINE('',#916,#917);
#916 = CARTESIAN_POINT('',(6.28318530718,-37.49999999999));
#917 = VECTOR('',#918,1.);
#918 = DIRECTION('',(-1.,0.));
#919 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#920 = PCURVE('',#921,#926);
#921 = PLANE('',#922);
#922 = AXIS2_PLACEMENT_3D('',#923,#924,#925);
#923 = CARTESIAN_POINT('',(-185.8884506612,34.111755364579,
    -163.4474715236));
#924 = DIRECTION('',(0.57922796534,-0.57922796534,0.573576436351));
#925 = DIRECTION('',(0.707106781187,0.707106781187,-2.775557561563E-16)
  );
#926 = DEFINITIONAL_REPRESENTATION('',(#927),#931);
#927 = CIRCLE('',#928,25.);
#928 = AXIS2_PLACEMENT_2D('',#929,#930);
#929 = CARTESIAN_POINT('',(0.,0.));
#930 = DIRECTION('',(-1.,-1.742027637139E-17));
#931 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#932 = ORIENTED_EDGE('',*,*,#883,.F.);
#933 = ADVANCED_FACE('',(#934),#921,.T.);
#934 = FACE_BOUND('',#935,.T.);
#935 = EDGE_LOOP('',(#936));
#936 = ORIENTED_EDGE('',*,*,#906,.T.);
#937 = ADVANCED_FACE('',(#938),#871,.T.);
#938 = FACE_BOUND('',#939,.T.);
#939 = EDGE_LOOP('',(#940));
#940 = ORIENTED_EDGE('',*,*,#849,.T.);
#941 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#945)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#942,#943,#944)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#942 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#943 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#944 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#945 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#942,
  'distance_accuracy_value','confusion accuracy');
#946 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#947,#949);
#947 = ( REPRESENTATION_RELATIONSHIP('','',#842,#824) 
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#948) 
SHAPE_REPRESENTATION_RELATIONSHIP() );
#948 = ITEM_DEFINED_TRANSFORMATION('','',#11,#825);
#949 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#950
  );
#950 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('7','','',#819,#837,$);
#951 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#839));
#952 = SHAPE_DEFINITION_REPRESENTATION(#953,#959);
#953 = PRODUCT_DEFINITION_SHAPE('','',#954);
#954 = PRODUCT_DEFINITION('design','',#955,#958);
#955 = PRODUCT_DEFINITION_FORMATION('','',#956);
#956 = PRODUCT('8Cylinders v2','8Cylinders v2','',(#957));
#957 = PRODUCT_CONTEXT('',#2,'mechanical');
#958 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#959 = SHAPE_REPRESENTATION('',(#11,#960),#964);
#960 = AXIS2_PLACEMENT_3D('',#961,#962,#963);
#961 = CARTESIAN_POINT('',(0.,0.,0.));
#962 = DIRECTION('',(0.,0.,1.));
#963 = DIRECTION('',(1.,0.,-0.));
#964 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#968)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#965,#966,#967)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#965 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#966 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#967 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#968 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#965,
  'distance_accuracy_value','confusion accuracy');
#969 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#956));
#970 = SHAPE_DEFINITION_REPRESENTATION(#971,#977);
#971 = PRODUCT_DEFINITION_SHAPE('','',#972);
#972 = PRODUCT_DEFINITION('design','',#973,#976);
#973 = PRODUCT_DEFINITION_FORMATION('','',#974);
#974 = PRODUCT('SOLID','SOLID','',(#975));
#975 = PRODUCT_CONTEXT('',#2,'mechanical');
#976 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#977 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#978),#1076);
#978 = MANIFOLD_SOLID_BREP('',#979);
#979 = CLOSED_SHELL('',(#980,#1068,#1072));
#980 = ADVANCED_FACE('',(#981),#994,.T.);
#981 = FACE_BOUND('',#982,.T.);
#982 = EDGE_LOOP('',(#983,#1017,#1040,#1067));
#983 = ORIENTED_EDGE('',*,*,#984,.T.);
#984 = EDGE_CURVE('',#985,#985,#987,.T.);
#985 = VERTEX_POINT('',#986);
#986 = CARTESIAN_POINT('',(-211.652878532,-95.23152229471,
    -206.4657042499));
#987 = SURFACE_CURVE('',#988,(#993,#1005),.PCURVE_S1.);
#988 = CIRCLE('',#989,25.);
#989 = AXIS2_PLACEMENT_3D('',#990,#991,#992);
#990 = CARTESIAN_POINT('',(-229.3305480616,-77.55385276504,
    -206.4657042499));
#991 = DIRECTION('',(0.57922796534,0.57922796534,0.573576436351));
#992 = DIRECTION('',(-0.707106781187,0.707106781187,2.775557561563E-16)
  );
#993 = PCURVE('',#994,#999);
#994 = CYLINDRICAL_SURFACE('',#995,25.);
#995 = AXIS2_PLACEMENT_3D('',#996,#997,#998);
#996 = CARTESIAN_POINT('',(-207.6094993614,-55.83280406481,
    -184.9565878868));
#997 = DIRECTION('',(0.57922796534,0.57922796534,0.573576436351));
#998 = DIRECTION('',(-0.707106781187,0.707106781187,2.775557561563E-16)
  );
#999 = DEFINITIONAL_REPRESENTATION('',(#1000),#1004);
#1000 = LINE('',#1001,#1002);
#1001 = CARTESIAN_POINT('',(2.13162820728E-14,-37.5));
#1002 = VECTOR('',#1003,1.);
#1003 = DIRECTION('',(1.,0.));
#1004 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#1005 = PCURVE('',#1006,#1011);
#1006 = PLANE('',#1007);
#1007 = AXIS2_PLACEMENT_3D('',#1008,#1009,#1010);
#1008 = CARTESIAN_POINT('',(-229.3305480616,-77.55385276504,
    -206.4657042499));
#1009 = DIRECTION('',(0.57922796534,0.57922796534,0.573576436351));
#1010 = DIRECTION('',(-0.707106781187,0.707106781187,2.775557561563E-16)
  );
#1011 = DEFINITIONAL_REPRESENTATION('',(#1012),#1016);
#1012 = CIRCLE('',#1013,25.);
#1013 = AXIS2_PLACEMENT_2D('',#1014,#1015);
#1014 = CARTESIAN_POINT('',(0.,0.));
#1015 = DIRECTION('',(1.,-1.742027637139E-17));
#1016 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#1017 = ORIENTED_EDGE('',*,*,#1018,.T.);
#1018 = EDGE_CURVE('',#985,#1019,#1021,.T.);
#1019 = VERTEX_POINT('',#1020);
#1020 = CARTESIAN_POINT('',(-168.2107811315,-51.78942489424,
    -163.4474715236));
#1021 = SEAM_CURVE('',#1022,(#1026,#1033),.PCURVE_S1.);
#1022 = LINE('',#1023,#1024);
#1023 = CARTESIAN_POINT('',(-189.9318298317,-73.51047359447,
    -184.9565878868));
#1024 = VECTOR('',#1025,1.);
#1025 = DIRECTION('',(0.57922796534,0.57922796534,0.573576436351));
#1026 = PCURVE('',#994,#1027);
#1027 = DEFINITIONAL_REPRESENTATION('',(#1028),#1032);
#1028 = LINE('',#1029,#1030);
#1029 = CARTESIAN_POINT('',(9.424777960769,-3.836930773105E-13));
#1030 = VECTOR('',#1031,1.);
#1031 = DIRECTION('',(0.,1.));
#1032 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#1033 = PCURVE('',#994,#1034);
#1034 = DEFINITIONAL_REPRESENTATION('',(#1035),#1039);
#1035 = LINE('',#1036,#1037);
#1036 = CARTESIAN_POINT('',(3.14159265359,-3.836930773105E-13));
#1037 = VECTOR('',#1038,1.);
#1038 = DIRECTION('',(0.,1.));
#1039 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#1040 = ORIENTED_EDGE('',*,*,#1041,.T.);
#1041 = EDGE_CURVE('',#1019,#1019,#1042,.T.);
#1042 = SURFACE_CURVE('',#1043,(#1048,#1055),.PCURVE_S1.);
#1043 = CIRCLE('',#1044,25.);
#1044 = AXIS2_PLACEMENT_3D('',#1045,#1046,#1047);
#1045 = CARTESIAN_POINT('',(-185.8884506612,-34.11175536457,
    -163.4474715236));
#1046 = DIRECTION('',(-0.57922796534,-0.57922796534,-0.573576436351));
#1047 = DIRECTION('',(-0.707106781187,0.707106781187,2.775557561563E-16)
  );
#1048 = PCURVE('',#994,#1049);
#1049 = DEFINITIONAL_REPRESENTATION('',(#1050),#1054);
#1050 = LINE('',#1051,#1052);
#1051 = CARTESIAN_POINT('',(12.566370614359,37.499999999999));
#1052 = VECTOR('',#1053,1.);
#1053 = DIRECTION('',(-1.,0.));
#1054 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#1055 = PCURVE('',#1056,#1061);
#1056 = PLANE('',#1057);
#1057 = AXIS2_PLACEMENT_3D('',#1058,#1059,#1060);
#1058 = CARTESIAN_POINT('',(-185.8884506612,-34.11175536457,
    -163.4474715236));
#1059 = DIRECTION('',(-0.57922796534,-0.57922796534,-0.573576436351));
#1060 = DIRECTION('',(0.707106781187,-0.707106781187,-2.775557561563E-16
    ));
#1061 = DEFINITIONAL_REPRESENTATION('',(#1062),#1066);
#1062 = CIRCLE('',#1063,25.);
#1063 = AXIS2_PLACEMENT_2D('',#1064,#1065);
#1064 = CARTESIAN_POINT('',(0.,0.));
#1065 = DIRECTION('',(-1.,-1.742027637139E-17));
#1066 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#1067 = ORIENTED_EDGE('',*,*,#1018,.F.);
#1068 = ADVANCED_FACE('',(#1069),#1056,.F.);
#1069 = FACE_BOUND('',#1070,.T.);
#1070 = EDGE_LOOP('',(#1071));
#1071 = ORIENTED_EDGE('',*,*,#1041,.F.);
#1072 = ADVANCED_FACE('',(#1073),#1006,.F.);
#1073 = FACE_BOUND('',#1074,.T.);
#1074 = EDGE_LOOP('',(#1075));
#1075 = ORIENTED_EDGE('',*,*,#984,.F.);
#1076 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#1080)) 
GLOBAL_UNIT_ASSIGNED_CONTEXT((#1077,#1078,#1079)) REPRESENTATION_CONTEXT
('Context #1','3D Context with UNIT and UNCERTAINTY') );
#1077 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#1078 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#1079 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#1080 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#1077,
  'distance_accuracy_value','confusion accuracy');
#1081 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1082,#1084);
#1082 = ( REPRESENTATION_RELATIONSHIP('','',#977,#959) 
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1083) 
SHAPE_REPRESENTATION_RELATIONSHIP() );
#1083 = ITEM_DEFINED_TRANSFORMATION('','',#11,#960);
#1084 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',
  #1085);
#1085 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('8','','',#954,#972,$);
#1086 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#974));
#1087 = REPRESENTATION('material name',(#1088),#131);
#1088 = DESCRIPTIVE_REPRESENTATION_ITEM('Material Name 1',
  'Material description 1');
#1089 = DERIVED_UNIT((#1090,#1092));
#1090 = DERIVED_UNIT_ELEMENT(#1091,3.);
#1091 = ( MASS_UNIT() NAMED_UNIT(*) SI_UNIT($,.GRAM.) );
#1092 = DERIVED_UNIT_ELEMENT(#1093,2.);
#1093 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.CENTI.,.METRE.) );
#1094 = REPRESENTATION('density',(#1095),#131);
#1095 = MEASURE_REPRESENTATION_ITEM('Material densName 1',7.85E-06,#1089
  );
#1096 = PROPERTY_DEFINITION('material property','material name',#27);
#1097 = PROPERTY_DEFINITION_REPRESENTATION(#1096,#1087);
#1098 = PROPERTY_DEFINITION('material property','density',#27);
#1099 = PROPERTY_DEFINITION_REPRESENTATION(#1098,#1094);
#1100 = REPRESENTATION('material name',(#1101),#266);
#1101 = DESCRIPTIVE_REPRESENTATION_ITEM('Material Name 2',
  'Material description 2');
#1102 = PROPERTY_DEFINITION('material property','material name',#162);
#1103 = PROPERTY_DEFINITION_REPRESENTATION(#1102,#1100);
#1104 = REPRESENTATION('material name',(#1105),#401);
#1105 = DESCRIPTIVE_REPRESENTATION_ITEM('Material Name 3',
  'Material description 3');
#1106 = PROPERTY_DEFINITION('material property','material name',#297);
#1107 = PROPERTY_DEFINITION_REPRESENTATION(#1106,#1104);
#1108 = REPRESENTATION('material name',(#1109),#536);
#1109 = DESCRIPTIVE_REPRESENTATION_ITEM('Material Name 4',
  'Material description 4');
#1110 = PROPERTY_DEFINITION('material property','material name',#432);
#1111 = PROPERTY_DEFINITION_REPRESENTATION(#1110,#1108);
#1112 = REPRESENTATION('material name',(#1113),#671);
#1113 = DESCRIPTIVE_REPRESENTATION_ITEM('Material Name 5',
  'Material description 5');
#1114 = PROPERTY_DEFINITION('material property','material name',#567);
#1115 = PROPERTY_DEFINITION_REPRESENTATION(#1114,#1112);
#1116 = REPRESENTATION('material name',(#1117),#806);
#1117 = DESCRIPTIVE_REPRESENTATION_ITEM('Material Name 6',
  'Material description 6');
#1118 = PROPERTY_DEFINITION('material property','material name',#702);
#1119 = PROPERTY_DEFINITION_REPRESENTATION(#1118,#1116);
#1120 = REPRESENTATION('material name',(#1121),#941);
#1121 = DESCRIPTIVE_REPRESENTATION_ITEM('Material Name 7',
  'Material description 7');
#1122 = PROPERTY_DEFINITION('material property','material name',#837);
#1123 = PROPERTY_DEFINITION_REPRESENTATION(#1122,#1120);
#1124 = REPRESENTATION('material name',(#1125),#1076);
#1125 = DESCRIPTIVE_REPRESENTATION_ITEM('Material Name 8',
  'Material description 8');
#1126 = PROPERTY_DEFINITION('material property','material name',#972);
#1127 = PROPERTY_DEFINITION_REPRESENTATION(#1126,#1124);
ENDSEC;
END-ISO-10303-21;
```
Issue confirmed.

This is because the ```TCollection_HAsciiString``` c++ type returned by reference is not correctly wrapped.

Fix patch:
diff --git a/src/SWIG_files/common/FunctionTransformers.i b/src/SWIG_files/common/FunctionTransformers.i
index 8003e7c99..e600699b6 100644
--- a/src/SWIG_files/common/FunctionTransformers.i
+++ b/src/SWIG_files/common/FunctionTransformers.i
@@ -21,10 +21,39 @@ along with pythonOCC.  If not, see <http://www.gnu.org/licenses/>.
 
 %{
 #include <TopoDS.hxx>
+#include <TCollection_HAsciiString.hxx>
 %}
 
 %include <typemaps.i>
 
+/*
+TCollection_HAsciiString & function transformation
+*/
+%typemap(argout) opencascade::handle<TCollection_HAsciiString> &OutValue {
+    PyObject *o, *o2, *o3;
+    opencascade::handle<TCollection_HAsciiString> thas = new TCollection_HAsciiString(*$1);
+    o = PyString_FromString(thas->ToCString());
+    if ((!$result) || ($result == Py_None)) {
+        $result = o;
+    } else {
+        if (!PyTuple_Check($result)) {
+            PyObject *o2 = $result;
+            $result = PyTuple_New(1);
+            PyTuple_SetItem($result,0,o2);
+        }
+        o3 = PyTuple_New(1);
+        PyTuple_SetItem(o3,0,o);
+        o2 = $result;
+        $result = PySequence_Concat(o2,o3);
+        Py_DECREF(o2);
+        Py_DECREF(o3);
+    }
+}
+
+%typemap(in,numinputs=0) opencascade::handle<TCollection_HAsciiString>  &OutValue(opencascade::handle<TCollection_HAsciiString>  temp) {
+    $1 = &temp;
+}
+
 /*
 Standard_Real & function transformation
 */
diff --git a/src/SWIG_files/wrapper/IGESData.i b/src/SWIG_files/wrapper/IGESData.i
index b8a9e356e..af13e46b6 100644
--- a/src/SWIG_files/wrapper/IGESData.i
+++ b/src/SWIG_files/wrapper/IGESData.i
@@ -5472,13 +5472,12 @@ Parameters
 ----------
 PC: IGESData_ParamCursor
 amsg: Message_Msg
-val: TCollection_HAsciiString
 
 Returns
 -------
-bool
+val: TCollection_HAsciiString
 ") ReadText;
-		Standard_Boolean ReadText(const IGESData_ParamCursor & PC, const Message_Msg & amsg, opencascade::handle<TCollection_HAsciiString> & val);
+		Standard_Boolean ReadText(const IGESData_ParamCursor & PC, const Message_Msg & amsg, opencascade::handle<TCollection_HAsciiString> &OutValue);
 
 		/****************** ReadText ******************/
 		/**** md5 signature: 583adf171adc696820aae6403d5703c0 ****/
@@ -5489,13 +5488,12 @@ Parameters
 ----------
 PC: IGESData_ParamCursor
 mess: char *
-val: TCollection_HAsciiString
 
 Returns
 -------
-bool
+val: TCollection_HAsciiString
 ") ReadText;
-		Standard_Boolean ReadText(const IGESData_ParamCursor & PC, const char * mess, opencascade::handle<TCollection_HAsciiString> & val);
+		Standard_Boolean ReadText(const IGESData_ParamCursor & PC, const char * mess, opencascade::handle<TCollection_HAsciiString> &OutValue);
 
 		/****************** ReadTexts ******************/
 		/**** md5 signature: c6a37e5e63bf6ab8b99c9480e131fa17 ****/
@@ -7469,13 +7467,12 @@ Parameters
 num: int
 ptype: Interface_ParamType
 ent: IGESData_IGESEntity
-val: TCollection_HAsciiString
 
 Returns
 -------
-bool
+val: TCollection_HAsciiString
 ") ParamData;
-		Standard_Boolean ParamData(const Standard_Integer num, Interface_ParamType & ptype, opencascade::handle<IGESData_IGESEntity> & ent, opencascade::handle<TCollection_HAsciiString> & val);
+		Standard_Boolean ParamData(const Standard_Integer num, Interface_ParamType & ptype, opencascade::handle<IGESData_IGESEntity> & ent, opencascade::handle<TCollection_HAsciiString> &OutValue);
 
 		/****************** ParamEntity ******************/
 		/**** md5 signature: 2a0bffa8d17df8d6aa5a1fa692044d19 ****/
diff --git a/src/SWIG_files/wrapper/IGESData.pyi b/src/SWIG_files/wrapper/IGESData.pyi
index 66b93292a..7a107569a 100644
--- a/src/SWIG_files/wrapper/IGESData.pyi
+++ b/src/SWIG_files/wrapper/IGESData.pyi
@@ -554,9 +554,9 @@ class IGESData_ParamReader:
     @overload
     def ReadReals(self, PC: IGESData_ParamCursor, mess: str, val: TColStd_HArray1OfReal, index: Optional[int] = 1) -> bool: ...
     @overload
-    def ReadText(self, PC: IGESData_ParamCursor, amsg: Message_Msg, val: TCollection_HAsciiString) -> bool: ...
+    def ReadText(self, PC: IGESData_ParamCursor, amsg: Message_Msg) -> Tuple[bool, str]: ...
     @overload
-    def ReadText(self, PC: IGESData_ParamCursor, mess: str, val: TCollection_HAsciiString) -> bool: ...
+    def ReadText(self, PC: IGESData_ParamCursor, mess: str) -> Tuple[bool, str]: ...
     @overload
     def ReadTexts(self, PC: IGESData_ParamCursor, amsg: Message_Msg, val: Interface_HArray1OfHAsciiString, index: Optional[int] = 1) -> bool: ...
     @overload
@@ -736,7 +736,7 @@ class IGESData_FreeFormatEntity(IGESData_UndefinedEntity):
     def IsParamEntity(self, num: int) -> bool: ...
     def NbParams(self) -> int: ...
     def NegativePointers(self) -> TColStd_HSequenceOfInteger: ...
-    def ParamData(self, num: int, ptype: Interface_ParamType, ent: IGESData_IGESEntity, val: TCollection_HAsciiString) -> bool: ...
+    def ParamData(self, num: int, ptype: Interface_ParamType, ent: IGESData_IGESEntity) -> Tuple[bool, str]: ...
     def ParamEntity(self, num: int) -> IGESData_IGESEntity: ...
     def ParamType(self, num: int) -> Interface_ParamType: ...
     def ParamValue(self, num: int) -> TCollection_HAsciiString: ...
diff --git a/src/SWIG_files/wrapper/Interface.i b/src/SWIG_files/wrapper/Interface.i
index ad1f7612c..e7e7e5a9d 100644
--- a/src/SWIG_files/wrapper/Interface.i
+++ b/src/SWIG_files/wrapper/Interface.i
@@ -8386,7 +8386,6 @@ None
 
 Parameters
 ----------
-tit: TCollection_HAsciiString
 phn: TColStd_HSequenceOfAsciiString
 phw: TColStd_HSequenceOfReal
 phdeb: TColStd_HSequenceOfInteger
@@ -8395,9 +8394,10 @@ stw: TColStd_HSequenceOfReal
 
 Returns
 -------
+tit: TCollection_HAsciiString
 total: float
 ") Internals;
-		void Internals(opencascade::handle<TCollection_HAsciiString> & tit, Standard_Real &OutValue, opencascade::handle<TColStd_HSequenceOfAsciiString> & phn, opencascade::handle<TColStd_HSequenceOfReal> & phw, opencascade::handle<TColStd_HSequenceOfInteger> & phdeb, opencascade::handle<TColStd_HSequenceOfInteger> & phfin, opencascade::handle<TColStd_HSequenceOfReal> & stw);
+		void Internals(opencascade::handle<TCollection_HAsciiString> &OutValue, Standard_Real &OutValue, opencascade::handle<TColStd_HSequenceOfAsciiString> & phn, opencascade::handle<TColStd_HSequenceOfReal> & phw, opencascade::handle<TColStd_HSequenceOfInteger> & phdeb, opencascade::handle<TColStd_HSequenceOfInteger> & phfin, opencascade::handle<TColStd_HSequenceOfReal> & stw);
 
 		/****************** NextCycle ******************/
 		/**** md5 signature: ca214add52f3821b26accc6fe7f36e0c ****/
@@ -9288,13 +9288,13 @@ Parameters
 ----------
 num: int
 ent: Standard_Transient
-val: TCollection_HAsciiString
 
 Returns
 -------
 ptype: Interface_ParamType
+val: TCollection_HAsciiString
 ") ParamData;
-		Standard_Boolean ParamData(const Standard_Integer num, Interface_ParamType &OutValue, opencascade::handle<Standard_Transient> & ent, opencascade::handle<TCollection_HAsciiString> & val);
+		Standard_Boolean ParamData(const Standard_Integer num, Interface_ParamType &OutValue, opencascade::handle<Standard_Transient> & ent, opencascade::handle<TCollection_HAsciiString> &OutValue);
 
 		/****************** ParamEntity ******************/
 		/**** md5 signature: 761c0b32c3eb0e5da7ddfca321a3322d ****/
diff --git a/src/SWIG_files/wrapper/Interface.pyi b/src/SWIG_files/wrapper/Interface.pyi
index 12447ade2..0fd10e586 100644
--- a/src/SWIG_files/wrapper/Interface.pyi
+++ b/src/SWIG_files/wrapper/Interface.pyi
@@ -870,7 +870,7 @@ class Interface_STAT:
     def Description(self, title: str) -> Tuple[int, float]: ...
     @staticmethod
     def End() -> None: ...
-    def Internals(self, tit: TCollection_HAsciiString, phn: TColStd_HSequenceOfAsciiString, phw: TColStd_HSequenceOfReal, phdeb: TColStd_HSequenceOfInteger, phfin: TColStd_HSequenceOfInteger, stw: TColStd_HSequenceOfReal) -> float: ...
+    def Internals(self, phn: TColStd_HSequenceOfAsciiString, phw: TColStd_HSequenceOfReal, phdeb: TColStd_HSequenceOfInteger, phfin: TColStd_HSequenceOfInteger, stw: TColStd_HSequenceOfReal) -> Tuple[str, float]: ...
     @staticmethod
     def NextCycle(items: int) -> None: ...
     @staticmethod
@@ -959,7 +959,7 @@ class Interface_UndefinedContent(Standard_Transient):
     def IsParamEntity(self, num: int) -> bool: ...
     def NbLiterals(self) -> int: ...
     def NbParams(self) -> int: ...
-    def ParamData(self, num: int, ent: Standard_Transient, val: TCollection_HAsciiString) -> Tuple[bool, Interface_ParamType]: ...
+    def ParamData(self, num: int, ent: Standard_Transient) -> Tuple[bool, Interface_ParamType, str]: ...
     def ParamEntity(self, num: int) -> Standard_Transient: ...
     def ParamType(self, num: int) -> Interface_ParamType: ...
     def ParamValue(self, num: int) -> TCollection_HAsciiString: ...
diff --git a/src/SWIG_files/wrapper/StepData.i b/src/SWIG_files/wrapper/StepData.i
index cd7de7a3f..92ba0a142 100644
--- a/src/SWIG_files/wrapper/StepData.i
+++ b/src/SWIG_files/wrapper/StepData.i
@@ -4331,13 +4331,12 @@ num: int
 nump: int
 mess: char *
 ach: Interface_Check
-val: TCollection_HAsciiString
 
 Returns
 -------
-bool
+val: TCollection_HAsciiString
 ") ReadString;
-		Standard_Boolean ReadString(const Standard_Integer num, const Standard_Integer nump, const char * mess, opencascade::handle<Interface_Check> & ach, opencascade::handle<TCollection_HAsciiString> & val);
+		Standard_Boolean ReadString(const Standard_Integer num, const Standard_Integer nump, const char * mess, opencascade::handle<Interface_Check> & ach, opencascade::handle<TCollection_HAsciiString> &OutValue);
 
 		/****************** ReadSub ******************/
 		/**** md5 signature: c5ac3109022b64e7d22ee6e578f203ae ****/
diff --git a/src/SWIG_files/wrapper/StepData.pyi b/src/SWIG_files/wrapper/StepData.pyi
index c5007c701..a729dd5fa 100644
--- a/src/SWIG_files/wrapper/StepData.pyi
+++ b/src/SWIG_files/wrapper/StepData.pyi
@@ -381,7 +381,7 @@ class StepData_StepReaderData(Interface_FileReaderData):
     def ReadList(self, num: int, ach: Interface_Check, descr: StepData_ESDescr, list: StepData_FieldList) -> bool: ...
     def ReadLogical(self, num: int, nump: int, mess: str, ach: Interface_Check) -> Tuple[bool, StepData_Logical]: ...
     def ReadReal(self, num: int, nump: int, mess: str, ach: Interface_Check) -> Tuple[bool, float]: ...
-    def ReadString(self, num: int, nump: int, mess: str, ach: Interface_Check, val: TCollection_HAsciiString) -> bool: ...
+    def ReadString(self, num: int, nump: int, mess: str, ach: Interface_Check) -> Tuple[bool, str]: ...
     def ReadSub(self, numsub: int, mess: str, ach: Interface_Check, descr: StepData_PDescr, val: Standard_Transient) -> int: ...
     def ReadSubList(self, num: int, nump: int, mess: str, ach: Interface_Check, optional: Optional[bool] = False, lenmin: Optional[int] = 0, lenmax: Optional[int] = 0) -> Tuple[bool, int]: ...
     def ReadTypedParam(self, num: int, nump: int, mustbetyped: bool, mess: str, ach: Interface_Check, typ: TCollection_AsciiString) -> Tuple[bool, int, int]: ...
diff --git a/src/SWIG_files/wrapper/XCAFDoc.i b/src/SWIG_files/wrapper/XCAFDoc.i
index bfc5e89f4..e6a47e958 100644
--- a/src/SWIG_files/wrapper/XCAFDoc.i
+++ b/src/SWIG_files/wrapper/XCAFDoc.i
@@ -1755,13 +1755,13 @@ Parameters
 ----------
 theLabel: TDF_Label
 thePlane: gp_Pln
-theName: TCollection_HAsciiString
 
 Returns
 -------
+theName: TCollection_HAsciiString
 theCapping: bool
 ") GetClippingPlane;
-		Standard_Boolean GetClippingPlane(const TDF_Label & theLabel, gp_Pln & thePlane, opencascade::handle<TCollection_HAsciiString> & theName, Standard_Boolean &OutValue);
+		Standard_Boolean GetClippingPlane(const TDF_Label & theLabel, gp_Pln & thePlane, opencascade::handle<TCollection_HAsciiString> &OutValue, Standard_Boolean &OutValue);
 
 		/****************** GetClippingPlanes ******************/
 		/**** md5 signature: 075e7b42329dbcab74840155da865a35 ****/
@@ -3453,15 +3453,14 @@ TDF_Label
 Parameters
 ----------
 theDatumL: TDF_Label
-theName: TCollection_HAsciiString
-theDescription: TCollection_HAsciiString
-theIdentification: TCollection_HAsciiString
 
 Returns
 -------
-bool
+theName: TCollection_HAsciiString
+theDescription: TCollection_HAsciiString
+theIdentification: TCollection_HAsciiString
 ") GetDatum;
-		Standard_Boolean GetDatum(const TDF_Label & theDatumL, opencascade::handle<TCollection_HAsciiString> & theName, opencascade::handle<TCollection_HAsciiString> & theDescription, opencascade::handle<TCollection_HAsciiString> & theIdentification);
+		Standard_Boolean GetDatum(const TDF_Label & theDatumL, opencascade::handle<TCollection_HAsciiString> &OutValue, opencascade::handle<TCollection_HAsciiString> &OutValue, opencascade::handle<TCollection_HAsciiString> &OutValue);
 
 		/****************** GetDatumLabels ******************/
 		/**** md5 signature: 55e6de8f484b7fb12b9a45740915465a ****/
@@ -3519,14 +3518,14 @@ Parameters
 ----------
 theDimTolL: TDF_Label
 theVal: TColStd_HArray1OfReal
-theName: TCollection_HAsciiString
-theDescription: TCollection_HAsciiString
 
 Returns
 -------
 theKind: int
+theName: TCollection_HAsciiString
+theDescription: TCollection_HAsciiString
 ") GetDimTol;
-		Standard_Boolean GetDimTol(const TDF_Label & theDimTolL, Standard_Integer &OutValue, opencascade::handle<TColStd_HArray1OfReal> & theVal, opencascade::handle<TCollection_HAsciiString> & theName, opencascade::handle<TCollection_HAsciiString> & theDescription);
+		Standard_Boolean GetDimTol(const TDF_Label & theDimTolL, Standard_Integer &OutValue, opencascade::handle<TColStd_HArray1OfReal> & theVal, opencascade::handle<TCollection_HAsciiString> &OutValue, opencascade::handle<TCollection_HAsciiString> &OutValue);
 
 		/****************** GetDimTolLabels ******************/
 		/**** md5 signature: ecf3558fc2a17c2bcf4c65b55b7aabbc ****/
@@ -6465,16 +6464,16 @@ Standard_GUID
 Parameters
 ----------
 MatL: TDF_Label
-aName: TCollection_HAsciiString
-aDescription: TCollection_HAsciiString
-aDensName: TCollection_HAsciiString
-aDensValType: TCollection_HAsciiString
 
 Returns
 -------
+aName: TCollection_HAsciiString
+aDescription: TCollection_HAsciiString
 aDensity: float
+aDensName: TCollection_HAsciiString
+aDensValType: TCollection_HAsciiString
 ") GetMaterial;
-		Standard_Boolean GetMaterial(const TDF_Label & MatL, opencascade::handle<TCollection_HAsciiString> & aName, opencascade::handle<TCollection_HAsciiString> & aDescription, Standard_Real &OutValue, opencascade::handle<TCollection_HAsciiString> & aDensName, opencascade::handle<TCollection_HAsciiString> & aDensValType);
+		Standard_Boolean GetMaterial(const TDF_Label & MatL, opencascade::handle<TCollection_HAsciiString> &OutValue, opencascade::handle<TCollection_HAsciiString> &OutValue, Standard_Real &OutValue, opencascade::handle<TCollection_HAsciiString> &OutValue, opencascade::handle<TCollection_HAsciiString> &OutValue);
 
 		/****************** GetMaterialLabels ******************/
 		/**** md5 signature: cd3883adc849957e7e10d763ad936071 ****/
diff --git a/src/SWIG_files/wrapper/XCAFDoc.pyi b/src/SWIG_files/wrapper/XCAFDoc.pyi
index 60feabe06..fb58a6223 100644
--- a/src/SWIG_files/wrapper/XCAFDoc.pyi
+++ b/src/SWIG_files/wrapper/XCAFDoc.pyi
@@ -236,7 +236,7 @@ class XCAFDoc_ClippingPlaneTool(TDataStd_GenericEmpty):
     @overload
     def GetClippingPlane(self, theLabel: TDF_Label, thePlane: gp_Pln, theName: TCollection_ExtendedString) -> Tuple[bool, bool]: ...
     @overload
-    def GetClippingPlane(self, theLabel: TDF_Label, thePlane: gp_Pln, theName: TCollection_HAsciiString) -> Tuple[bool, bool]: ...
+    def GetClippingPlane(self, theLabel: TDF_Label, thePlane: gp_Pln) -> Tuple[bool, str, bool]: ...
     def GetClippingPlanes(self, Labels: TDF_LabelSequence) -> None: ...
     @staticmethod
     def GetID() -> Standard_GUID: ...
@@ -417,11 +417,11 @@ class XCAFDoc_DimTolTool(TDataStd_GenericEmpty):
     def FindDimTol(self, theKind: int, theVal: TColStd_HArray1OfReal, theName: TCollection_HAsciiString, theDescription: TCollection_HAsciiString, lab: TDF_Label) -> bool: ...
     @overload
     def FindDimTol(self, theKind: int, theVal: TColStd_HArray1OfReal, theName: TCollection_HAsciiString, theDescription: TCollection_HAsciiString) -> TDF_Label: ...
-    def GetDatum(self, theDatumL: TDF_Label, theName: TCollection_HAsciiString, theDescription: TCollection_HAsciiString, theIdentification: TCollection_HAsciiString) -> bool: ...
+    def GetDatum(self, theDatumL: TDF_Label) -> Tuple[bool, str, str, str]: ...
     def GetDatumLabels(self, Labels: TDF_LabelSequence) -> None: ...
     def GetDatumOfTolerLabels(self, theDimTolL: TDF_Label, theDatums: TDF_LabelSequence) -> bool: ...
     def GetDatumWithObjectOfTolerLabels(self, theDimTolL: TDF_Label, theDatums: TDF_LabelSequence) -> bool: ...
-    def GetDimTol(self, theDimTolL: TDF_Label, theVal: TColStd_HArray1OfReal, theName: TCollection_HAsciiString, theDescription: TCollection_HAsciiString) -> Tuple[bool, int]: ...
+    def GetDimTol(self, theDimTolL: TDF_Label, theVal: TColStd_HArray1OfReal) -> Tuple[bool, int, str, str]: ...
     def GetDimTolLabels(self, Labels: TDF_LabelSequence) -> None: ...
     def GetDimensionLabels(self, theLabels: TDF_LabelSequence) -> None: ...
     def GetGeomToleranceLabels(self, theLabels: TDF_LabelSequence) -> None: ...
@@ -738,7 +738,7 @@ class XCAFDoc_MaterialTool(TDataStd_GenericEmpty):
     def GetDensityForShape(ShapeL: TDF_Label) -> float: ...
     @staticmethod
     def GetID() -> Standard_GUID: ...
-    def GetMaterial(self, MatL: TDF_Label, aName: TCollection_HAsciiString, aDescription: TCollection_HAsciiString, aDensName: TCollection_HAsciiString, aDensValType: TCollection_HAsciiString) -> Tuple[bool, float]: ...
+    def GetMaterial(self, MatL: TDF_Label) -> Tuple[bool, str, str, float, str, str]: ...
     def GetMaterialLabels(self, Labels: TDF_LabelSequence) -> None: ...
     def ID(self) -> Standard_GUID: ...
     def IsMaterial(self, lab: TDF_Label) -> bool: ...
diff --git a/src/SWIG_files/wrapper/generator.log b/src/SWIG_files/wrapper/generator.log
index 69a6446b6..3126bad27 100644
--- a/src/SWIG_files/wrapper/generator.log
+++ b/src/SWIG_files/wrapper/generator.log
@@ -2,13 +2,13 @@
 ############################
 Running pythonocc-generator.
 ############################
-git revision : 0d7667c
+git revision : 3bf4de6
 
-operating system : Linux 64bit 5.4.0-135-generic
+operating system : Linux 64bit 5.4.0-144-generic
 
 occt version targeted : 7.7.0
 
-date : 2022-12-21 14:49:25.368706
+date : 2023-03-11 07:10:22.607336
 ############################
 
 [INFO ]  Processing toolkit TKBO ===
@@ -8038,6 +8038,16 @@ date : 2022-12-21 14:49:25.368706
 [INFO ]  ## Processing module XBRepMesh
 [INFO ]  Class: XBRepMesh
 [INFO ]  Processing toolkit TKXSBase ===
+[INFO ]  ## Processing module APIHeaderSection
+[INFO ]  Class: APIHeaderSection_EditHeader
+[INFO ]  Class: APIHeaderSection_MakeHeader
+[INFO ]      [TypeHint] More than 1 constructor, @overload decorator needed.
+[INFO ]  ## Processing module HeaderSection
+[INFO ]  Class: HeaderSection
+[INFO ]  Class: HeaderSection_FileDescription
+[INFO ]  Class: HeaderSection_FileName
+[INFO ]  Class: HeaderSection_FileSchema
+[INFO ]  Class: HeaderSection_Protocol
 [INFO ]  ## Processing module IFSelect
 [INFO ]  Found HSEQUENCE definitionIFSelect_HSeqOfSelection: IFSelect_TSeqOfSelection
 [INFO ]  Enum: IFSelect_PrintFail
@@ -8291,6 +8301,13 @@ date : 2022-12-21 14:49:25.368706
 [WARNI]      [TypeHint] Skipping type NCollection_DataMap<TCollection_AsciiString,, seems to be a template
 [INFO ]  Class: MoniTool_SignShape
 [INFO ]  Class: MoniTool_TransientElem
+[INFO ]  ## Processing module RWHeaderSection
+[INFO ]  Class: RWHeaderSection
+[INFO ]  Class: RWHeaderSection_GeneralModule
+[INFO ]  Class: RWHeaderSection_RWFileDescription
+[INFO ]  Class: RWHeaderSection_RWFileName
+[INFO ]  Class: RWHeaderSection_RWFileSchema
+[INFO ]  Class: RWHeaderSection_ReadWriteModule
 [INFO ]  ## Processing module StepData
 [INFO ]  Found HARRAY1 definitionStepData_HArray1OfField: StepData_Array1OfField
 [INFO ]  Enum: StepData_Logical
@@ -8883,8 +8900,8 @@ date : 2022-12-21 14:49:25.368706
 [INFO ]  Class: UnitsMethods
 [INFO ]  
 #################################################
-SWIG interface file generation completed in 38.08s
+SWIG interface file generation completed in 36.06s
 #################################################
 
-[INFO ]  Number of classes: 4574
-[INFO ]  Number of methods: 46433
+[INFO ]  Number of classes: 4587
+[INFO ]  Number of methods: 46544


Test patch:
diff --git a/test/core_ocaf_unittest.py b/test/core_ocaf_unittest.py
index 624102624..fe61d7343 100644
--- a/test/core_ocaf_unittest.py
+++ b/test/core_ocaf_unittest.py
@@ -25,7 +25,15 @@
 
 from OCC.Core.TCollection import TCollection_ExtendedString
 from OCC.Core.TDocStd import TDocStd_Document
-from OCC.Core.XCAFDoc import XCAFDoc_DocumentTool, XCAFDoc_ColorGen
+from OCC.Core.XCAFDoc import (
+    XCAFDoc_DocumentTool,
+    XCAFDoc_ColorGen,
+    XCAFDoc_DocumentTool_ShapeTool,
+    XCAFDoc_DocumentTool_ColorTool,
+    XCAFDoc_DocumentTool_LayerTool,
+    XCAFDoc_DocumentTool_MaterialTool,
+    XCAFDoc_Material,
+)
 from OCC.Core.STEPCAFControl import STEPCAFControl_Reader, STEPCAFControl_Writer
 from OCC.Core.IFSelect import IFSelect_RetDone
 from OCC.Core.Quantity import Quantity_Color, Quantity_TypeOfColor
@@ -94,8 +102,8 @@ def test_read_step_file(self) -> None:
         step_reader.SetNameMode(True)
         step_reader.SetMatMode(True)
         status = step_reader.ReadFile("./test_io/test_ocaf.stp")
-        if status == IFSelect_RetDone:
-            step_reader.Transfer(doc)
+        self.assertEqual(status, IFSelect_RetDone)
+        step_reader.Transfer(doc)
 
         labels = TDF_LabelSequence()
         color_labels = TDF_LabelSequence()
@@ -115,6 +123,46 @@ def test_read_step_file(self) -> None:
         a_shape = shape_tool.GetShape(label_shp)
         self.assertFalse(a_shape.IsNull())
 
+    def test_read_step_material(self) -> None:
+        # create an handle to a document
+        doc = TDocStd_Document(TCollection_ExtendedString("pythonocc-doc"))
+
+        # Get root assembly
+        shape_tool = XCAFDoc_DocumentTool_ShapeTool(doc.Main())
+        mat_tool = XCAFDoc_DocumentTool_MaterialTool(doc.Main())
+        step_reader = STEPCAFControl_Reader()
+
+        status = step_reader.ReadFile("./test_io/eight_cyl.stp")
+
+        self.assertEqual(status, IFSelect_RetDone)
+        step_reader.Transfer(doc)
+
+        shape_labels = TDF_LabelSequence()
+        material_labels = TDF_LabelSequence()
+
+        shape_tool.GetFreeShapes(shape_labels)
+        mat_tool.GetMaterialLabels(material_labels)
+
+        number_of_shapes = shape_labels.Length()
+        self.assertEqual(number_of_shapes, 8)
+        for i in range(1, number_of_shapes + 1):
+            label = shape_labels.Value(i)
+            a_shape = shape_tool.GetShape(label)
+
+        # materials
+        number_of_materials = material_labels.Length()
+        self.assertEqual(number_of_materials, 8)
+        for i in range(1, number_of_materials + 1):
+            (
+                ok,
+                material_name,
+                material_description,
+                material_density,
+                material_densname,
+                material_densvaltype,
+            ) = mat_tool.GetMaterial(material_labels.Value(i))
+            self.assertTrue(ok)
+
 
 def suite() -> unittest.TestSuite:
     suite = unittest.TestSuite()
diff --git a/test/test_io/eight_cyl.stp b/test/test_io/eight_cyl.stp
new file mode 100644
index 000000000..a6e848207
--- /dev/null
+++ b/test/test_io/eight_cyl.stp
@@ -0,0 +1,1432 @@
+ISO-10303-21;
+HEADER;
+FILE_NAME('8cyl_with_headers','Time stamp: 2023-03-07 07:33:29.671877',(
+    ''),(''),
+  '','','');
+FILE_SCHEMA(('AP214IS'));
+FILE_DESCRIPTION((''),'');
+ENDSEC;
+DATA;
+#1 = APPLICATION_PROTOCOL_DEFINITION('international standard',
+  'automotive_design',2000,#2);
+#2 = APPLICATION_CONTEXT(
+  'core data for automotive mechanical design processes');
+#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10);
+#4 = PRODUCT_DEFINITION_SHAPE('','',#5);
+#5 = PRODUCT_DEFINITION('design','',#6,#9);
+#6 = PRODUCT_DEFINITION_FORMATION('','',#7);
+#7 = PRODUCT('8Cylinders v2','8Cylinders v2','',(#8));
+#8 = PRODUCT_CONTEXT('',#2,'mechanical');
+#9 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#10 = SHAPE_REPRESENTATION('',(#11,#15),#19);
+#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14);
+#12 = CARTESIAN_POINT('',(0.,0.,0.));
+#13 = DIRECTION('',(0.,0.,1.));
+#14 = DIRECTION('',(1.,0.,-0.));
+#15 = AXIS2_PLACEMENT_3D('',#16,#17,#18);
+#16 = CARTESIAN_POINT('',(0.,0.,0.));
+#17 = DIRECTION('',(0.,0.,1.));
+#18 = DIRECTION('',(1.,0.,-0.));
+#19 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#23)) GLOBAL_UNIT_ASSIGNED_CONTEXT(
+(#20,#21,#22)) REPRESENTATION_CONTEXT('Context #1',
+  '3D Context with UNIT and UNCERTAINTY') );
+#20 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#21 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#22 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#23 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#20,
+  'distance_accuracy_value','confusion accuracy');
+#24 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#7));
+#25 = SHAPE_DEFINITION_REPRESENTATION(#26,#32);
+#26 = PRODUCT_DEFINITION_SHAPE('','',#27);
+#27 = PRODUCT_DEFINITION('design','',#28,#31);
+#28 = PRODUCT_DEFINITION_FORMATION('','',#29);
+#29 = PRODUCT('SOLID','SOLID','',(#30));
+#30 = PRODUCT_CONTEXT('',#2,'mechanical');
+#31 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#32 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#33),#131);
+#33 = MANIFOLD_SOLID_BREP('',#34);
+#34 = CLOSED_SHELL('',(#35,#123,#127));
+#35 = ADVANCED_FACE('',(#36),#49,.T.);
+#36 = FACE_BOUND('',#37,.T.);
+#37 = EDGE_LOOP('',(#38,#72,#95,#122));
+#38 = ORIENTED_EDGE('',*,*,#39,.F.);
+#39 = EDGE_CURVE('',#40,#40,#42,.T.);
+#40 = VERTEX_POINT('',#41);
+#41 = CARTESIAN_POINT('',(211.65287853202,95.23152229471,206.46570424998
+    ));
+#42 = SURFACE_CURVE('',#43,(#48,#60),.PCURVE_S1.);
+#43 = CIRCLE('',#44,25.);
+#44 = AXIS2_PLACEMENT_3D('',#45,#46,#47);
+#45 = CARTESIAN_POINT('',(229.33054806168,77.553852765046,
+    206.46570424998));
+#46 = DIRECTION('',(0.57922796534,0.57922796534,0.573576436351));
+#47 = DIRECTION('',(0.707106781187,-0.707106781187,-2.775557561563E-16)
+  );
+#48 = PCURVE('',#49,#54);
+#49 = CYLINDRICAL_SURFACE('',#50,25.);
+#50 = AXIS2_PLACEMENT_3D('',#51,#52,#53);
+#51 = CARTESIAN_POINT('',(207.60949936144,55.832804064812,
+    184.95658788682));
+#52 = DIRECTION('',(0.57922796534,0.57922796534,0.573576436351));
+#53 = DIRECTION('',(0.707106781187,-0.707106781187,-2.775557561563E-16)
+  );
+#54 = DEFINITIONAL_REPRESENTATION('',(#55),#59);
+#55 = LINE('',#56,#57);
+#56 = CARTESIAN_POINT('',(-6.28318530718,37.500000000001));
+#57 = VECTOR('',#58,1.);
+#58 = DIRECTION('',(1.,0.));
+#59 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#60 = PCURVE('',#61,#66);
+#61 = PLANE('',#62);
+#62 = AXIS2_PLACEMENT_3D('',#63,#64,#65);
+#63 = CARTESIAN_POINT('',(229.33054806168,77.553852765046,
+    206.46570424998));
+#64 = DIRECTION('',(0.57922796534,0.57922796534,0.573576436351));
+#65 = DIRECTION('',(0.707106781187,-0.707106781187,-2.775557561563E-16)
+  );
+#66 = DEFINITIONAL_REPRESENTATION('',(#67),#71);
+#67 = CIRCLE('',#68,25.);
+#68 = AXIS2_PLACEMENT_2D('',#69,#70);
+#69 = CARTESIAN_POINT('',(0.,0.));
+#70 = DIRECTION('',(1.,-1.742027637139E-17));
+#71 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#72 = ORIENTED_EDGE('',*,*,#73,.T.);
+#73 = EDGE_CURVE('',#40,#74,#76,.T.);
+#74 = VERTEX_POINT('',#75);
+#75 = CARTESIAN_POINT('',(168.21078113155,51.789424894242,
+    163.44747152365));
+#76 = SEAM_CURVE('',#77,(#81,#88),.PCURVE_S1.);
+#77 = LINE('',#78,#79);
+#78 = CARTESIAN_POINT('',(189.93182983178,73.510473594476,
+    184.95658788682));
+#79 = VECTOR('',#80,1.);
+#80 = DIRECTION('',(-0.57922796534,-0.57922796534,-0.573576436351));
+#81 = PCURVE('',#49,#82);
+#82 = DEFINITIONAL_REPRESENTATION('',(#83),#87);
+#83 = LINE('',#84,#85);
+#84 = CARTESIAN_POINT('',(-3.14159265359,3.836930773105E-13));
+#85 = VECTOR('',#86,1.);
+#86 = DIRECTION('',(0.,-1.));
+#87 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#88 = PCURVE('',#49,#89);
+#89 = DEFINITIONAL_REPRESENTATION('',(#90),#94);
+#90 = LINE('',#91,#92);
+#91 = CARTESIAN_POINT('',(3.14159265359,3.836930773105E-13));
+#92 = VECTOR('',#93,1.);
+#93 = DIRECTION('',(0.,-1.));
+#94 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#95 = ORIENTED_EDGE('',*,*,#96,.F.);
+#96 = EDGE_CURVE('',#74,#74,#97,.T.);
+#97 = SURFACE_CURVE('',#98,(#103,#110),.PCURVE_S1.);
+#98 = CIRCLE('',#99,25.);
+#99 = AXIS2_PLACEMENT_3D('',#100,#101,#102);
+#100 = CARTESIAN_POINT('',(185.88845066121,34.111755364579,
+    163.44747152365));
+#101 = DIRECTION('',(-0.57922796534,-0.57922796534,-0.573576436351));
+#102 = DIRECTION('',(0.707106781187,-0.707106781187,-2.775557561563E-16)
+  );
+#103 = PCURVE('',#49,#104);
+#104 = DEFINITIONAL_REPRESENTATION('',(#105),#109);
+#105 = LINE('',#106,#107);
+#106 = CARTESIAN_POINT('',(6.28318530718,-37.49999999999));
+#107 = VECTOR('',#108,1.);
+#108 = DIRECTION('',(-1.,0.));
+#109 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#110 = PCURVE('',#111,#116);
+#111 = PLANE('',#112);
+#112 = AXIS2_PLACEMENT_3D('',#113,#114,#115);
+#113 = CARTESIAN_POINT('',(185.88845066121,34.111755364579,
+    163.44747152365));
+#114 = DIRECTION('',(-0.57922796534,-0.57922796534,-0.573576436351));
+#115 = DIRECTION('',(-0.707106781187,0.707106781187,2.775557561563E-16)
+  );
+#116 = DEFINITIONAL_REPRESENTATION('',(#117),#121);
+#117 = CIRCLE('',#118,25.);
+#118 = AXIS2_PLACEMENT_2D('',#119,#120);
+#119 = CARTESIAN_POINT('',(0.,0.));
+#120 = DIRECTION('',(-1.,-1.742027637139E-17));
+#121 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#122 = ORIENTED_EDGE('',*,*,#73,.F.);
+#123 = ADVANCED_FACE('',(#124),#111,.T.);
+#124 = FACE_BOUND('',#125,.T.);
+#125 = EDGE_LOOP('',(#126));
+#126 = ORIENTED_EDGE('',*,*,#96,.T.);
+#127 = ADVANCED_FACE('',(#128),#61,.T.);
+#128 = FACE_BOUND('',#129,.T.);
+#129 = EDGE_LOOP('',(#130));
+#130 = ORIENTED_EDGE('',*,*,#39,.T.);
+#131 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#135)) GLOBAL_UNIT_ASSIGNED_CONTEXT
+((#132,#133,#134)) REPRESENTATION_CONTEXT('Context #1',
+  '3D Context with UNIT and UNCERTAINTY') );
+#132 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#133 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#134 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#135 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#132,
+  'distance_accuracy_value','confusion accuracy');
+#136 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#137,#139);
+#137 = ( REPRESENTATION_RELATIONSHIP('','',#32,#10) 
+REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#138) 
+SHAPE_REPRESENTATION_RELATIONSHIP() );
+#138 = ITEM_DEFINED_TRANSFORMATION('','',#11,#15);
+#139 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#140
+  );
+#140 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('1','','',#5,#27,$);
+#141 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#29));
+#142 = SHAPE_DEFINITION_REPRESENTATION(#143,#149);
+#143 = PRODUCT_DEFINITION_SHAPE('','',#144);
+#144 = PRODUCT_DEFINITION('design','',#145,#148);
+#145 = PRODUCT_DEFINITION_FORMATION('','',#146);
+#146 = PRODUCT('8Cylinders v2','8Cylinders v2','',(#147));
+#147 = PRODUCT_CONTEXT('',#2,'mechanical');
+#148 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#149 = SHAPE_REPRESENTATION('',(#11,#150),#154);
+#150 = AXIS2_PLACEMENT_3D('',#151,#152,#153);
+#151 = CARTESIAN_POINT('',(0.,0.,0.));
+#152 = DIRECTION('',(0.,0.,1.));
+#153 = DIRECTION('',(1.,0.,-0.));
+#154 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#158)) GLOBAL_UNIT_ASSIGNED_CONTEXT
+((#155,#156,#157)) REPRESENTATION_CONTEXT('Context #1',
+  '3D Context with UNIT and UNCERTAINTY') );
+#155 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#156 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#157 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#158 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#155,
+  'distance_accuracy_value','confusion accuracy');
+#159 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#146));
+#160 = SHAPE_DEFINITION_REPRESENTATION(#161,#167);
+#161 = PRODUCT_DEFINITION_SHAPE('','',#162);
+#162 = PRODUCT_DEFINITION('design','',#163,#166);
+#163 = PRODUCT_DEFINITION_FORMATION('','',#164);
+#164 = PRODUCT('SOLID','SOLID','',(#165));
+#165 = PRODUCT_CONTEXT('',#2,'mechanical');
+#166 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#167 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#168),#266);
+#168 = MANIFOLD_SOLID_BREP('',#169);
+#169 = CLOSED_SHELL('',(#170,#258,#262));
+#170 = ADVANCED_FACE('',(#171),#184,.T.);
+#171 = FACE_BOUND('',#172,.T.);
+#172 = EDGE_LOOP('',(#173,#207,#230,#257));
+#173 = ORIENTED_EDGE('',*,*,#174,.T.);
+#174 = EDGE_CURVE('',#175,#175,#177,.T.);
+#175 = VERTEX_POINT('',#176);
+#176 = CARTESIAN_POINT('',(211.65287853202,-95.23152229471,
+    206.46570424998));
+#177 = SURFACE_CURVE('',#178,(#183,#195),.PCURVE_S1.);
+#178 = CIRCLE('',#179,25.);
+#179 = AXIS2_PLACEMENT_3D('',#180,#181,#182);
+#180 = CARTESIAN_POINT('',(229.33054806168,-77.55385276504,
+    206.46570424998));
+#181 = DIRECTION('',(-0.57922796534,0.57922796534,-0.573576436351));
+#182 = DIRECTION('',(0.707106781187,0.707106781187,-2.775557561563E-16)
+  );
+#183 = PCURVE('',#184,#189);
+#184 = CYLINDRICAL_SURFACE('',#185,25.);
+#185 = AXIS2_PLACEMENT_3D('',#186,#187,#188);
+#186 = CARTESIAN_POINT('',(207.60949936144,-55.83280406481,
+    184.95658788682));
+#187 = DIRECTION('',(-0.57922796534,0.57922796534,-0.573576436351));
+#188 = DIRECTION('',(0.707106781187,0.707106781187,-2.775557561563E-16)
+  );
+#189 = DEFINITIONAL_REPRESENTATION('',(#190),#194);
+#190 = LINE('',#191,#192);
+#191 = CARTESIAN_POINT('',(2.13162820728E-14,-37.5));
+#192 = VECTOR('',#193,1.);
+#193 = DIRECTION('',(1.,0.));
+#194 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#195 = PCURVE('',#196,#201);
+#196 = PLANE('',#197);
+#197 = AXIS2_PLACEMENT_3D('',#198,#199,#200);
+#198 = CARTESIAN_POINT('',(229.33054806168,-77.55385276504,
+    206.46570424998));
+#199 = DIRECTION('',(-0.57922796534,0.57922796534,-0.573576436351));
+#200 = DIRECTION('',(0.707106781187,0.707106781187,-2.775557561563E-16)
+  );
+#201 = DEFINITIONAL_REPRESENTATION('',(#202),#206);
+#202 = CIRCLE('',#203,25.);
+#203 = AXIS2_PLACEMENT_2D('',#204,#205);
+#204 = CARTESIAN_POINT('',(0.,0.));
+#205 = DIRECTION('',(1.,-1.742027637139E-17));
+#206 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#207 = ORIENTED_EDGE('',*,*,#208,.T.);
+#208 = EDGE_CURVE('',#175,#209,#211,.T.);
+#209 = VERTEX_POINT('',#210);
+#210 = CARTESIAN_POINT('',(168.21078113155,-51.78942489424,
+    163.44747152365));
+#211 = SEAM_CURVE('',#212,(#216,#223),.PCURVE_S1.);
+#212 = LINE('',#213,#214);
+#213 = CARTESIAN_POINT('',(189.93182983178,-73.51047359447,
+    184.95658788682));
+#214 = VECTOR('',#215,1.);
+#215 = DIRECTION('',(-0.57922796534,0.57922796534,-0.573576436351));
+#216 = PCURVE('',#184,#217);
+#217 = DEFINITIONAL_REPRESENTATION('',(#218),#222);
+#218 = LINE('',#219,#220);
+#219 = CARTESIAN_POINT('',(9.424777960769,-3.836930773105E-13));
+#220 = VECTOR('',#221,1.);
+#221 = DIRECTION('',(0.,1.));
+#222 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#223 = PCURVE('',#184,#224);
+#224 = DEFINITIONAL_REPRESENTATION('',(#225),#229);
+#225 = LINE('',#226,#227);
+#226 = CARTESIAN_POINT('',(3.14159265359,-3.836930773105E-13));
+#227 = VECTOR('',#228,1.);
+#228 = DIRECTION('',(0.,1.));
+#229 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#230 = ORIENTED_EDGE('',*,*,#231,.T.);
+#231 = EDGE_CURVE('',#209,#209,#232,.T.);
+#232 = SURFACE_CURVE('',#233,(#238,#245),.PCURVE_S1.);
+#233 = CIRCLE('',#234,25.);
+#234 = AXIS2_PLACEMENT_3D('',#235,#236,#237);
+#235 = CARTESIAN_POINT('',(185.88845066121,-34.11175536457,
+    163.44747152365));
+#236 = DIRECTION('',(0.57922796534,-0.57922796534,0.573576436351));
+#237 = DIRECTION('',(0.707106781187,0.707106781187,-2.775557561563E-16)
+  );
+#238 = PCURVE('',#184,#239);
+#239 = DEFINITIONAL_REPRESENTATION('',(#240),#244);
+#240 = LINE('',#241,#242);
+#241 = CARTESIAN_POINT('',(12.566370614359,37.499999999999));
+#242 = VECTOR('',#243,1.);
+#243 = DIRECTION('',(-1.,0.));
+#244 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#245 = PCURVE('',#246,#251);
+#246 = PLANE('',#247);
+#247 = AXIS2_PLACEMENT_3D('',#248,#249,#250);
+#248 = CARTESIAN_POINT('',(185.88845066121,-34.11175536457,
+    163.44747152365));
+#249 = DIRECTION('',(0.57922796534,-0.57922796534,0.573576436351));
+#250 = DIRECTION('',(-0.707106781187,-0.707106781187,2.775557561563E-16)
+  );
+#251 = DEFINITIONAL_REPRESENTATION('',(#252),#256);
+#252 = CIRCLE('',#253,25.);
+#253 = AXIS2_PLACEMENT_2D('',#254,#255);
+#254 = CARTESIAN_POINT('',(0.,0.));
+#255 = DIRECTION('',(-1.,-1.742027637139E-17));
+#256 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#257 = ORIENTED_EDGE('',*,*,#208,.F.);
+#258 = ADVANCED_FACE('',(#259),#246,.F.);
+#259 = FACE_BOUND('',#260,.T.);
+#260 = EDGE_LOOP('',(#261));
+#261 = ORIENTED_EDGE('',*,*,#231,.F.);
+#262 = ADVANCED_FACE('',(#263),#196,.F.);
+#263 = FACE_BOUND('',#264,.T.);
+#264 = EDGE_LOOP('',(#265));
+#265 = ORIENTED_EDGE('',*,*,#174,.F.);
+#266 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#270)) GLOBAL_UNIT_ASSIGNED_CONTEXT
+((#267,#268,#269)) REPRESENTATION_CONTEXT('Context #1',
+  '3D Context with UNIT and UNCERTAINTY') );
+#267 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#268 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#269 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#270 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#267,
+  'distance_accuracy_value','confusion accuracy');
+#271 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#272,#274);
+#272 = ( REPRESENTATION_RELATIONSHIP('','',#167,#149) 
+REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#273) 
+SHAPE_REPRESENTATION_RELATIONSHIP() );
+#273 = ITEM_DEFINED_TRANSFORMATION('','',#11,#150);
+#274 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#275
+  );
+#275 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('2','','',#144,#162,$);
+#276 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#164));
+#277 = SHAPE_DEFINITION_REPRESENTATION(#278,#284);
+#278 = PRODUCT_DEFINITION_SHAPE('','',#279);
+#279 = PRODUCT_DEFINITION('design','',#280,#283);
+#280 = PRODUCT_DEFINITION_FORMATION('','',#281);
+#281 = PRODUCT('8Cylinders v2','8Cylinders v2','',(#282));
+#282 = PRODUCT_CONTEXT('',#2,'mechanical');
+#283 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#284 = SHAPE_REPRESENTATION('',(#11,#285),#289);
+#285 = AXIS2_PLACEMENT_3D('',#286,#287,#288);
+#286 = CARTESIAN_POINT('',(0.,0.,0.));
+#287 = DIRECTION('',(0.,0.,1.));
+#288 = DIRECTION('',(1.,0.,-0.));
+#289 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#293)) GLOBAL_UNIT_ASSIGNED_CONTEXT
+((#290,#291,#292)) REPRESENTATION_CONTEXT('Context #1',
+  '3D Context with UNIT and UNCERTAINTY') );
+#290 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#291 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#292 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#293 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#290,
+  'distance_accuracy_value','confusion accuracy');
+#294 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#281));
+#295 = SHAPE_DEFINITION_REPRESENTATION(#296,#302);
+#296 = PRODUCT_DEFINITION_SHAPE('','',#297);
+#297 = PRODUCT_DEFINITION('design','',#298,#301);
+#298 = PRODUCT_DEFINITION_FORMATION('','',#299);
+#299 = PRODUCT('SOLID','SOLID','',(#300));
+#300 = PRODUCT_CONTEXT('',#2,'mechanical');
+#301 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#302 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#303),#401);
+#303 = MANIFOLD_SOLID_BREP('',#304);
+#304 = CLOSED_SHELL('',(#305,#393,#397));
+#305 = ADVANCED_FACE('',(#306),#319,.T.);
+#306 = FACE_BOUND('',#307,.T.);
+#307 = EDGE_LOOP('',(#308,#342,#365,#392));
+#308 = ORIENTED_EDGE('',*,*,#309,.T.);
+#309 = EDGE_CURVE('',#310,#310,#312,.T.);
+#310 = VERTEX_POINT('',#311);
+#311 = CARTESIAN_POINT('',(-211.652878532,95.23152229471,206.46570424998
+    ));
+#312 = SURFACE_CURVE('',#313,(#318,#330),.PCURVE_S1.);
+#313 = CIRCLE('',#314,25.);
+#314 = AXIS2_PLACEMENT_3D('',#315,#316,#317);
+#315 = CARTESIAN_POINT('',(-229.3305480616,77.553852765046,
+    206.46570424998));
+#316 = DIRECTION('',(0.57922796534,-0.57922796534,-0.573576436351));
+#317 = DIRECTION('',(-0.707106781187,-0.707106781187,-2.775557561563E-16
+    ));
+#318 = PCURVE('',#319,#324);
+#319 = CYLINDRICAL_SURFACE('',#320,25.);
+#320 = AXIS2_PLACEMENT_3D('',#321,#322,#323);
+#321 = CARTESIAN_POINT('',(-207.6094993614,55.832804064812,
+    184.95658788682));
+#322 = DIRECTION('',(0.57922796534,-0.57922796534,-0.573576436351));
+#323 = DIRECTION('',(-0.707106781187,-0.707106781187,-2.775557561563E-16
+    ));
+#324 = DEFINITIONAL_REPRESENTATION('',(#325),#329);
+#325 = LINE('',#326,#327);
+#326 = CARTESIAN_POINT('',(2.13162820728E-14,-37.5));
+#327 = VECTOR('',#328,1.);
+#328 = DIRECTION('',(1.,0.));
+#329 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#330 = PCURVE('',#331,#336);
+#331 = PLANE('',#332);
+#332 = AXIS2_PLACEMENT_3D('',#333,#334,#335);
+#333 = CARTESIAN_POINT('',(-229.3305480616,77.553852765046,
+    206.46570424998));
+#334 = DIRECTION('',(0.57922796534,-0.57922796534,-0.573576436351));
+#335 = DIRECTION('',(-0.707106781187,-0.707106781187,-2.775557561563E-16
+    ));
+#336 = DEFINITIONAL_REPRESENTATION('',(#337),#341);
+#337 = CIRCLE('',#338,25.);
+#338 = AXIS2_PLACEMENT_2D('',#339,#340);
+#339 = CARTESIAN_POINT('',(0.,0.));
+#340 = DIRECTION('',(1.,-1.742027637139E-17));
+#341 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#342 = ORIENTED_EDGE('',*,*,#343,.T.);
+#343 = EDGE_CURVE('',#310,#344,#346,.T.);
+#344 = VERTEX_POINT('',#345);
+#345 = CARTESIAN_POINT('',(-168.2107811315,51.789424894242,
+    163.44747152365));
+#346 = SEAM_CURVE('',#347,(#351,#358),.PCURVE_S1.);
+#347 = LINE('',#348,#349);
+#348 = CARTESIAN_POINT('',(-189.9318298317,73.510473594476,
+    184.95658788682));
+#349 = VECTOR('',#350,1.);
+#350 = DIRECTION('',(0.57922796534,-0.57922796534,-0.573576436351));
+#351 = PCURVE('',#319,#352);
+#352 = DEFINITIONAL_REPRESENTATION('',(#353),#357);
+#353 = LINE('',#354,#355);
+#354 = CARTESIAN_POINT('',(9.424777960769,-3.836930773105E-13));
+#355 = VECTOR('',#356,1.);
+#356 = DIRECTION('',(0.,1.));
+#357 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#358 = PCURVE('',#319,#359);
+#359 = DEFINITIONAL_REPRESENTATION('',(#360),#364);
+#360 = LINE('',#361,#362);
+#361 = CARTESIAN_POINT('',(3.14159265359,-3.836930773105E-13));
+#362 = VECTOR('',#363,1.);
+#363 = DIRECTION('',(0.,1.));
+#364 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#365 = ORIENTED_EDGE('',*,*,#366,.T.);
+#366 = EDGE_CURVE('',#344,#344,#367,.T.);
+#367 = SURFACE_CURVE('',#368,(#373,#380),.PCURVE_S1.);
+#368 = CIRCLE('',#369,25.);
+#369 = AXIS2_PLACEMENT_3D('',#370,#371,#372);
+#370 = CARTESIAN_POINT('',(-185.8884506612,34.111755364579,
+    163.44747152365));
+#371 = DIRECTION('',(-0.57922796534,0.57922796534,0.573576436351));
+#372 = DIRECTION('',(-0.707106781187,-0.707106781187,-2.775557561563E-16
+    ));
+#373 = PCURVE('',#319,#374);
+#374 = DEFINITIONAL_REPRESENTATION('',(#375),#379);
+#375 = LINE('',#376,#377);
+#376 = CARTESIAN_POINT('',(12.566370614359,37.499999999999));
+#377 = VECTOR('',#378,1.);
+#378 = DIRECTION('',(-1.,0.));
+#379 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#380 = PCURVE('',#381,#386);
+#381 = PLANE('',#382);
+#382 = AXIS2_PLACEMENT_3D('',#383,#384,#385);
+#383 = CARTESIAN_POINT('',(-185.8884506612,34.111755364579,
+    163.44747152365));
+#384 = DIRECTION('',(-0.57922796534,0.57922796534,0.573576436351));
+#385 = DIRECTION('',(0.707106781187,0.707106781187,2.775557561563E-16));
+#386 = DEFINITIONAL_REPRESENTATION('',(#387),#391);
+#387 = CIRCLE('',#388,25.);
+#388 = AXIS2_PLACEMENT_2D('',#389,#390);
+#389 = CARTESIAN_POINT('',(0.,0.));
+#390 = DIRECTION('',(-1.,-1.742027637139E-17));
+#391 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#392 = ORIENTED_EDGE('',*,*,#343,.F.);
+#393 = ADVANCED_FACE('',(#394),#381,.F.);
+#394 = FACE_BOUND('',#395,.T.);
+#395 = EDGE_LOOP('',(#396));
+#396 = ORIENTED_EDGE('',*,*,#366,.F.);
+#397 = ADVANCED_FACE('',(#398),#331,.F.);
+#398 = FACE_BOUND('',#399,.T.);
+#399 = EDGE_LOOP('',(#400));
+#400 = ORIENTED_EDGE('',*,*,#309,.F.);
+#401 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#405)) GLOBAL_UNIT_ASSIGNED_CONTEXT
+((#402,#403,#404)) REPRESENTATION_CONTEXT('Context #1',
+  '3D Context with UNIT and UNCERTAINTY') );
+#402 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#403 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#404 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#405 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#402,
+  'distance_accuracy_value','confusion accuracy');
+#406 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#407,#409);
+#407 = ( REPRESENTATION_RELATIONSHIP('','',#302,#284) 
+REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#408) 
+SHAPE_REPRESENTATION_RELATIONSHIP() );
+#408 = ITEM_DEFINED_TRANSFORMATION('','',#11,#285);
+#409 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#410
+  );
+#410 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('3','','',#279,#297,$);
+#411 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#299));
+#412 = SHAPE_DEFINITION_REPRESENTATION(#413,#419);
+#413 = PRODUCT_DEFINITION_SHAPE('','',#414);
+#414 = PRODUCT_DEFINITION('design','',#415,#418);
+#415 = PRODUCT_DEFINITION_FORMATION('','',#416);
+#416 = PRODUCT('8Cylinders v2','8Cylinders v2','',(#417));
+#417 = PRODUCT_CONTEXT('',#2,'mechanical');
+#418 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#419 = SHAPE_REPRESENTATION('',(#11,#420),#424);
+#420 = AXIS2_PLACEMENT_3D('',#421,#422,#423);
+#421 = CARTESIAN_POINT('',(0.,0.,0.));
+#422 = DIRECTION('',(0.,0.,1.));
+#423 = DIRECTION('',(1.,0.,-0.));
+#424 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#428)) GLOBAL_UNIT_ASSIGNED_CONTEXT
+((#425,#426,#427)) REPRESENTATION_CONTEXT('Context #1',
+  '3D Context with UNIT and UNCERTAINTY') );
+#425 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#426 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#427 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#428 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#425,
+  'distance_accuracy_value','confusion accuracy');
+#429 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#416));
+#430 = SHAPE_DEFINITION_REPRESENTATION(#431,#437);
+#431 = PRODUCT_DEFINITION_SHAPE('','',#432);
+#432 = PRODUCT_DEFINITION('design','',#433,#436);
+#433 = PRODUCT_DEFINITION_FORMATION('','',#434);
+#434 = PRODUCT('SOLID','SOLID','',(#435));
+#435 = PRODUCT_CONTEXT('',#2,'mechanical');
+#436 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#437 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#438),#536);
+#438 = MANIFOLD_SOLID_BREP('',#439);
+#439 = CLOSED_SHELL('',(#440,#528,#532));
+#440 = ADVANCED_FACE('',(#441),#454,.T.);
+#441 = FACE_BOUND('',#442,.T.);
+#442 = EDGE_LOOP('',(#443,#477,#500,#527));
+#443 = ORIENTED_EDGE('',*,*,#444,.F.);
+#444 = EDGE_CURVE('',#445,#445,#447,.T.);
+#445 = VERTEX_POINT('',#446);
+#446 = CARTESIAN_POINT('',(-211.652878532,-95.23152229471,
+    206.46570424998));
+#447 = SURFACE_CURVE('',#448,(#453,#465),.PCURVE_S1.);
+#448 = CIRCLE('',#449,25.);
+#449 = AXIS2_PLACEMENT_3D('',#450,#451,#452);
+#450 = CARTESIAN_POINT('',(-229.3305480616,-77.55385276504,
+    206.46570424998));
+#451 = DIRECTION('',(-0.57922796534,-0.57922796534,0.573576436351));
+#452 = DIRECTION('',(-0.707106781187,0.707106781187,-2.775557561563E-16)
+  );
+#453 = PCURVE('',#454,#459);
+#454 = CYLINDRICAL_SURFACE('',#455,25.);
+#455 = AXIS2_PLACEMENT_3D('',#456,#457,#458);
+#456 = CARTESIAN_POINT('',(-207.6094993614,-55.83280406481,
+    184.95658788682));
+#457 = DIRECTION('',(-0.57922796534,-0.57922796534,0.573576436351));
+#458 = DIRECTION('',(-0.707106781187,0.707106781187,-2.775557561563E-16)
+  );
+#459 = DEFINITIONAL_REPRESENTATION('',(#460),#464);
+#460 = LINE('',#461,#462);
+#461 = CARTESIAN_POINT('',(-6.28318530718,37.500000000001));
+#462 = VECTOR('',#463,1.);
+#463 = DIRECTION('',(1.,0.));
+#464 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#465 = PCURVE('',#466,#471);
+#466 = PLANE('',#467);
+#467 = AXIS2_PLACEMENT_3D('',#468,#469,#470);
+#468 = CARTESIAN_POINT('',(-229.3305480616,-77.55385276504,
+    206.46570424998));
+#469 = DIRECTION('',(-0.57922796534,-0.57922796534,0.573576436351));
+#470 = DIRECTION('',(-0.707106781187,0.707106781187,-2.775557561563E-16)
+  );
+#471 = DEFINITIONAL_REPRESENTATION('',(#472),#476);
+#472 = CIRCLE('',#473,25.);
+#473 = AXIS2_PLACEMENT_2D('',#474,#475);
+#474 = CARTESIAN_POINT('',(0.,0.));
+#475 = DIRECTION('',(1.,-1.742027637139E-17));
+#476 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#477 = ORIENTED_EDGE('',*,*,#478,.T.);
+#478 = EDGE_CURVE('',#445,#479,#481,.T.);
+#479 = VERTEX_POINT('',#480);
+#480 = CARTESIAN_POINT('',(-168.2107811315,-51.78942489424,
+    163.44747152365));
+#481 = SEAM_CURVE('',#482,(#486,#493),.PCURVE_S1.);
+#482 = LINE('',#483,#484);
+#483 = CARTESIAN_POINT('',(-189.9318298317,-73.51047359447,
+    184.95658788682));
+#484 = VECTOR('',#485,1.);
+#485 = DIRECTION('',(0.57922796534,0.57922796534,-0.573576436351));
+#486 = PCURVE('',#454,#487);
+#487 = DEFINITIONAL_REPRESENTATION('',(#488),#492);
+#488 = LINE('',#489,#490);
+#489 = CARTESIAN_POINT('',(-3.14159265359,3.836930773105E-13));
+#490 = VECTOR('',#491,1.);
+#491 = DIRECTION('',(0.,-1.));
+#492 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#493 = PCURVE('',#454,#494);
+#494 = DEFINITIONAL_REPRESENTATION('',(#495),#499);
+#495 = LINE('',#496,#497);
+#496 = CARTESIAN_POINT('',(3.14159265359,3.836930773105E-13));
+#497 = VECTOR('',#498,1.);
+#498 = DIRECTION('',(0.,-1.));
+#499 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#500 = ORIENTED_EDGE('',*,*,#501,.F.);
+#501 = EDGE_CURVE('',#479,#479,#502,.T.);
+#502 = SURFACE_CURVE('',#503,(#508,#515),.PCURVE_S1.);
+#503 = CIRCLE('',#504,25.);
+#504 = AXIS2_PLACEMENT_3D('',#505,#506,#507);
+#505 = CARTESIAN_POINT('',(-185.8884506612,-34.11175536457,
+    163.44747152365));
+#506 = DIRECTION('',(0.57922796534,0.57922796534,-0.573576436351));
+#507 = DIRECTION('',(-0.707106781187,0.707106781187,-2.775557561563E-16)
+  );
+#508 = PCURVE('',#454,#509);
+#509 = DEFINITIONAL_REPRESENTATION('',(#510),#514);
+#510 = LINE('',#511,#512);
+#511 = CARTESIAN_POINT('',(6.28318530718,-37.49999999999));
+#512 = VECTOR('',#513,1.);
+#513 = DIRECTION('',(-1.,0.));
+#514 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#515 = PCURVE('',#516,#521);
+#516 = PLANE('',#517);
+#517 = AXIS2_PLACEMENT_3D('',#518,#519,#520);
+#518 = CARTESIAN_POINT('',(-185.8884506612,-34.11175536457,
+    163.44747152365));
+#519 = DIRECTION('',(0.57922796534,0.57922796534,-0.573576436351));
+#520 = DIRECTION('',(0.707106781187,-0.707106781187,2.775557561563E-16)
+  );
+#521 = DEFINITIONAL_REPRESENTATION('',(#522),#526);
+#522 = CIRCLE('',#523,25.);
+#523 = AXIS2_PLACEMENT_2D('',#524,#525);
+#524 = CARTESIAN_POINT('',(0.,0.));
+#525 = DIRECTION('',(-1.,-1.742027637139E-17));
+#526 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#527 = ORIENTED_EDGE('',*,*,#478,.F.);
+#528 = ADVANCED_FACE('',(#529),#516,.T.);
+#529 = FACE_BOUND('',#530,.T.);
+#530 = EDGE_LOOP('',(#531));
+#531 = ORIENTED_EDGE('',*,*,#501,.T.);
+#532 = ADVANCED_FACE('',(#533),#466,.T.);
+#533 = FACE_BOUND('',#534,.T.);
+#534 = EDGE_LOOP('',(#535));
+#535 = ORIENTED_EDGE('',*,*,#444,.T.);
+#536 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#540)) GLOBAL_UNIT_ASSIGNED_CONTEXT
+((#537,#538,#539)) REPRESENTATION_CONTEXT('Context #1',
+  '3D Context with UNIT and UNCERTAINTY') );
+#537 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#538 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#539 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#540 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#537,
+  'distance_accuracy_value','confusion accuracy');
+#541 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#542,#544);
+#542 = ( REPRESENTATION_RELATIONSHIP('','',#437,#419) 
+REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#543) 
+SHAPE_REPRESENTATION_RELATIONSHIP() );
+#543 = ITEM_DEFINED_TRANSFORMATION('','',#11,#420);
+#544 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#545
+  );
+#545 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('4','','',#414,#432,$);
+#546 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#434));
+#547 = SHAPE_DEFINITION_REPRESENTATION(#548,#554);
+#548 = PRODUCT_DEFINITION_SHAPE('','',#549);
+#549 = PRODUCT_DEFINITION('design','',#550,#553);
+#550 = PRODUCT_DEFINITION_FORMATION('','',#551);
+#551 = PRODUCT('8Cylinders v2','8Cylinders v2','',(#552));
+#552 = PRODUCT_CONTEXT('',#2,'mechanical');
+#553 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#554 = SHAPE_REPRESENTATION('',(#11,#555),#559);
+#555 = AXIS2_PLACEMENT_3D('',#556,#557,#558);
+#556 = CARTESIAN_POINT('',(0.,0.,0.));
+#557 = DIRECTION('',(0.,0.,1.));
+#558 = DIRECTION('',(1.,0.,-0.));
+#559 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#563)) GLOBAL_UNIT_ASSIGNED_CONTEXT
+((#560,#561,#562)) REPRESENTATION_CONTEXT('Context #1',
+  '3D Context with UNIT and UNCERTAINTY') );
+#560 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#561 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#562 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#563 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#560,
+  'distance_accuracy_value','confusion accuracy');
+#564 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#551));
+#565 = SHAPE_DEFINITION_REPRESENTATION(#566,#572);
+#566 = PRODUCT_DEFINITION_SHAPE('','',#567);
+#567 = PRODUCT_DEFINITION('design','',#568,#571);
+#568 = PRODUCT_DEFINITION_FORMATION('','',#569);
+#569 = PRODUCT('SOLID','SOLID','',(#570));
+#570 = PRODUCT_CONTEXT('',#2,'mechanical');
+#571 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#572 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#573),#671);
+#573 = MANIFOLD_SOLID_BREP('',#574);
+#574 = CLOSED_SHELL('',(#575,#663,#667));
+#575 = ADVANCED_FACE('',(#576),#589,.T.);
+#576 = FACE_BOUND('',#577,.T.);
+#577 = EDGE_LOOP('',(#578,#612,#635,#662));
+#578 = ORIENTED_EDGE('',*,*,#579,.T.);
+#579 = EDGE_CURVE('',#580,#580,#582,.T.);
+#580 = VERTEX_POINT('',#581);
+#581 = CARTESIAN_POINT('',(211.65287853202,95.23152229471,
+    -206.4657042499));
+#582 = SURFACE_CURVE('',#583,(#588,#600),.PCURVE_S1.);
+#583 = CIRCLE('',#584,25.);
+#584 = AXIS2_PLACEMENT_3D('',#585,#586,#587);
+#585 = CARTESIAN_POINT('',(229.33054806168,77.553852765046,
+    -206.4657042499));
+#586 = DIRECTION('',(-0.57922796534,-0.57922796534,0.573576436351));
+#587 = DIRECTION('',(0.707106781187,-0.707106781187,2.775557561563E-16)
+  );
+#588 = PCURVE('',#589,#594);
+#589 = CYLINDRICAL_SURFACE('',#590,25.);
+#590 = AXIS2_PLACEMENT_3D('',#591,#592,#593);
+#591 = CARTESIAN_POINT('',(207.60949936144,55.832804064812,
+    -184.9565878868));
+#592 = DIRECTION('',(-0.57922796534,-0.57922796534,0.573576436351));
+#593 = DIRECTION('',(0.707106781187,-0.707106781187,2.775557561563E-16)
+  );
+#594 = DEFINITIONAL_REPRESENTATION('',(#595),#599);
+#595 = LINE('',#596,#597);
+#596 = CARTESIAN_POINT('',(2.13162820728E-14,-37.5));
+#597 = VECTOR('',#598,1.);
+#598 = DIRECTION('',(1.,0.));
+#599 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#600 = PCURVE('',#601,#606);
+#601 = PLANE('',#602);
+#602 = AXIS2_PLACEMENT_3D('',#603,#604,#605);
+#603 = CARTESIAN_POINT('',(229.33054806168,77.553852765046,
+    -206.4657042499));
+#604 = DIRECTION('',(-0.57922796534,-0.57922796534,0.573576436351));
+#605 = DIRECTION('',(0.707106781187,-0.707106781187,2.775557561563E-16)
+  );
+#606 = DEFINITIONAL_REPRESENTATION('',(#607),#611);
+#607 = CIRCLE('',#608,25.);
+#608 = AXIS2_PLACEMENT_2D('',#609,#610);
+#609 = CARTESIAN_POINT('',(0.,0.));
+#610 = DIRECTION('',(1.,-1.742027637139E-17));
+#611 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#612 = ORIENTED_EDGE('',*,*,#613,.T.);
+#613 = EDGE_CURVE('',#580,#614,#616,.T.);
+#614 = VERTEX_POINT('',#615);
+#615 = CARTESIAN_POINT('',(168.21078113155,51.789424894242,
+    -163.4474715236));
+#616 = SEAM_CURVE('',#617,(#621,#628),.PCURVE_S1.);
+#617 = LINE('',#618,#619);
+#618 = CARTESIAN_POINT('',(189.93182983178,73.510473594476,
+    -184.9565878868));
+#619 = VECTOR('',#620,1.);
+#620 = DIRECTION('',(-0.57922796534,-0.57922796534,0.573576436351));
+#621 = PCURVE('',#589,#622);
+#622 = DEFINITIONAL_REPRESENTATION('',(#623),#627);
+#623 = LINE('',#624,#625);
+#624 = CARTESIAN_POINT('',(9.424777960769,-3.836930773105E-13));
+#625 = VECTOR('',#626,1.);
+#626 = DIRECTION('',(0.,1.));
+#627 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#628 = PCURVE('',#589,#629);
+#629 = DEFINITIONAL_REPRESENTATION('',(#630),#634);
+#630 = LINE('',#631,#632);
+#631 = CARTESIAN_POINT('',(3.14159265359,-3.836930773105E-13));
+#632 = VECTOR('',#633,1.);
+#633 = DIRECTION('',(0.,1.));
+#634 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#635 = ORIENTED_EDGE('',*,*,#636,.T.);
+#636 = EDGE_CURVE('',#614,#614,#637,.T.);
+#637 = SURFACE_CURVE('',#638,(#643,#650),.PCURVE_S1.);
+#638 = CIRCLE('',#639,25.);
+#639 = AXIS2_PLACEMENT_3D('',#640,#641,#642);
+#640 = CARTESIAN_POINT('',(185.88845066121,34.111755364579,
+    -163.4474715236));
+#641 = DIRECTION('',(0.57922796534,0.57922796534,-0.573576436351));
+#642 = DIRECTION('',(0.707106781187,-0.707106781187,2.775557561563E-16)
+  );
+#643 = PCURVE('',#589,#644);
+#644 = DEFINITIONAL_REPRESENTATION('',(#645),#649);
+#645 = LINE('',#646,#647);
+#646 = CARTESIAN_POINT('',(12.566370614359,37.499999999999));
+#647 = VECTOR('',#648,1.);
+#648 = DIRECTION('',(-1.,0.));
+#649 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#650 = PCURVE('',#651,#656);
+#651 = PLANE('',#652);
+#652 = AXIS2_PLACEMENT_3D('',#653,#654,#655);
+#653 = CARTESIAN_POINT('',(185.88845066121,34.111755364579,
+    -163.4474715236));
+#654 = DIRECTION('',(0.57922796534,0.57922796534,-0.573576436351));
+#655 = DIRECTION('',(-0.707106781187,0.707106781187,-2.775557561563E-16)
+  );
+#656 = DEFINITIONAL_REPRESENTATION('',(#657),#661);
+#657 = CIRCLE('',#658,25.);
+#658 = AXIS2_PLACEMENT_2D('',#659,#660);
+#659 = CARTESIAN_POINT('',(0.,0.));
+#660 = DIRECTION('',(-1.,-1.742027637139E-17));
+#661 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#662 = ORIENTED_EDGE('',*,*,#613,.F.);
+#663 = ADVANCED_FACE('',(#664),#651,.F.);
+#664 = FACE_BOUND('',#665,.T.);
+#665 = EDGE_LOOP('',(#666));
+#666 = ORIENTED_EDGE('',*,*,#636,.F.);
+#667 = ADVANCED_FACE('',(#668),#601,.F.);
+#668 = FACE_BOUND('',#669,.T.);
+#669 = EDGE_LOOP('',(#670));
+#670 = ORIENTED_EDGE('',*,*,#579,.F.);
+#671 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#675)) GLOBAL_UNIT_ASSIGNED_CONTEXT
+((#672,#673,#674)) REPRESENTATION_CONTEXT('Context #1',
+  '3D Context with UNIT and UNCERTAINTY') );
+#672 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#673 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#674 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#675 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#672,
+  'distance_accuracy_value','confusion accuracy');
+#676 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#677,#679);
+#677 = ( REPRESENTATION_RELATIONSHIP('','',#572,#554) 
+REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#678) 
+SHAPE_REPRESENTATION_RELATIONSHIP() );
+#678 = ITEM_DEFINED_TRANSFORMATION('','',#11,#555);
+#679 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#680
+  );
+#680 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('5','','',#549,#567,$);
+#681 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#569));
+#682 = SHAPE_DEFINITION_REPRESENTATION(#683,#689);
+#683 = PRODUCT_DEFINITION_SHAPE('','',#684);
+#684 = PRODUCT_DEFINITION('design','',#685,#688);
+#685 = PRODUCT_DEFINITION_FORMATION('','',#686);
+#686 = PRODUCT('8Cylinders v2','8Cylinders v2','',(#687));
+#687 = PRODUCT_CONTEXT('',#2,'mechanical');
+#688 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#689 = SHAPE_REPRESENTATION('',(#11,#690),#694);
+#690 = AXIS2_PLACEMENT_3D('',#691,#692,#693);
+#691 = CARTESIAN_POINT('',(0.,0.,0.));
+#692 = DIRECTION('',(0.,0.,1.));
+#693 = DIRECTION('',(1.,0.,-0.));
+#694 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#698)) GLOBAL_UNIT_ASSIGNED_CONTEXT
+((#695,#696,#697)) REPRESENTATION_CONTEXT('Context #1',
+  '3D Context with UNIT and UNCERTAINTY') );
+#695 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#696 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#697 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#698 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#695,
+  'distance_accuracy_value','confusion accuracy');
+#699 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#686));
+#700 = SHAPE_DEFINITION_REPRESENTATION(#701,#707);
+#701 = PRODUCT_DEFINITION_SHAPE('','',#702);
+#702 = PRODUCT_DEFINITION('design','',#703,#706);
+#703 = PRODUCT_DEFINITION_FORMATION('','',#704);
+#704 = PRODUCT('SOLID','SOLID','',(#705));
+#705 = PRODUCT_CONTEXT('',#2,'mechanical');
+#706 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#707 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#708),#806);
+#708 = MANIFOLD_SOLID_BREP('',#709);
+#709 = CLOSED_SHELL('',(#710,#798,#802));
+#710 = ADVANCED_FACE('',(#711),#724,.T.);
+#711 = FACE_BOUND('',#712,.T.);
+#712 = EDGE_LOOP('',(#713,#747,#770,#797));
+#713 = ORIENTED_EDGE('',*,*,#714,.F.);
+#714 = EDGE_CURVE('',#715,#715,#717,.T.);
+#715 = VERTEX_POINT('',#716);
+#716 = CARTESIAN_POINT('',(211.65287853202,-95.23152229471,
+    -206.4657042499));
+#717 = SURFACE_CURVE('',#718,(#723,#735),.PCURVE_S1.);
+#718 = CIRCLE('',#719,25.);
+#719 = AXIS2_PLACEMENT_3D('',#720,#721,#722);
+#720 = CARTESIAN_POINT('',(229.33054806168,-77.55385276504,
+    -206.4657042499));
+#721 = DIRECTION('',(0.57922796534,-0.57922796534,-0.573576436351));
+#722 = DIRECTION('',(0.707106781187,0.707106781187,2.775557561563E-16));
+#723 = PCURVE('',#724,#729);
+#724 = CYLINDRICAL_SURFACE('',#725,25.);
+#725 = AXIS2_PLACEMENT_3D('',#726,#727,#728);
+#726 = CARTESIAN_POINT('',(207.60949936144,-55.83280406481,
+    -184.9565878868));
+#727 = DIRECTION('',(0.57922796534,-0.57922796534,-0.573576436351));
+#728 = DIRECTION('',(0.707106781187,0.707106781187,2.775557561563E-16));
+#729 = DEFINITIONAL_REPRESENTATION('',(#730),#734);
+#730 = LINE('',#731,#732);
+#731 = CARTESIAN_POINT('',(-6.28318530718,37.500000000001));
+#732 = VECTOR('',#733,1.);
+#733 = DIRECTION('',(1.,0.));
+#734 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#735 = PCURVE('',#736,#741);
+#736 = PLANE('',#737);
+#737 = AXIS2_PLACEMENT_3D('',#738,#739,#740);
+#738 = CARTESIAN_POINT('',(229.33054806168,-77.55385276504,
+    -206.4657042499));
+#739 = DIRECTION('',(0.57922796534,-0.57922796534,-0.573576436351));
+#740 = DIRECTION('',(0.707106781187,0.707106781187,2.775557561563E-16));
+#741 = DEFINITIONAL_REPRESENTATION('',(#742),#746);
+#742 = CIRCLE('',#743,25.);
+#743 = AXIS2_PLACEMENT_2D('',#744,#745);
+#744 = CARTESIAN_POINT('',(0.,0.));
+#745 = DIRECTION('',(1.,-1.742027637139E-17));
+#746 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#747 = ORIENTED_EDGE('',*,*,#748,.T.);
+#748 = EDGE_CURVE('',#715,#749,#751,.T.);
+#749 = VERTEX_POINT('',#750);
+#750 = CARTESIAN_POINT('',(168.21078113155,-51.78942489424,
+    -163.4474715236));
+#751 = SEAM_CURVE('',#752,(#756,#763),.PCURVE_S1.);
+#752 = LINE('',#753,#754);
+#753 = CARTESIAN_POINT('',(189.93182983178,-73.51047359447,
+    -184.9565878868));
+#754 = VECTOR('',#755,1.);
+#755 = DIRECTION('',(-0.57922796534,0.57922796534,0.573576436351));
+#756 = PCURVE('',#724,#757);
+#757 = DEFINITIONAL_REPRESENTATION('',(#758),#762);
+#758 = LINE('',#759,#760);
+#759 = CARTESIAN_POINT('',(-3.14159265359,3.836930773105E-13));
+#760 = VECTOR('',#761,1.);
+#761 = DIRECTION('',(0.,-1.));
+#762 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#763 = PCURVE('',#724,#764);
+#764 = DEFINITIONAL_REPRESENTATION('',(#765),#769);
+#765 = LINE('',#766,#767);
+#766 = CARTESIAN_POINT('',(3.14159265359,3.836930773105E-13));
+#767 = VECTOR('',#768,1.);
+#768 = DIRECTION('',(0.,-1.));
+#769 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#770 = ORIENTED_EDGE('',*,*,#771,.F.);
+#771 = EDGE_CURVE('',#749,#749,#772,.T.);
+#772 = SURFACE_CURVE('',#773,(#778,#785),.PCURVE_S1.);
+#773 = CIRCLE('',#774,25.);
+#774 = AXIS2_PLACEMENT_3D('',#775,#776,#777);
+#775 = CARTESIAN_POINT('',(185.88845066121,-34.11175536457,
+    -163.4474715236));
+#776 = DIRECTION('',(-0.57922796534,0.57922796534,0.573576436351));
+#777 = DIRECTION('',(0.707106781187,0.707106781187,2.775557561563E-16));
+#778 = PCURVE('',#724,#779);
+#779 = DEFINITIONAL_REPRESENTATION('',(#780),#784);
+#780 = LINE('',#781,#782);
+#781 = CARTESIAN_POINT('',(6.28318530718,-37.49999999999));
+#782 = VECTOR('',#783,1.);
+#783 = DIRECTION('',(-1.,0.));
+#784 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#785 = PCURVE('',#786,#791);
+#786 = PLANE('',#787);
+#787 = AXIS2_PLACEMENT_3D('',#788,#789,#790);
+#788 = CARTESIAN_POINT('',(185.88845066121,-34.11175536457,
+    -163.4474715236));
+#789 = DIRECTION('',(-0.57922796534,0.57922796534,0.573576436351));
+#790 = DIRECTION('',(-0.707106781187,-0.707106781187,-2.775557561563E-16
+    ));
+#791 = DEFINITIONAL_REPRESENTATION('',(#792),#796);
+#792 = CIRCLE('',#793,25.);
+#793 = AXIS2_PLACEMENT_2D('',#794,#795);
+#794 = CARTESIAN_POINT('',(0.,0.));
+#795 = DIRECTION('',(-1.,-1.742027637139E-17));
+#796 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#797 = ORIENTED_EDGE('',*,*,#748,.F.);
+#798 = ADVANCED_FACE('',(#799),#786,.T.);
+#799 = FACE_BOUND('',#800,.T.);
+#800 = EDGE_LOOP('',(#801));
+#801 = ORIENTED_EDGE('',*,*,#771,.T.);
+#802 = ADVANCED_FACE('',(#803),#736,.T.);
+#803 = FACE_BOUND('',#804,.T.);
+#804 = EDGE_LOOP('',(#805));
+#805 = ORIENTED_EDGE('',*,*,#714,.T.);
+#806 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#810)) GLOBAL_UNIT_ASSIGNED_CONTEXT
+((#807,#808,#809)) REPRESENTATION_CONTEXT('Context #1',
+  '3D Context with UNIT and UNCERTAINTY') );
+#807 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#808 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#809 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#810 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#807,
+  'distance_accuracy_value','confusion accuracy');
+#811 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#812,#814);
+#812 = ( REPRESENTATION_RELATIONSHIP('','',#707,#689) 
+REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#813) 
+SHAPE_REPRESENTATION_RELATIONSHIP() );
+#813 = ITEM_DEFINED_TRANSFORMATION('','',#11,#690);
+#814 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#815
+  );
+#815 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('6','','',#684,#702,$);
+#816 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#704));
+#817 = SHAPE_DEFINITION_REPRESENTATION(#818,#824);
+#818 = PRODUCT_DEFINITION_SHAPE('','',#819);
+#819 = PRODUCT_DEFINITION('design','',#820,#823);
+#820 = PRODUCT_DEFINITION_FORMATION('','',#821);
+#821 = PRODUCT('8Cylinders v2','8Cylinders v2','',(#822));
+#822 = PRODUCT_CONTEXT('',#2,'mechanical');
+#823 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#824 = SHAPE_REPRESENTATION('',(#11,#825),#829);
+#825 = AXIS2_PLACEMENT_3D('',#826,#827,#828);
+#826 = CARTESIAN_POINT('',(0.,0.,0.));
+#827 = DIRECTION('',(0.,0.,1.));
+#828 = DIRECTION('',(1.,0.,-0.));
+#829 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#833)) GLOBAL_UNIT_ASSIGNED_CONTEXT
+((#830,#831,#832)) REPRESENTATION_CONTEXT('Context #1',
+  '3D Context with UNIT and UNCERTAINTY') );
+#830 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#831 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#832 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#833 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#830,
+  'distance_accuracy_value','confusion accuracy');
+#834 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#821));
+#835 = SHAPE_DEFINITION_REPRESENTATION(#836,#842);
+#836 = PRODUCT_DEFINITION_SHAPE('','',#837);
+#837 = PRODUCT_DEFINITION('design','',#838,#841);
+#838 = PRODUCT_DEFINITION_FORMATION('','',#839);
+#839 = PRODUCT('SOLID','SOLID','',(#840));
+#840 = PRODUCT_CONTEXT('',#2,'mechanical');
+#841 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#842 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#843),#941);
+#843 = MANIFOLD_SOLID_BREP('',#844);
+#844 = CLOSED_SHELL('',(#845,#933,#937));
+#845 = ADVANCED_FACE('',(#846),#859,.T.);
+#846 = FACE_BOUND('',#847,.T.);
+#847 = EDGE_LOOP('',(#848,#882,#905,#932));
+#848 = ORIENTED_EDGE('',*,*,#849,.F.);
+#849 = EDGE_CURVE('',#850,#850,#852,.T.);
+#850 = VERTEX_POINT('',#851);
+#851 = CARTESIAN_POINT('',(-211.652878532,95.23152229471,-206.4657042499
+    ));
+#852 = SURFACE_CURVE('',#853,(#858,#870),.PCURVE_S1.);
+#853 = CIRCLE('',#854,25.);
+#854 = AXIS2_PLACEMENT_3D('',#855,#856,#857);
+#855 = CARTESIAN_POINT('',(-229.3305480616,77.553852765046,
+    -206.4657042499));
+#856 = DIRECTION('',(-0.57922796534,0.57922796534,-0.573576436351));
+#857 = DIRECTION('',(-0.707106781187,-0.707106781187,2.775557561563E-16)
+  );
+#858 = PCURVE('',#859,#864);
+#859 = CYLINDRICAL_SURFACE('',#860,25.);
+#860 = AXIS2_PLACEMENT_3D('',#861,#862,#863);
+#861 = CARTESIAN_POINT('',(-207.6094993614,55.832804064812,
+    -184.9565878868));
+#862 = DIRECTION('',(-0.57922796534,0.57922796534,-0.573576436351));
+#863 = DIRECTION('',(-0.707106781187,-0.707106781187,2.775557561563E-16)
+  );
+#864 = DEFINITIONAL_REPRESENTATION('',(#865),#869);
+#865 = LINE('',#866,#867);
+#866 = CARTESIAN_POINT('',(-6.28318530718,37.500000000001));
+#867 = VECTOR('',#868,1.);
+#868 = DIRECTION('',(1.,0.));
+#869 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#870 = PCURVE('',#871,#876);
+#871 = PLANE('',#872);
+#872 = AXIS2_PLACEMENT_3D('',#873,#874,#875);
+#873 = CARTESIAN_POINT('',(-229.3305480616,77.553852765046,
+    -206.4657042499));
+#874 = DIRECTION('',(-0.57922796534,0.57922796534,-0.573576436351));
+#875 = DIRECTION('',(-0.707106781187,-0.707106781187,2.775557561563E-16)
+  );
+#876 = DEFINITIONAL_REPRESENTATION('',(#877),#881);
+#877 = CIRCLE('',#878,25.);
+#878 = AXIS2_PLACEMENT_2D('',#879,#880);
+#879 = CARTESIAN_POINT('',(0.,0.));
+#880 = DIRECTION('',(1.,-1.742027637139E-17));
+#881 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#882 = ORIENTED_EDGE('',*,*,#883,.T.);
+#883 = EDGE_CURVE('',#850,#884,#886,.T.);
+#884 = VERTEX_POINT('',#885);
+#885 = CARTESIAN_POINT('',(-168.2107811315,51.789424894242,
+    -163.4474715236));
+#886 = SEAM_CURVE('',#887,(#891,#898),.PCURVE_S1.);
+#887 = LINE('',#888,#889);
+#888 = CARTESIAN_POINT('',(-189.9318298317,73.510473594476,
+    -184.9565878868));
+#889 = VECTOR('',#890,1.);
+#890 = DIRECTION('',(0.57922796534,-0.57922796534,0.573576436351));
+#891 = PCURVE('',#859,#892);
+#892 = DEFINITIONAL_REPRESENTATION('',(#893),#897);
+#893 = LINE('',#894,#895);
+#894 = CARTESIAN_POINT('',(-3.14159265359,3.836930773105E-13));
+#895 = VECTOR('',#896,1.);
+#896 = DIRECTION('',(0.,-1.));
+#897 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#898 = PCURVE('',#859,#899);
+#899 = DEFINITIONAL_REPRESENTATION('',(#900),#904);
+#900 = LINE('',#901,#902);
+#901 = CARTESIAN_POINT('',(3.14159265359,3.836930773105E-13));
+#902 = VECTOR('',#903,1.);
+#903 = DIRECTION('',(0.,-1.));
+#904 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#905 = ORIENTED_EDGE('',*,*,#906,.F.);
+#906 = EDGE_CURVE('',#884,#884,#907,.T.);
+#907 = SURFACE_CURVE('',#908,(#913,#920),.PCURVE_S1.);
+#908 = CIRCLE('',#909,25.);
+#909 = AXIS2_PLACEMENT_3D('',#910,#911,#912);
+#910 = CARTESIAN_POINT('',(-185.8884506612,34.111755364579,
+    -163.4474715236));
+#911 = DIRECTION('',(0.57922796534,-0.57922796534,0.573576436351));
+#912 = DIRECTION('',(-0.707106781187,-0.707106781187,2.775557561563E-16)
+  );
+#913 = PCURVE('',#859,#914);
+#914 = DEFINITIONAL_REPRESENTATION('',(#915),#919);
+#915 = LINE('',#916,#917);
+#916 = CARTESIAN_POINT('',(6.28318530718,-37.49999999999));
+#917 = VECTOR('',#918,1.);
+#918 = DIRECTION('',(-1.,0.));
+#919 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#920 = PCURVE('',#921,#926);
+#921 = PLANE('',#922);
+#922 = AXIS2_PLACEMENT_3D('',#923,#924,#925);
+#923 = CARTESIAN_POINT('',(-185.8884506612,34.111755364579,
+    -163.4474715236));
+#924 = DIRECTION('',(0.57922796534,-0.57922796534,0.573576436351));
+#925 = DIRECTION('',(0.707106781187,0.707106781187,-2.775557561563E-16)
+  );
+#926 = DEFINITIONAL_REPRESENTATION('',(#927),#931);
+#927 = CIRCLE('',#928,25.);
+#928 = AXIS2_PLACEMENT_2D('',#929,#930);
+#929 = CARTESIAN_POINT('',(0.,0.));
+#930 = DIRECTION('',(-1.,-1.742027637139E-17));
+#931 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#932 = ORIENTED_EDGE('',*,*,#883,.F.);
+#933 = ADVANCED_FACE('',(#934),#921,.T.);
+#934 = FACE_BOUND('',#935,.T.);
+#935 = EDGE_LOOP('',(#936));
+#936 = ORIENTED_EDGE('',*,*,#906,.T.);
+#937 = ADVANCED_FACE('',(#938),#871,.T.);
+#938 = FACE_BOUND('',#939,.T.);
+#939 = EDGE_LOOP('',(#940));
+#940 = ORIENTED_EDGE('',*,*,#849,.T.);
+#941 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#945)) GLOBAL_UNIT_ASSIGNED_CONTEXT
+((#942,#943,#944)) REPRESENTATION_CONTEXT('Context #1',
+  '3D Context with UNIT and UNCERTAINTY') );
+#942 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#943 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#944 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#945 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#942,
+  'distance_accuracy_value','confusion accuracy');
+#946 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#947,#949);
+#947 = ( REPRESENTATION_RELATIONSHIP('','',#842,#824) 
+REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#948) 
+SHAPE_REPRESENTATION_RELATIONSHIP() );
+#948 = ITEM_DEFINED_TRANSFORMATION('','',#11,#825);
+#949 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#950
+  );
+#950 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('7','','',#819,#837,$);
+#951 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#839));
+#952 = SHAPE_DEFINITION_REPRESENTATION(#953,#959);
+#953 = PRODUCT_DEFINITION_SHAPE('','',#954);
+#954 = PRODUCT_DEFINITION('design','',#955,#958);
+#955 = PRODUCT_DEFINITION_FORMATION('','',#956);
+#956 = PRODUCT('8Cylinders v2','8Cylinders v2','',(#957));
+#957 = PRODUCT_CONTEXT('',#2,'mechanical');
+#958 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#959 = SHAPE_REPRESENTATION('',(#11,#960),#964);
+#960 = AXIS2_PLACEMENT_3D('',#961,#962,#963);
+#961 = CARTESIAN_POINT('',(0.,0.,0.));
+#962 = DIRECTION('',(0.,0.,1.));
+#963 = DIRECTION('',(1.,0.,-0.));
+#964 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#968)) GLOBAL_UNIT_ASSIGNED_CONTEXT
+((#965,#966,#967)) REPRESENTATION_CONTEXT('Context #1',
+  '3D Context with UNIT and UNCERTAINTY') );
+#965 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#966 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#967 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#968 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#965,
+  'distance_accuracy_value','confusion accuracy');
+#969 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#956));
+#970 = SHAPE_DEFINITION_REPRESENTATION(#971,#977);
+#971 = PRODUCT_DEFINITION_SHAPE('','',#972);
+#972 = PRODUCT_DEFINITION('design','',#973,#976);
+#973 = PRODUCT_DEFINITION_FORMATION('','',#974);
+#974 = PRODUCT('SOLID','SOLID','',(#975));
+#975 = PRODUCT_CONTEXT('',#2,'mechanical');
+#976 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#977 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#978),#1076);
+#978 = MANIFOLD_SOLID_BREP('',#979);
+#979 = CLOSED_SHELL('',(#980,#1068,#1072));
+#980 = ADVANCED_FACE('',(#981),#994,.T.);
+#981 = FACE_BOUND('',#982,.T.);
+#982 = EDGE_LOOP('',(#983,#1017,#1040,#1067));
+#983 = ORIENTED_EDGE('',*,*,#984,.T.);
+#984 = EDGE_CURVE('',#985,#985,#987,.T.);
+#985 = VERTEX_POINT('',#986);
+#986 = CARTESIAN_POINT('',(-211.652878532,-95.23152229471,
+    -206.4657042499));
+#987 = SURFACE_CURVE('',#988,(#993,#1005),.PCURVE_S1.);
+#988 = CIRCLE('',#989,25.);
+#989 = AXIS2_PLACEMENT_3D('',#990,#991,#992);
+#990 = CARTESIAN_POINT('',(-229.3305480616,-77.55385276504,
+    -206.4657042499));
+#991 = DIRECTION('',(0.57922796534,0.57922796534,0.573576436351));
+#992 = DIRECTION('',(-0.707106781187,0.707106781187,2.775557561563E-16)
+  );
+#993 = PCURVE('',#994,#999);
+#994 = CYLINDRICAL_SURFACE('',#995,25.);
+#995 = AXIS2_PLACEMENT_3D('',#996,#997,#998);
+#996 = CARTESIAN_POINT('',(-207.6094993614,-55.83280406481,
+    -184.9565878868));
+#997 = DIRECTION('',(0.57922796534,0.57922796534,0.573576436351));
+#998 = DIRECTION('',(-0.707106781187,0.707106781187,2.775557561563E-16)
+  );
+#999 = DEFINITIONAL_REPRESENTATION('',(#1000),#1004);
+#1000 = LINE('',#1001,#1002);
+#1001 = CARTESIAN_POINT('',(2.13162820728E-14,-37.5));
+#1002 = VECTOR('',#1003,1.);
+#1003 = DIRECTION('',(1.,0.));
+#1004 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#1005 = PCURVE('',#1006,#1011);
+#1006 = PLANE('',#1007);
+#1007 = AXIS2_PLACEMENT_3D('',#1008,#1009,#1010);
+#1008 = CARTESIAN_POINT('',(-229.3305480616,-77.55385276504,
+    -206.4657042499));
+#1009 = DIRECTION('',(0.57922796534,0.57922796534,0.573576436351));
+#1010 = DIRECTION('',(-0.707106781187,0.707106781187,2.775557561563E-16)
+  );
+#1011 = DEFINITIONAL_REPRESENTATION('',(#1012),#1016);
+#1012 = CIRCLE('',#1013,25.);
+#1013 = AXIS2_PLACEMENT_2D('',#1014,#1015);
+#1014 = CARTESIAN_POINT('',(0.,0.));
+#1015 = DIRECTION('',(1.,-1.742027637139E-17));
+#1016 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#1017 = ORIENTED_EDGE('',*,*,#1018,.T.);
+#1018 = EDGE_CURVE('',#985,#1019,#1021,.T.);
+#1019 = VERTEX_POINT('',#1020);
+#1020 = CARTESIAN_POINT('',(-168.2107811315,-51.78942489424,
+    -163.4474715236));
+#1021 = SEAM_CURVE('',#1022,(#1026,#1033),.PCURVE_S1.);
+#1022 = LINE('',#1023,#1024);
+#1023 = CARTESIAN_POINT('',(-189.9318298317,-73.51047359447,
+    -184.9565878868));
+#1024 = VECTOR('',#1025,1.);
+#1025 = DIRECTION('',(0.57922796534,0.57922796534,0.573576436351));
+#1026 = PCURVE('',#994,#1027);
+#1027 = DEFINITIONAL_REPRESENTATION('',(#1028),#1032);
+#1028 = LINE('',#1029,#1030);
+#1029 = CARTESIAN_POINT('',(9.424777960769,-3.836930773105E-13));
+#1030 = VECTOR('',#1031,1.);
+#1031 = DIRECTION('',(0.,1.));
+#1032 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#1033 = PCURVE('',#994,#1034);
+#1034 = DEFINITIONAL_REPRESENTATION('',(#1035),#1039);
+#1035 = LINE('',#1036,#1037);
+#1036 = CARTESIAN_POINT('',(3.14159265359,-3.836930773105E-13));
+#1037 = VECTOR('',#1038,1.);
+#1038 = DIRECTION('',(0.,1.));
+#1039 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#1040 = ORIENTED_EDGE('',*,*,#1041,.T.);
+#1041 = EDGE_CURVE('',#1019,#1019,#1042,.T.);
+#1042 = SURFACE_CURVE('',#1043,(#1048,#1055),.PCURVE_S1.);
+#1043 = CIRCLE('',#1044,25.);
+#1044 = AXIS2_PLACEMENT_3D('',#1045,#1046,#1047);
+#1045 = CARTESIAN_POINT('',(-185.8884506612,-34.11175536457,
+    -163.4474715236));
+#1046 = DIRECTION('',(-0.57922796534,-0.57922796534,-0.573576436351));
+#1047 = DIRECTION('',(-0.707106781187,0.707106781187,2.775557561563E-16)
+  );
+#1048 = PCURVE('',#994,#1049);
+#1049 = DEFINITIONAL_REPRESENTATION('',(#1050),#1054);
+#1050 = LINE('',#1051,#1052);
+#1051 = CARTESIAN_POINT('',(12.566370614359,37.499999999999));
+#1052 = VECTOR('',#1053,1.);
+#1053 = DIRECTION('',(-1.,0.));
+#1054 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#1055 = PCURVE('',#1056,#1061);
+#1056 = PLANE('',#1057);
+#1057 = AXIS2_PLACEMENT_3D('',#1058,#1059,#1060);
+#1058 = CARTESIAN_POINT('',(-185.8884506612,-34.11175536457,
+    -163.4474715236));
+#1059 = DIRECTION('',(-0.57922796534,-0.57922796534,-0.573576436351));
+#1060 = DIRECTION('',(0.707106781187,-0.707106781187,-2.775557561563E-16
+    ));
+#1061 = DEFINITIONAL_REPRESENTATION('',(#1062),#1066);
+#1062 = CIRCLE('',#1063,25.);
+#1063 = AXIS2_PLACEMENT_2D('',#1064,#1065);
+#1064 = CARTESIAN_POINT('',(0.,0.));
+#1065 = DIRECTION('',(-1.,-1.742027637139E-17));
+#1066 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#1067 = ORIENTED_EDGE('',*,*,#1018,.F.);
+#1068 = ADVANCED_FACE('',(#1069),#1056,.F.);
+#1069 = FACE_BOUND('',#1070,.T.);
+#1070 = EDGE_LOOP('',(#1071));
+#1071 = ORIENTED_EDGE('',*,*,#1041,.F.);
+#1072 = ADVANCED_FACE('',(#1073),#1006,.F.);
+#1073 = FACE_BOUND('',#1074,.T.);
+#1074 = EDGE_LOOP('',(#1075));
+#1075 = ORIENTED_EDGE('',*,*,#984,.F.);
+#1076 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#1080)) 
+GLOBAL_UNIT_ASSIGNED_CONTEXT((#1077,#1078,#1079)) REPRESENTATION_CONTEXT
+('Context #1','3D Context with UNIT and UNCERTAINTY') );
+#1077 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#1078 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#1079 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#1080 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#1077,
+  'distance_accuracy_value','confusion accuracy');
+#1081 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1082,#1084);
+#1082 = ( REPRESENTATION_RELATIONSHIP('','',#977,#959) 
+REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1083) 
+SHAPE_REPRESENTATION_RELATIONSHIP() );
+#1083 = ITEM_DEFINED_TRANSFORMATION('','',#11,#960);
+#1084 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',
+  #1085);
+#1085 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('8','','',#954,#972,$);
+#1086 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#974));
+#1087 = REPRESENTATION('material name',(#1088),#131);
+#1088 = DESCRIPTIVE_REPRESENTATION_ITEM('Material Name 1',
+  'Material description 1');
+#1089 = DERIVED_UNIT((#1090,#1092));
+#1090 = DERIVED_UNIT_ELEMENT(#1091,3.);
+#1091 = ( MASS_UNIT() NAMED_UNIT(*) SI_UNIT($,.GRAM.) );
+#1092 = DERIVED_UNIT_ELEMENT(#1093,2.);
+#1093 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.CENTI.,.METRE.) );
+#1094 = REPRESENTATION('density',(#1095),#131);
+#1095 = MEASURE_REPRESENTATION_ITEM('Material densName 1',7.85E-06,#1089
+  );
+#1096 = PROPERTY_DEFINITION('material property','material name',#27);
+#1097 = PROPERTY_DEFINITION_REPRESENTATION(#1096,#1087);
+#1098 = PROPERTY_DEFINITION('material property','density',#27);
+#1099 = PROPERTY_DEFINITION_REPRESENTATION(#1098,#1094);
+#1100 = REPRESENTATION('material name',(#1101),#266);
+#1101 = DESCRIPTIVE_REPRESENTATION_ITEM('Material Name 2',
+  'Material description 2');
+#1102 = PROPERTY_DEFINITION('material property','material name',#162);
+#1103 = PROPERTY_DEFINITION_REPRESENTATION(#1102,#1100);
+#1104 = REPRESENTATION('material name',(#1105),#401);
+#1105 = DESCRIPTIVE_REPRESENTATION_ITEM('Material Name 3',
+  'Material description 3');
+#1106 = PROPERTY_DEFINITION('material property','material name',#297);
+#1107 = PROPERTY_DEFINITION_REPRESENTATION(#1106,#1104);
+#1108 = REPRESENTATION('material name',(#1109),#536);
+#1109 = DESCRIPTIVE_REPRESENTATION_ITEM('Material Name 4',
+  'Material description 4');
+#1110 = PROPERTY_DEFINITION('material property','material name',#432);
+#1111 = PROPERTY_DEFINITION_REPRESENTATION(#1110,#1108);
+#1112 = REPRESENTATION('material name',(#1113),#671);
+#1113 = DESCRIPTIVE_REPRESENTATION_ITEM('Material Name 5',
+  'Material description 5');
+#1114 = PROPERTY_DEFINITION('material property','material name',#567);
+#1115 = PROPERTY_DEFINITION_REPRESENTATION(#1114,#1112);
+#1116 = REPRESENTATION('material name',(#1117),#806);
+#1117 = DESCRIPTIVE_REPRESENTATION_ITEM('Material Name 6',
+  'Material description 6');
+#1118 = PROPERTY_DEFINITION('material property','material name',#702);
+#1119 = PROPERTY_DEFINITION_REPRESENTATION(#1118,#1116);
+#1120 = REPRESENTATION('material name',(#1121),#941);
+#1121 = DESCRIPTIVE_REPRESENTATION_ITEM('Material Name 7',
+  'Material description 7');
+#1122 = PROPERTY_DEFINITION('material property','material name',#837);
+#1123 = PROPERTY_DEFINITION_REPRESENTATION(#1122,#1120);
+#1124 = REPRESENTATION('material name',(#1125),#1076);
+#1125 = DESCRIPTIVE_REPRESENTATION_ITEM('Material Name 8',
+  'Material description 8');
+#1126 = PROPERTY_DEFINITION('material property','material name',#972);
+#1127 = PROPERTY_DEFINITION_REPRESENTATION(#1126,#1124);
+ENDSEC;
+END-ISO-10303-21;