.. role:: blue :class: blue Converter Operation Principles =============================== .. _Converter_Operation_Principles_: The converter operation involves the use of interfaces that can be divided into two groups. The first group includes interfaces that have an implementation on the C3D side, the second group consists of those interfaces that must be implemented by the user. In addition, the C3D geometric kernel provides a standard implementation of all interfaces required for data exchange. The interfaces correspond to the following concepts: - Converter (interface :blue:`IConvertor3D`) — a special object that is used to transfer data. Implemented on the C3D side. - Converter properties (interface :blue:`IConvertorProperty3D`) — serve to transfer exchange settings to the converter. The interface has a standard implementation. - Document (interface :blue:`ItModelDocument`) — an object that corresponds to the transferred model as a whole. The interface has a standard implementation. - Part (interface :blue:`ItModelPart`) and assembly (interface :blue:`ItModelAssembly`) — parts of the model that can be represented as parts or as assembly units. - Instance (interface :blue:`ItModelInstance`) — an object responsible for positioning and/or reuse of a component in the model. The generalizing concept of a part and an assembly is a **component**. It is assumed that a **component** can be a minimal unit to which a separate file that the end application works with can correspond. The use of components and instances allows forming a model tree in which components can be used multiple times. Inside the converter, the internal model is transformed based on the format specifics. For example, a part may have a mirror version, and this corresponds to a left-handed coordinate system of the component, while in the STEP format left-handed coordinate systems are not provided. Also, in the STEP format visual properties cannot be assigned to a part instance, and duplicates are created for recolored parts. There are two main transformation criteria — the left-handed coordinate system and visual properties (in some cases it is acceptable to assign visual properties to an instance, for example color, and in some cases it is not). The transformation scheme between data models is based on two entities: - element types (:ref:`MbAssembly ` or shape-containing :ref:`MbSolid `, :ref:`MbMesh `, :ref:`MbWireFrame `, :ref:`MbSpaceInstance `, :ref:`MbPlaneInstance `); - attributes (primarily :ref:`MbProductInfo `).