Articulo de referencia

ISO 10303-21

El archivo STEP es un formato de intercambio de datos ampliamente utilizado [ 1 ] de STEP . ISO 10303 puede representar objetos 3D en diseño asistido por computadora (CAD) e inf...

El archivo STEP es un formato de intercambio de datos ampliamente utilizado [ 1 ] de STEP . ISO 10303 puede representar objetos 3D en diseño asistido por computadora (CAD) e información relacionada. Un archivo STEP es texto ASCII con el formato definido en ISO 10303-21 Codificación de texto claro de la estructura de intercambio . [ 2 ]

La norma ISO 10303-21 define el mecanismo de codificación para representar datos conformes a un esquema particular en el lenguaje de modelado de datos EXPRESS especificado en la norma ISO 10303-11 . Un archivo STEP también se denomina archivo p21 y archivo físico STEP . Las extensiones de archivo .stp y .step indican que el archivo contiene datos conformes a los protocolos de aplicación STEP, mientras que la extensión .p21 debe utilizarse para todos los demás fines. [ 3 ]

El uso de ISO 10303-21 no se limita a STEP. Las Industry Foundation Classes y el anterior CIMSteel Integration Standard (CIS/2) definen un esquema EXPRESS para datos de modelado de información de construcción y especifican ISO 10303-21 como una codificación de intercambio .

Ejemplo

Este gráfico muestra las instancias de entidades y las referencias entre ellas en un archivo que representa un modelo sólido de un cilindro.

Instancias de entidad para un único archivo de pieza

Modelo sólido del cilindro

Historia

Algunos detalles a tener en cuenta:

  • La primera edición, ISO 10303-21:1994, contenía algunos errores que fueron corregidos mediante una corrección técnica. Por lo tanto, se recomienda a los usuarios consultar la segunda edición (véase más abajo).
  • La segunda edición, ISO 10303-21:2002, incluyó la corrección y ampliaciones para varias secciones de datos.
  • La tercera edición, ISO 10303-21:2016, añadió secciones de anclaje, referencia y firma para admitir referencias externas, soporte para estructuras de intercambio comprimidas en un archivo basado en ZIP, firmas digitales y codificación de caracteres UTF-8. [ 4 ]
  • La parte 21 definió dos clases de conformidad. Se diferencian únicamente en la forma de codificar instancias de entidades complejas.
    • La clase de conformidad 1 se utiliza siempre para imponer el llamado mapeo interno , que es más compacto.
    • La clase de conformidad 2, que no se utiliza en la práctica, siempre impone la asignación externa . En teoría, esto permitiría una mejor interoperabilidad entre procesadores posteriores, ya que un procesador posterior puede saber cómo manejar algunos supertipos, pero puede que no conozca los subtipos especificados.
  • La primera edición de la parte 21 impone el uso de los llamados nombres abreviados , que son opcionales en la segunda edición. Sin embargo, en la práctica, los nombres abreviados se utilizan con poca frecuencia.
  • La segunda edición permite el uso de varias secciones de datos. Sin embargo, en la práctica, la mayoría de las implementaciones solo utilizan una única sección de datos (codificación de la primera edición).

Bloques de construcción ISO 10303-21

Ejemplo

Un ejemplo típico se ve así:

ISO-10303-21; ENCABEZAMIENTO; DESCRIPCIÓN_DEL_ARCHIVO( /* descripción */ ('Un ejemplo mínimo de AP214 con una sola pieza'), /* implementation_level */ '2;1'); NOMBRE DEL ARCHIVO( /* nombre */ 'demo', /* marca_de_tiempo */ '2003-12-27T11:57:53', /* autor */ ('Lothar Klein'), /* organización */ ('LKSoft'), /* preprocessor_version */ ' ', /* sistema_de_origen */ 'IDA-STEP', /* autorización */ ' '); ESQUEMA_DE_ARCHIVO (('DISEÑO_AUTOMOTRIZ { 1 0 10303 214 2 1 1}')); FIN DE LA SEGURIDAD; DATOS; #10=ORGANIZACIÓN('O0001','LKSoft','empresa'); #11=PRODUCT_DEFINITION_CONTEXT('definición de pieza',#12,'fabricación'); #12=CONTEXTO_DE_APLICACIÓN('diseño mecánico'); #13=DEFINICIÓN_PROTOCOLO_APLICACIÓN('','diseño_automotriz',2003,#12); #14=DEFINICIÓN_PRODUCTO('0',$,#15,#11); #15=FORMACIÓN_DE_DEFINICIÓN_DEL_PRODUCTO('1',$,#16); #16=PRODUCTO('A0001','Parte de prueba 1','',(#18)); #17=PRODUCT_RELATED_PRODUCT_CATEGORY('parte',$,(#16)); #18=PRODUCT_CONTEXT('',#12,''); #19=ASIGNACIÓN_ORGANIZACIONAL_APLICADA(#10,#20,(#16)); #20=ORGANIZATION_ROLE('id propietario'); FIN DE LA SEGURIDAD; FIN-ISO-10303-21; 

Sección de encabezado

Como se puede ver en el ejemplo anterior, el archivo se divide en dos secciones después de la palabra clave inicial ISO-10303-21; :

La sección HEADER tiene una estructura fija que consta de 3 a 6 grupos en el orden especificado. Excepto los campos de datos time_stamp y FILE_SCHEMA, todos los demás campos pueden contener cadenas vacías.

  • DESCRIPCIÓN_DEL_ARCHIVO
    • Descripción . Una breve descripción del contenido del archivo.
    • implementation_level . La versión y la opción de conformidad de este archivo. Las versiones posibles son "1" para el estándar original de 1994, "2" para la corrección técnica de 1995 y "3" para la segunda edición. La opción de conformidad es "1" para el mapeo interno y "2" para el mapeo externo de instancias de entidades complejas. A menudo, se encontrará aquí el valor __'2;1'__. El valor '2;2' que impone el mapeo externo también es posible, pero se usa muy raramente. Los valores '3;1' y '3;2' indican archivos STEP extendidos según se definen en el estándar de 2001 con varias secciones DATA, múltiples esquemas y soporte para FILE_POPULATION.
  • NOMBRE DEL ARCHIVO
    • Nombre de esta estructura de intercambio. Puede corresponder al nombre del archivo en un sistema de archivos o reflejar datos en dicho archivo. No existe una regla estricta sobre cómo usar este campo.
    • La marca de tiempo indica la hora en que se creó este archivo. La hora se proporciona en el formato internacional de fecha y hora ISO 8601 , por ejemplo, 2003-12-27T11:57:53 para el 27 de diciembre de 2003, 2 minutos antes del mediodía.
    • Autor: nombre y dirección postal de la persona que crea esta estructura de intercambio.
    • organización la organización a la que pertenece la persona
    • preprocessor_version el nombre del sistema y su versión que produce este archivo STEP
    • originating_system el nombre del sistema y su versión que creó originalmente la información contenida en este archivo STEP.
    • Autorización: nombre y dirección postal de la persona que autorizó este archivo.
  • ESQUEMA_DE_ARCHIVO. Especifica uno o varios esquemas Express que rigen la información en la(s) sección(es) de datos. Para los archivos de primera edición, solo se puede indicar un esquema EXPRESS junto con un identificador de objeto ASN.1 opcional de la versión del esquema. Los archivos de segunda edición pueden especificar varios esquemas EXPRESS.

Los últimos tres grupos de encabezados solo son válidos en archivos de segunda edición.

  • FILE_POPULATION indica una población válida (conjunto de instancias de entidad) que se ajusta a un esquema EXPRESS. Esto se logra recopilando datos de varias secciones de datos e instancias referenciadas de otras secciones de datos.
    • governance_schema , el esquema EXPRESS al que pertenece la población indicada y mediante el cual se puede validar.
    • método de determinación para averiguar qué instancias pertenecen a la población. Hay tres métodos predefinidos: SECTION_BOUNDARY, INCLUDE_ALL_COMPATIBLE e INCLUDE_REFERENCED.
    • secciones_gobernadas , las secciones de datos cuyas instancias de entidad pertenecen completamente a la población.
    • El concepto de FILE_POPULATION es muy similar al de schema_instance de SDAI. Lamentablemente, durante el proceso de estandarización no se logró un acuerdo para fusionar ambos conceptos. Por lo tanto, JSDAI añade atributos adicionales a FILE_POPULATION como comentarios inteligentes para cubrir la información faltante de schema_instance. Esta funcionalidad está disponible tanto para la importación como para la exportación.
  • SECTION_LANGUAGE permite asignar un idioma predeterminado a todas las secciones de datos o a una sección específica. Esto es necesario para aquellos esquemas de Express que no permiten especificar en qué idioma se muestran los atributos de cadena de las entidades, como el nombre y la descripción.
  • SECTION_CONTEXT permite especificar información de contexto adicional para todas o algunas secciones de datos. Esto puede utilizarse, por ejemplo, en STEP-AP para indicar qué clase de conformidad abarca una sección de datos específica.

Sección de DATOS

La sección DATOS contiene datos de la aplicación según un esquema exprés específico. La codificación de estos datos sigue algunos principios sencillos.

  • Nombre de instancia: Cada instancia de entidad en la estructura de intercambio recibe un nombre único con el formato #1234. El nombre de instancia debe constar de un número positivo (>0) y suele ser menor que 2 63 . El nombre de instancia solo es válido localmente dentro del archivo STEP. Si el mismo contenido se exporta de nuevo desde un sistema, los nombres de instancia pueden ser diferentes para las mismas instancias. El nombre de instancia también se utiliza para hacer referencia a otras instancias de entidad a través de valores de atributos o miembros agregados. La instancia referenciada puede definirse antes o después de la instancia actual.
  • Las instancias de tipos de datos de entidad única se representan escribiendo el nombre de la entidad en mayúsculas, seguido de los valores de los atributos en el orden definido entre paréntesis. Véase el ejemplo #16=PRODUCT(...)anterior.
  • Las instancias de tipos de datos de entidades complejas se representan en el archivo STEP utilizando la asignación interna o la asignación externa.
    • El mapeo externo debe utilizarse siempre que la instancia de entidad compleja conste de más de una entidad hoja. En este caso, todos los valores de las instancias de entidad única se proporcionan de forma independiente, en orden alfabético, tal como se definió anteriormente, con todos los valores de entidad agrupados entre paréntesis.
    • El mapeo interno se utiliza por defecto para la opción de conformidad 1 cuando la instancia de entidad compleja consta de una sola entidad hoja. La codificación es similar a la de una instancia de entidad única, con el orden adicional que proporciona la definición del subtipo.
  • Mapeo de valores de atributos:
    • Solo se asignan los atributos explícitos. Los atributos inversos, derivados y redeclarados no se muestran, ya que sus valores se pueden deducir de los demás.
    • Los valores de los atributos no establecidos se dan como $.
    • Los atributos explícitos que se volvieron a declarar como derivados en un subtipo se codifican en *la posición del atributo del supertipo.
  • Mapeo de otros tipos de datos:
    • Los valores de enumeración, booleanos y lógicos se dan en mayúsculas con un punto al principio y al final, como por ejemplo .TRUE.: .
    • Los valores de cadena se especifican entre comillas simples '...'. Para caracteres con un código superior a 126, se utiliza una codificación especial. Se admiten los conjuntos de caracteres definidos en las normas ISO 8859 y 10646. Cabe destacar que los conjuntos de caracteres típicos de 8 bits (por ejemplo, los de Europa occidental) o 16 bits (Unicode) no se pueden utilizar directamente para las cadenas de archivos STEP. Deben decodificarse de una forma muy específica.
    • Los números enteros y los valores reales se utilizan de forma idéntica a los lenguajes de programación típicos.
    • Los valores binarios (secuencias de bits) se codifican en hexadecimal y se encierran entre comillas dobles. El carácter inicial indica el número de bits no utilizados (0, 1, 2 o 3), seguido de la codificación hexadecimal de los datos en mayúsculas. El valor binario completo se codifica como un único número hexadecimal, con los bits de mayor orden en el primer carácter hexadecimal y los de menor orden en el último.
    • Los elementos de los agregados (SET, BAG, LIST, ARRAY) se dan entre paréntesis, separados por ,.
    • Se debe tener cuidado al seleccionar los tipos de datos según los tipos de datos definidos. Aquí también se asigna el nombre del tipo de dato definido.
  • Consulte también "Mapeo de Express a Java" para obtener más detalles al respecto.

Crítica

Posiblemente la única ventaja de los archivos STEP es que están ampliamente adoptados en muchos programas CAD. Por otro lado, su formato, y especialmente el lenguaje de modelado de datos EXPRESS, tiene algunas desventajas:

  • La especificación no está disponible gratuitamente (hay que pagar por ella).
  • No es posible leer un archivo STEP de forma secuencial. Las entidades pueden aparecer en cualquier orden y pueden hacer referencia a otras entidades hacia adelante y hacia atrás en el archivo (véase la entidad n.° 14 en el ejemplo anterior). Por lo tanto, es necesario cargar el archivo completo en memoria y tokenizarlo antes de analizarlo.
  • El formato no es eficiente en cuanto al almacenamiento. Por ejemplo, asignar un código de color RGB a un borde requiere al menos otras 6 entidades, y especificar una transformación requiere al menos 5 entidades adicionales (PLANE, AXIS2_PLACEMENT_3D, un CARTESIAN_POINT y 2 entidades DIRECTION).
  • El formato no está bien definido. Por ejemplo, el mismo triángulo puede codificarse en un archivo STEP de muchas maneras diferentes (con FACET_BREP, ADVANCED_FACE, POLY_LOOP, EDGE_LOOP, como MANIFOLD_SOLID_REPRESENTATION o como SHELL_BASED_REPRESENTATION, etc.). Un importador necesita reconocer todas las variantes para leer un archivo STEP de forma consistente. La mayoría del software CAD no admite el conjunto completo de entradas STEP y, por lo tanto, se limita a un subconjunto específico de entidades STEP. Por ejemplo, la Ayuda de Autodesk, lista de entidades STEP compatibles .
  • Como resultado, la mayoría de los programas CAD tienen algún tipo de función para "reparar los datos geométricos después de la importación", que puede funcionar o no.

Véase también

  • ANSI ISO-10303-21 - Especificación oficial de ANSI
  • Analizador y visor de archivos STEP : analiza y visualiza un archivo STEP ISO 10303 Parte 21.
  • Visor de archivos STEP en línea
  • Visores de archivos STEP
  • STEPcode : sucesor de la biblioteca de clases STEP del NIST, la biblioteca oficial de C++ para crear importadores y exportadores de archivos STEP.

Referencias

  1. "Archivo STEP, ISO 10303-21" . Biblioteca del Congreso . 3 de enero de 2017.
  2. ISO 10303-21:2002 Sistemas de automatización industrial e integración -- Representación e intercambio de datos de producto -- Parte 21: Métodos de implementación: Codificación en texto plano de la estructura de intercambio
  3. Secretario de ISO TC184/SC4 "Lista acumulativa de resoluciones" Resolución 583 (Stuttgart, Alemania, - junio de 2003) "Registro de tipos MIME SC4",
  4. ISO 10303-21:2016. Sistemas de automatización industrial e integración -- Representación e intercambio de datos de producto -- Parte 21: Métodos de implementación: Codificación en texto plano de la estructura de intercambio