DEFINICION
DEL FORMATO DE INTERCAMBIO ESTANDAR DE BASES DE DATOS DE CONSTRUCCION
FIEBDC-3/95
PRESENTACION
La siguiente
definición del Formato de Intercambio Estándar de Bases de Datos de
Construcción, fue aprobada en diciembre de 1.994, para entrar en vigor
a partir del 1 de enero de 1.995 como versión 3.
Este documento
se pone a disposición de usuarios y empresas, con la única condición
de que cualquier implementación informática del presente formato debe
recoger tanto la entrada como la salida de datos.
Este formato
pretende abarcar toda la información contenida en las actuales bases
de datos de construcción. No todos los desarrolladores de bases de datos
necesitarán utilizar todas las posibilidades del formato; así como tampoco
todos los programas de mediciones y presupuestos harán uso de toda la
información suministrada.
Se prevé
además, dentro del propio formato, la posibilidad de ampliación; manteniendo
en lo posible la compatibilidad entre versiones en el caso de tratar
nuevos contenidos que se prevean en un futuro.
FORMATO FIEBDC-3. ESPECIFICACION.
Toda la
información necesaria para reconstruir completamente una base de datos
u obra en soportes físico y lógico distintos a aquellos en los cuales
se produjo la información es el objetivo del formato FIEBDC, Formato
de Intercambio Estándar de Bases de Datos de Construcción.
La información
de una base de datos, obra o certificación se dispondrá en cualquier
número de archivos en formato FIEBDC, con la extensión ".BC3", teniendo
en cuenta que estos archivos ordenados alfabéticamente contengan la
información en el orden deseado.
La única
limitación de tamaño de cada archivo será la máxima que permita el soporte
físico utilizado para su transporte. Si se utiliza algún tipo de compresor
de archivos, se deberá incluir en el mismo soporte el descompresor o
utilizar un formato autodescomprimible.
El juego
de caracteres a emplear en los campos código será el definido por MS-DOS
6.0, incluyendo < . > (ASCII-46), < $ >
(ASCII-36), < # > (ASCII-35), < %> (ASCII-37),
< & > (ASCII-38), < _ > (ASCII-95).
El fin
de línea será el estándar de los archivos MS-DOS (ASCII-13 y ASCII-10).
El fin de archivo se marcará según el mismo estándar (ASCII-26). El
único carácter de control adicional que se permitirá será el tabulador
(ASCII-9).
Cada archivo
estará compuesto de registros, zonas de texto entre el carácter de principio
de registro < ~ > (ASCII-126) y el siguiente principio
de registro o fin de archivo. Los archivos deberán contener registros
completos, es decir, la división de archivos se deberá realizar al comienzo
de un registro (carácter < ~ >).
Cada registro
estará compuesto de campos separados por caracteres < | >
(ASCII-124). Todo campo con información tendrá que finalizar con el
separador de campos y el registro deberá contener todos los separadores
de campos anteriores, aunque no contengan información. No es necesario
disponer de finalizadores de los campos posteriores al último con información.
Cada campo
estará compuesto de subcampos separados por caracteres < \ >
(ASCII-92). El separador final, entre el último dato de un campo y el
fin de campo es opcional.
El primer
campo de cada registro es la cabecera de registro, una letra mayúscula
que identifica el tipo de registro.
Se ignorará
cualquier información entre el último separador de campos de un registro
(carácter < | >) o el comienzo del archivo y el comienzo
del siguiente registro (carácter < ~>).
Se ignorarán
los caracteres blancos (32), tabuladores (9) y de fin de línea (13 y
10), delante de los separadores < ~ >, < | >
y < \ >.
La disposición
de registros dentro de un archivo es completamente libre, pero se garantizará
la lectura secuencial de los mismos para evitar ambigüedades en las
sustituciones de información.
Los campos
vacíos se considerarán SIN INFORMACION, no con información nula, esto
permite producir archivos de actualización que contengan únicamente
la información en alguno de sus campos y, por supuesto, el CODIGO de
referencia.
Para anular
un campo numérico deberá aparecer explícitamente el valor 0 (cero).
Para anular un campo alfanumérico deberá aparecer explícitamente el
ROTULO NUL.
CONVENIOS
DE NOTACION
[a] Indica
nada o "a"
{a} Indica cero o más ocurrencias de "a"
(c) Tamaño máximo en número de caracteres del campo
Todos
los valores numéricos irán sin separadores de miles y con el carácter
punto '.' entre la parte entera y la decimal.
REGISTRO TIPO PROPIEDAD Y VERSION
Este registro
se utiliza para documentar la procedencia y el formato de los archivos
y, cuando exista, se dispondrá al comienzo del primer archivo.
~V |PROPIEDAD_ARCHIVO | VERSION_FORMATO \ DDMMAA |
PROGRAMA_EMISION| [CABECERA] \ {ROTULO_IDENTIFICACION \ } |
PROPIEDAD_ARCHIVO: Redactor de la base de datos u obra, fecha, ...
VERSION_FORMATO:
Versión del formato del archivo, la actual es FIEBDC-3
DDMMAA:
DD representa el día con dos dígitos, MM el mes y AA el año, si la fecha
tiene menos de 5 dígitos representa mes y año únicamente, si tiene menos
de tres, solo el año. Si se identifica la fecha con un número impar
de dígitos, se completará con el carácter cero por la izquierda.
PROGRAMA_EMISION: Programa y/o empresa que genera los ficheros en formato
BC3.
CABECERA:
Título general de los ROTULOS_IDENTIFICACION.
ROTULO_IDENTIFICACION: Asigna secuencialmente títulos a los valores definidos
en el campo PRECIO del registro ~C, que tal como se indica en su especificación,
puede representar distintas épocas, ámbitos geográficos, etc., estableciéndose
una relación biunívoca entre ambos.
REGISTRO TIPO CONCEPTO
Este registro
contiene la información básica de un concepto de cualquier tipo, material,
auxiliar, partida, capítulo, entidad, documento, etc., tanto en su versión
paramétrica como definición tradicional.
~C | {CODIGO
\ } |UNIDAD | RESUMEN | { PRECIO \} | { FECHA \ } |TIPO
| CURVA_PRECIO_SIMPLE | CURVA_PRECIO_COMPUESTO |
CODIGO:
CODIGO del concepto descrito. Un concepto puede tener varios CODIGOs
que actuarán como sinónimos, este mecanismo permite integrar distintos
sistemas de clasificación.
Para distinguir
el concepto tipo raíz de un archivo, así como los conceptos tipo
capítulo, se ampliará su CODIGO con los caracteres '##' y '#'
respectivamente; quedando dicha notación reflejada obligatoriamante
el el registro tipo ~C ,siendo opcional en los restantes registros del
mismo concepto.
Las referencias a un CODIGO con y sin #, se entienden únicas a un mismo
concepto.
Unicamente
puede haber un concepto raíz en una base de datos u obra, siendo obligatorio
que figure.
UNIDAD:
Unidad de medida. Existe una relación de unidades de medida recomendadas,
elaborada por la Asociación de Redactores de Bases de Datos de Construcción.
RESUMEN:
Resumen del texto descriptivo. Cada soporte indicará el número de caracteres
que admite en su campo resumen.
PRECIO:
Precio del concepto. Un concepto puede tener varios precios alternativos
que representen distintas épocas, ámbitos geográficos, etc.
FECHA:
Fecha de la última actualización del precio. Cuando haya más de una
fecha se asignarán secuencialmente a cada precio definido, si hay más
precios que fechas, los precios sin su correspondiente fecha tomarán
la última fecha definida.
Las fechas
se definirán en el formato DDMMAA; DD representa el día con dos dígitos,
MM el mes y AA el año, si la fecha tiene menos de 5 dígitos representa
mes y año únicamente, si tiene menos de tres, solo el año. Si se identifica
la fecha con un número impar de dígitos, se completará con el carácter
cero por la izquierda.
TIPO:
Tipo de concepto, Inicialmente se reservan los siguientes tipos:
0(Sin clasificar) 1 (Mano de obra), 2 (Maquinaria y medios aux.), 3
(Materiales)
CURVA_PRECIO_SIMPLE: Indicará una curva de variación del precio unitario
correspondiente, según propuesta definida por el Banco de Precios de
la Construcción de Aragón (perteneciente a la Diputación General de
Aragón).
CURVA_PRECIO_COMPUESTO: incluirá un conjunto de coeficientes de variación
de precio en función de la cantidad utilizada de este precio en la obra.
Actualmente utilizados por la base de datos de EDETCO.
REGISTRO TIPO DESCOMPOSICION
Este registro
contiene la descomposición de un concepto en otros a través de una o
dos cantidades. El mismo registro lo emplearemos para definir la descomposición
de un concepto tipo unidad de obra en conceptos tipo materiales, mano
de obra, maquinaria y auxiliares y para la descomposición de un concepto
tipo capítulo en conceptos tipo unidad de obra o subcapítulo.
~D |CODIGO_PADRE
| { CODIGO_HIJO \ FACTOR \ RENDIMIENTO \ } |
CODIGO_PADRE:
CODIGO del concepto descompuesto.
CODIGO_HIJO:
CODIGO de cada concepto que interviene en la descomposición
FACTOR:
Factor de rendimiento, por defecto 1.0
RENDIMIENTO:
Número de unidades, rendimiento o medición.
El CODIGO_HIJO,
cuando es un porcentaje, tiene tres partes:
1.- Prefijo
que forma una máscara indicando sobre qué elementos se aplica el porcentaje.
Si el prefijo es nulo, el porcentaje se aplica a todas las líneas anteriores.
2.- Un
juego de caracteres que puede ser:
'&'
para porcentajes acumulables.
'%' para porcentajes no acumulables expresados en tantos por uno.
3.- El
resto del CODIGO permite diferenciar un porcentaje de otro.
Ejemplo:
LD%N0001
LD - Sobre
todas las líneas anteriores cuyo CODIGO comience por LD
% - No acumulable en tanto por uno.
N0001 - CODIGO diferenciador.
El rendimiento
será el porcentaje que se aplica sobre las líneas anteriores a la actual
y que queden afectadas por la máscara.
Ejemplo
de una línea de descomposición: L%N004 \\0.03\
Esta línea
representa un porcentaje del 0.03 por uno (3%) de todas las líneas anteriores
a la actual, incluso porcentajes, cuyo CODIGO comience por L y cuyo
texto estará en la definición del CODIGO 'L%N004'.
REGISTRO TIPO AÑADIR DESCOMPOSICION
Con este
registro se pueden añadir líneas de descomposición, el registro tipo
~D cambia la descomposición completa. Para añadir conceptos nuevos a
una base de datos, además de definir los registros C,T,L,D,... deberíamos
posicionar los nuevos conceptos en el capítulo o capítulos donde queramos
situarlos, para ello, es necesario un registro que nos permita añadir
una o varias líneas de descomposición por cada capítulo donde queramos
posicionar un nuevo concepto.
~Y |CODIGO_PADRE
|{CODIGO_HIJO \FACTOR \RENDIMIENTO \} |
Todos
los campos tienen el mismo significado que en el registro tipo D.
REGISTRO TIPO TEXTO
Este registro
contiene el texto descriptivo de un concepto
~T |CODIGO_CONCEPTO
|TEXTO_DESCRIPTIVO |
CODIGO_CONCEPTO:
CODIGO del concepto descrito
TEXTO_DESCRIPTIVO: Texto descriptivo del concepto sin limitación de tamaño.
El texto podrá contener caracteres fin de línea (ASCII-13 + ASCII-10)
que se mantendrán al reformatearlo.
REGISTRO TIPO DESCRIPCION PARAMETRICA
Este registro
contiene la descripción paramétrica que incluye la definición de parámetros,
descomposiciones, comentario de ayuda a la selección de parámetros,
resúmenes, textos, pliegos, claves e información comercial, en función
de tablas, expresiones y variables, para una familia de conceptos.
~P |CODIGO_FAMILIA
|DESCRIPCION_PARAMETRICA |
CODIGO_FAMILIA:
CODIGO del concepto tipo familia descrito.
DESCRIPCION_PARAMETRICA. Ver Anexo 1
REGISTRO TIPO PLIEGOS
Este registro
contendrá las diferentes secciones del pliego de condiciones de un concepto.
El pliego de condiciones se estructura de forma jerárquica con el Sistema
de Clasificación por Codificación y de forma facetada en varias secciones
de distinto contenido.
El registro tipo pliego puede adoptar dos formas, cuando el primer campo
está vacío, el registro definirá los CODIGOs de cada pliego y sus ROTULOs
correspondientes. Este registro es único para una base de datos u obra.
~L| | {
CODIGO_SECCION_PLIEGO \ ROTULO_SECCION_PLIEGO \ }|
CODIGO_SECCION_
PLIEGO- CODIGO que define cada SECCION o faceta del pliego.
ROTULO_SECCION_PLIEGO- Definición del ROTULO asociado a cada CODIGO correspon-diente
de cada SECCION o faceta del pliego.
Cuando
el primer campo no está vacío, identifica a un concepto determinado.
Puede haber un registro de este tipo por cada concepto de una base de
datos u obra.
~L | CODIGO_CONCEPTO
| { CODIGO_SECCION_PLIEGO
\ TEXTO_SECCION_PLIEGO \} |
CODIGO_CONCEPTO - CODIGO del concepto descrito, contenido en la base de
datos.
CODIGO_SECCION_PLIEGO - Definición del CODIGO asociado a cada pliego.
TEXTO_SECCION_PLIEGO - Texto asignado a cada faceta o SECCION del pliego
de condiciones del concepto.
El pliego de condiciones de cada concepto estará dividido con caracteres
'\' en varias secciones o facetas, pensadas para imprimirse juntas o
por separado.
Los fines de línea de cada SECCION del pliego se tratarán como en el
REGISTRO TIPO TEXTO.
Ejemplo
de las secciones de los pliegos definidas para la Base de Datos de Construcción
de la Comunidad de Madrid y la Base de Datos de Construcción de la Comunidad
Valenciana, indicando CODIGO y ROTULO de la SECCION:
~L| |
DES\ DESCRIPCION Y COMPLEMENTOS AL TEXTO
\PRE\ REQUISITOS PREVIOS A LA EJECUCIÓN
\COM\ COMPONENTES
\EJE\ EJECUCION Y ORGANIZACION
\NOR\ NORMATIVA
\CON\ CONTROL Y ACEPTACION
\SEG\ SEGURIDAD E HIGIENE
\VAL\ CRITERIOS DE VALORACION Y MEDICION
\MAN\ MANTENIMIENTO
\VAR\ VARIOS \ |
Otra opción
permite asignar el Pliego mediante párrafos de texto asociados a conceptos,
utilizando el siguiente esquema de registros, como forma alternativa
a la anterior:
~Q | {
CODIGO_CONCEPTO \ } | { CODIGO_SECCION_PLIEGO \ CODIGO_PARRAFO
\ { ABREV_AMBITO; } \ } |
~J | CODIGO_PARRAFO
| TEXTO_PARRAFO | TEXTO_PARRAFO_RTF |
código_concepto
- Código del concepto descrito, contenido en la base de datos. Será
único para cada registro ~Q.
Este registro es de sustitución de la información, no es de acumulación.
Código_seccion_pliego - Definición del código asociado a cada pliego.
Corresponde al definido en el registro de cabecera de pliego ~L.
CODIGO_PARRAFO
- Código del texto asociado a cada sección del pliego.
ABREV_AMBITO
- Identificador del ámbito geográfico de la sección del pliego. Se define
en un registro propio.
TEXTO_PARRAFO
- Texto que define el contenido de los pliegos que se asocian a un concepto
y se identifica con CODIGO_PARRAFO.
TEXTO_PARRAFO_RTF - Texto que define el contenido de los pliegos que se
asocian a un concepto y se identifica con CODIGO_PARRAFO, con formato
RTF, de forma opcional, siendo siempre obligatorio el campo TEXTO_PARRAFO.
REGISTRO TIPO AMBITO GEOGRAFICO
Establece
el ámbito geográfico correspondiente a los Pliegos de Condiciones asociados
a la Base de Datos. No necesariamente deberá corresponder al campo CABECERA
definido en el registro ~V.
~W | {
ABREV_AMBITO \ AMBITO \ } |
ABREV_AMBITO
- Nombre abreviado que identifica el territorio geográfico al que se
referiere. (Comunidad Autónoma, Provincia, Región, Comarca, Localidad,
etc...). El identificador < * > (ASCII - 42) indica
AMBITO_GENERAL, y representa todo el territorio nacional.
AMBITO
- Nombre completo del territorio geográfico.
Existe
una relación de abreviaturas recomendadas, elaborada por la Asociación
de Redactores de Bases de Datos de Construcción.
REGISTRO TIPO INFORMACION GRAFICA.
~G | CODIGO_CONCEPTO
| { ARCHIVO_GRAFICO. EXT \ } |
CODIGO_CONCEPTO:
Código del concepto descrito en la base de datos y contenido en ella.
ARCHIVO_GRAFICO. EXT: Nombre del archivo que contiene la información
gráfica. Se usarán como referencia programas estandarizados de uso general,
para chequear y verificar el contenido del fichero. Estos programas
serán:
Ficheros
tipo ráster: Extensión .BMP, .PCX : Windows 3.1
Ficheros vectoriales: Extensión .WMF : Windows 3.1
de extensión .DXF : Autocad 12 Windows
REGISTRO TIPO ENTIDAD.
Define
las entidades suministradoras de documentación técnica, tarifas de precios
y especificaciones de los conceptos contenidos en la Base de Datos.
~E | CODIGO_ENTIDAD
| RESUMEN | NOMBRE | { TIPO\ SUBNOMBRE
\ DIRECCIÓN \ CP \ LOCALIDAD \ PROVINCIA \ PAIS \ { TELEFONO; }
\ { FAX; } \ { PERSONA_CONTACTO; } \ } |
CODIGO_ENTIDAD:
código del SCc que define a la entidad (empresa, organismo, etc.).
RESUMEN:
nombre abreviado de la entidad
NOMBRE: nombre completo de la entidad.
TIPO:
se definen los siguientes:
C central.
D delegación.
R representante.
SUBNOMBRE:
nombre de la delegación o representante en caso de que sea distinto
de la central. Normalmente estará vacio.
DIRECCIÓN
\ CP \ LOCALIDAD \ PROVINCIA \ PAIS : será la dirección postal de la
entidad con todos sus datos, existiendo una dirección por cada subcampo
tipo, de forma ordenada y secuencial.
TELEFONO:
números de teléfono de la entidad, de forma ordenada y secuencial respecto
al subcampo tipo, separados con el caracter < ; > (ASCII-59).
Se indicará con nueve caracteres numéricos, incluido el prefijo de la
provincia.
FAX: números
de fax de la entidad, con las mismas especificaciones que el campo anterior.
PERSONA_CONTACTO: nombre de las personas de contacto con la entidad y
cargo que desempeña, podrá haber varias asociadas a cada subcampo tipo,
de forma que estén separadas por el carácter ASCII-59.
REGISTRO TIPO INFORMACION COMERCIAL
El registro
tipo información comercial relaciona los conceptos de la Base de Datos
con las entidades, empresas, organismos, fabricantes, productos comerciales
y tarifa de los mismos:
~O| CODIGO_CONCEPTO
| {CODIGO_ENTIDAD \ TARIFA \ } |
{ CODIGO_ENTIDAD \ PRODUCTO_COMERCIAL\ { TARIFA; } |
CODIGO_CONCEPTO:
Concepto de la BD al que se asocia un producto comercial.
CODIGO_ENTIDAD:
Identificación del fabricante en la BD, de acuerdo con su sistema de
clasificación.
PRODUCTO_COMERCIAL: Código del producto, facilitado por el fabricante,
que se asocia al código_concepto de la BD. No podrá coincidir nunca
con la designación de CODIGO_ENTIDAD.
TARIFA:
Importe del producto_comercial de cada fabricante. El número de tarifas
y su ordenación corresponderá a la especificación definida en ~V en
su campo \ROTULO_IDENTIFICACION\.
REGISTRO TIPO COEFICIENTES.
Indica
el número de decimales en cada campo numérico.
~K | DN
\ DD \ DS \ DR \ DI \ DP \ DC \ DM | CI |
DN : Decimales
del campo número de partes iguales de la hoja de mediciones.
DD : Decimales de Dimensiones de las tres magnitudes de la hoja de mediciones.
DS : Decimales de la línea de subtotal o total de mediciones
DR : Decimales de rendimiento y factor en una descomposición.
DI : Decimales del importe resultante de multiplicar rendimiento x precio
del concepto.
DP : Decimales del importe resultante del sumatorio de los costes directos
del concepto.
DC : Decimales del importe total del concepto. (CD+CI).
DM : Decimales del importe resultante de multiplicar la medición total
del concepto por
su precio.
CI: Porcentaje de costes indirectos.
REGISTRO TIPO MEDICIONES
En este
registro figuran las mediciones (cantidades), en que interviene un concepto
de un presupuesto en la descomposición de otro de mayor rango.
En el intercambio de archivos de presupuestos, deberá figurar siempre
este registro, exista o no desglose de mediciones.
Cuando
se trate de intercambiar una relación de registros ~M que recogen un
listado de mediciones no estructurado, no es necesario la disposición
de un código raíz ni los registros ~D complementarios. El operador indicará
en estos casos cual es el destino de la medición.
~M | [
CODIGO_PADRE \ ] CODIGO_HIJO | { POSICION \ } | MEDICION_TOTAL
| { TIPO \ COMENTARIO \ UNIDADES \ LONGITUD \ LATITUD \ ALTURA \ } |
CODIGO_PADRE:
CODIGO del concepto padre o concepto descompuesto del presupuesto.
CODIGO_HIJO:
CODIGO del concepto hijo o concepto de la línea de descomposición.
Este campo
es opcional en el caso de intercambiar mediciones no estructuradas,
es decir, que no pertenecen a la estructura general y completa de un
presupuesto.
POSICION:
Posición del CONCEPTO_HIJO en la descomposición del CONCEPTO_PADRE,
este dato permite identificar la medición cuando la descomposición del
concepto padre incluye varios conceptos hijo con el mismo CODIGO, la
numeración de las posiciones comenzará con el 1.
El campo
POSICION deberá especificarse siempre en intercambio de presupuestos
cuando éste sea completo y estructurado, e indicará el camino completo
de la medición descrita en la estructura del archivo. Por ejemplo 3
\ 5 \ 2, indicará la medición correspondiente al capítulo 3 del archivo;
subcapítulo 5 del capítulo 3; y partida 2 del subcapítulo 5. En mediciones
no estructuradas este campo es opcional.
MEDICION_TOTAL:
Debe coincidir con el rendimiento del registro tipo '~D' correspondiente.
Incorpora el sumatorio del producto de unidades, longitud, latitud y
altura o el resultado de expresiones de cada línea, al leer este registro
se recalculará este valor.
TIPO:
Indica el tipo de línea de medición de que se trate. Usualmente este
subcampo estará vacío. Los tipos establecidos en esta versión son:
'1': Subtotal
parcial: En esta línea aparecerá el subtotal de las líneas anteriores
desde el último subtotal hasta la línea inmediatamente anterior a ésta.
'2': Subtotal
acumulado: En esta línea aparecerá el subtotal de todas las líneas anteriores
desde la primera hasta la línea inmediatamente anterior a ésta.
'3': Expresión:
Indicará que en el subcampo COMENTARIO aparecerá una expresión algebraica
a evaluar. Se podrán utilizar los operadores '(', ')', '+', '-', '*',
'/' y '^'; las variables 'a', 'b', 'c' y 'd' (que tendrán por valor
las cantidades introducidas en los subcampos UNIDADES, LONGITUD, LATITUD
y ALTURA respectivamente); y la constante 'p' para el valor Pi=3.1415926.
Si la expresión utiliza alguna variable, ésta será válida hasta la siguiente
línea de medición en la que se defina otra expresión.
COMENTARIO:
Texto en la línea de medición. Podrá ser un comentario o una expresión
algebraica.
UNIDADES,
LONGITUD, LATITUD, ALTURA: Cuatro número reales con las mediciones.
Si alguna magnitud no existe se dejará este campo vacío.
REGISTRO TIPO AÑADIR MEDICIONES
Igual
que el registro tipo ~M pero añade las líneas de medición de este registro
a las ya existentes en vez de sustituir toda la medición como hace en
aquel.
~N |[CODIGO_PADRE
\]CODIGO_HIJO |{POSICION \} |MEDICION
|{TIPO \COMENTARIO \UNIDADES \LONGITUD \LATITUD \ALTURA \} |
REGISTRO TIPO CLAVES
Este registro
establece la relación entre CODIGOs y descriptores del tesauro, para
permitir la búsqueda de conceptos mediante términos clave.
~A | CODIGO_CONCEPTO
| { CLAVE_TESAURO \} |
CODIGO_CONCEPTO:
CODIGO del concepto descrito en la base de datos y contenido en ella.
CLAVE_TESAURO:
Términos clave relacionados con el concepto. Los términos compuestos
(hormigón armado, cartón-yeso, mortero mixto) se identificarán unidos
mediante < _ > (ASCII - 95), ( hormigón_armado, cartón_yeso,
mortero_mixto...). No está permitido el empleo del espacio en blanco.
REGISTRO TIPO CAMBIO DE CODIGO
Con este
registro se posibilita el cambio o anulación de los CODIGOs de los conceptos,
única unidad de información que no se podía modificar con los registros
definidos anteriormente.
~B |CODIGO_CONCEPTO
| CODIGO_NUEVO |
CODIGO_CONCEPTO:
CODIGO del concepto a cambiar o anular. Debe existir y pertenece a un
concepto contenido en la BD
CODIGO_NUEVO:
Nuevo CODIGO para CODIGO_CONCEPTO, no debe existir previamente. Si este
campo está vacío, se entiende que hay que eliminar CODIGO_CONCEPTO.
FORMATO FIEBDC-3 RESUMEN.
~V | PROPIEDAD_ARCHIVO
| VERSION_FORMATO \ DDMMAA
| PROGROMA_EMISION| CABECERA \ {ROTULO_IDENTIFICACION} |
~C | {
CODIGO \ } | UNIDAD | RESUMEN | { PRECIO \ } | { FECHA \ } | TIPO
| CURVA_PRECIO_SIMPLE | CURVA_PRECIO_COMPUESTO |
~D | CODIGO_PADRE
| { CODIGO_HIJO \ FACTOR \ RENDIMIENTO \ } |
~Y | CODIGO_PADRE
| { CODIGO_HIJO \ FACTOR \ RENDIMIENTO \ } |
~T | CODIGO_CONCEPTO
| TEXTO_DESCRIPTIVO |
~P | CODIGO_FAMILIA
| DESCRIPCION_PARAMETRICA |
~L | |
{ CODIGO_SECCION_PLIEGO \ ROTULO_SECCION_PLIEGO \ } |
~L | CODIGO_CONCEPTO | { CODIGO_SECCION_PLIEGO \ TEXTO_SECCION_PLIEGO
\} |
~Q | {
CODIGO_CONCEPTO \ } | { CODIGO_SECCION_PLIEGO \ CODIGO_PARRAFO
\ { ABREV_AMBITO; } \ } |
~J | CODIGO_PARRAFO | TEXTO_PARRAFO | TEXTO_PARRAFO_RTF |
~W | {
ABREV_AMBITO \ AMBITO \ } |
~G | CODIGO_CONCEPTO
| { ARCHIVO_GRAFICO. EXT \ } |
~E | CODIGO_ENTIDAD
| RESUMEN | NOMBRE | { TIPO \ SUBNOMBRE
\ DIRECCIÓN \ CP \ LOCALIDAD \ PROVINCIA \ PAIS \ { TELEFONO; }
\ { FAX; } \ { PERSONA_CONTACTO; } \ } |
~O | CODIGO_CONCEPTO
| {CODIGO_ENTIDAD \ TARIFA \ } |
{ CODIGO_ENTIDAD \ PRODUCTO_COMERCIAL\ { TARIFA; } |
~K | DN
\ DD \ DS \ DR \ DI \ DP \ DC \ DM | CIE |
~M | [
CODIGO_PADRE \ ] CODIGO_HIJO | { POSICION \ } | MEDICION
| { TIPO \ COMENTARIO \ UNIDADES \ LONGITUD \ LATITUD \ ALTURA \ } |
~N | [
CODIGO_PADRE \ ] CODIGO_HIJO | { POSICION \ } | MEDICION
| { TIPO \ COMENTARIO \ UNIDADES \ LONGITUD \ LATITUD \ ALTURA \ } |
~A | CODIGO_CONCEPTO
| { CLAVE_TESAURO \} |
~B |CODIGO_CONCEPTO
| CODIGO_NUEVO |
ANEXO 1.
DESCRIPCION
PARAMETRICA.
Un concepto
paramétrico es el que define su CODIGO, resumen, texto, pliego, descomposición
e información comercial de forma paramétrica, esto es, de una forma
variable mediante tablas y expresiones aritméticas y lógicas función
de parámetros.
En la
descripción paramétrica se encuentran las siguientes sentencias:
Se definen
las variables:
%A %B %C %D - Parámetros seleccionados del concepto, de "a" a "z" ~
1 a 26.
%O %P %Q %R - Parámetros seleccionados de la obra, de "a" a "z" ~ 1
a 26.
%E - Variable que define las condiciones de error.
$A $B $C $D - Textos de los parámetros seleccionados del concepto.
$O $P $Q $R - Textos de los parámetros seleccionados de la obra.
$E - Variable que define los textos de error.
De forma
equivalente las variables %O a %R y $O a $R tomarían el valor correspondiente
a los valores de los parámetros generales de la obra.
Cualquier
variable de la 'A' a la 'Z' tanto numérica (%) como alfanumérica ($)
se puede definir o redefinir con cualquier número de dimensiones para
ser utilizada posteriormente en expresiones.
Se definen
las constantes de la 'a' a la 'z' con los valores numéricos del 1 al
26 respectivamente, para permitir referenciar los parámetros de forma
nemotécnica. Para la utilización de otro tipo de caracteres, se determinará
en el texto de de la opción del parámetro seleccionado el carácter de
sustitución que se desea utilizar, anteponiéndole un carácter especial
' ! ' .Si dicho carácter no existe la sustitución se realiza relacionando
el carácter con la posición que ocupa.
Ejemplo:
PBPO.2$
M3 Hormigón $B $A
\ CONSISTENCIA
\ plástica \ fluida \ blanda \
\ RESISTENCIA \ H-125 \ H-150 \ H-175 \ H-200 \
El derivado
PBPO.2aa sería: M3 Hormigón H-125 plástica
Con el
carácter especial:
\ CONSISTENCIA
\ !p plástica \ !f fluida \ !b blanda \
\ RESISTENCIA \ !2 H-125 \ !5 H-150 \ !7 H-175 \ !0 H-200 \
El mismo
derivado: PBPO.2p2 M3 Hormigón H-125 plástica.
Las variables
numéricas deben permitir valores reales en coma flotante de doble precisión
(64bits) y las variables alfanuméricas deben poder almacenar textos
de cualquier tamaño.
Cualquier
variable puede definirse, en la misma asignación, con cualquier número
y tamaño de dimensiones (hasta 4), en la definición de dimensiones tendrán
que hacerse explícitas todas las dimensiones.
%U=......
# define una variable con un dato numérico
$X(8)=..... # define una lista de 8 datos alfanuméricos
%V(3,4)= ..... # define una tabla con 3 filas y 4 columnas de datos
n.
Las variables
%E y $E son especiales para devolver errores producidos por selecciones
de parámetros no coherentes. En una evaluación secuencial de expresiones,
si en una expresión la variable %E adopta un valor distinto de 0, ha
habido algún error, se interrumpe la evaluación de expresiones y se
presenta el contenido de la variable $E donde se almacena el texto del
error producido.
Pueden haber múltiples asignaciones de %E, cada una de ellas precedida
de su correspondiente texto de error, asignación de $E.
Las constantes
alfanuméricas se definirán entre comillas ($I="incluida parte proporcional").
En la
descripción paramétrica podemos encontrar los siguientes tipos de sentencias:
SENTENCIA
DE ROTULOS DE PARAMETRO:
\ \ { \ }
Los parámetros definidos, hasta 4, se irán asignando a las variables
ABCD en el orden que se encuentren.
SENTENCIA
DE ASIGNACION NUMERICA:
=
SENTENCIA
DE ASIGNACION ALFANUMERICA:
=
SENTENCIA
DE RENDIMIENTO:(CONCEPTOS DESCOMPUESTOS)
: [ : ] Se
pueden definir uno u opcionalmente dos rendimientos, el defecto del
rendimiento opcional es 1.
SENTENCIA
DE MEDIOS AUXILIARES:
%: (en tanto por cien)
%%: (en tanto por uno)
SENTENCIA
DE PRECIO:(CONCEPTOS SIMPLES) ::
En caso de figurar conjuntamente un juego de setencias de rendimiento
a modo de descomposición y una sentencia de precio, tendrá prioridad
la sentencia de precio, ignorando las sentencias de rendimiento.
SENTENCIA
DE COMENTARIO:
\ COMENTARIO \ ó \ C \ \
Si existe texto de comentario, se presentará como ayuda a la selección
de parámetros junto a las opciones de éstos.
SENTENCIA
DE SUSTITICION:
\ RESUMEN \ ó \ R \ \
\ TEXTO \ ó \ T \ \
\ PLIEGO \ ó \ P \ { \ }
\ CLAVES \ ó \ K \ { \ }
\ COMERCIAL \ ó \ F \ { \ \}
Se considera que una sentencia continua en la línea siguiente si:
acaba en un operador
acaba sin cerrar comillas '"'
comienza con '\' y no acaba con '\'
PI,
números, "texto" ...
ABS(
), INT( ), SQRT( ) ...
[$%]
[A-Z] [(dimensión{,dimensión})]
:
Son aquellas que dan como resultado un número en función de constantes
y variables numéricas, expresiones lógicas, funciones y operadores.
por ejemplo: %I= %A + 3.17*(1+%B) + ABS(%P+3.15*%Q)/12000
:
Son aquellas que dan como resultada un texto en función de constantes
y variables alfanuméricas, operadores y funciones numéricas.
Una expresión
alfanumérica puede incluir expresiones lógicas.
por ejemplo: $I="parte proporcional"+" de perdidas"*(%A>a)
añadir " de perdidas" a $I si el valor actual de %A es mayor que
ó 1.
:
Son aquellas que dan como resultado VERDADERO o FALSO, en expresiones
numéricas el verdadero se considera como 1 y el falso como 0, en alfanuméricas
el falso se considera suprimir texto.
%I = 323*(%A=a)
+ 345*(%A=b) + 1523*($I=$A & $J=$B)
$I = "blanco"*(%C=c) + "negro"*(%C=d)
:
En los textos de sustitución la información es un texto constante (sin
comillas) con variables embebidas en él. Se consideran variables los
caracteres $ y % inmediatamente seguidos por una letra de la A a la
Z.
En los
textos de sustitución, las variables alfanuméricas se sustituyen por
sus contenido de texto correspondiente, las numéricas se sustituyen
por las constantes de la "a" a la "z" correspondientes al valor numérico
de su contenido.
En la
expresión del rendimiento, la primera parte de la sentencia es un texto
de sustitución que una vez sustituidas las variables será el CODIGO
del concepto al que le correspone la expresión numérica de la segunda
parte de la expresión como rendimiento. Si el resultado es 0, se ignora
la sentencia y no se considera ese componente o línea de descomposición.
CONVENIOS
DE NOTACION (EBNF):
[a] -
Indica nada o "a"
{a} - Indica cero o más ocurrencias de "a"
[a-b] - Indica cualquier valor desde "a" a "b" inclusives
[abc] - Indica cualquiera de los valores a, b ó c
- Indica descripción informal
abc - Indica s¡mbolo terminal
%[A-Z]
- variable numérica
$[A-Z] - variable alfanumérica
Variables predefinidas:
[%$][ABCD] - parámetros del concepto [%$][OPQR] -parámetros de la obra
[%$]E - variable especial para reportar errores
[%$][A-Z][(dim{,dim})] - variables definibles
# - comentarios (el texto comprendido entre este carácter y el siguiente
final de línea exclusive, no se tiene en cuenta)
, - separador de datos
: - definición de rendimiento
:: - definición de precio
%: - definición de medios auxiliares en tanto por cien
%%:definición de medios auxiliares en tanto por uno
OPERADORES
NUMERICOS
de menor a mayor precedencia
+ -
* /
^ Operador elevado a
OPERADORES
LOGICOS
de menor a mayor precedencia
@ - Operador lógico O
& - Operador lógico Y
< > <= >=
= <>
! Operador lógico NO
FUNCIONES
- VALOR RETORNADO
ABS(n) - Valor absoluto de "n"
INT(n) - Parte entera de "n"
ROUND(n,d) - Redondeo de "n" a "d" decimales
SIN(n), COS(n), TAN(n) - Seno, coseno y tangente (grados sexagesimales)
ASIN(n), ACOS(n), ATAN(n) - Arco seno, arco coseno y arco tangente (gs)
ATAN2(x,y) - Arco tangente con dos parámetros "x" e "y"
SQRT(n) - Raíz cuadrada de "n"
ATOF(a) - Conversión de alfanumérico "a" a numérico
FTOA(n) - Conversión de numérico "n" a alfanumérico
Cada instrucción
irá en distinta línea, a menos que la instrucción acabe en un operador
en cuyo caso se considera que sigue en la siguiente línea.
Si una línea acaba sin haber cerrado las comillas '"' o delimitador
'\', se considerará que sigue en la línea siguiente. Los caracteres
fin de línea (ASCII-13 + ASCII-10) contenidos en las descripciones paramétricas
se mantendrán al reformatear.
CONTROL
DE ERRORES DE SELECCION.
Es frecuente
encontrar un gran número de combinaciones de parámetros posibles pero
tener pocas de ellas resueltas. Para evitar que el operador del sistema
pruebe distintas combinaciones de parámetros consiguiendo en todas ellas
un mensaje de error, el sistema debe ser capaz de guiarle en la selección
de combinaciones correctas.
Cada vez que el operador define un parámetro, el sistema evaluará todas
las sentencias posibles y en las sentencias del tipo:
%E= ...., función de parámetros
Si todos
los parámetros intervinientes en la expresión son conocidos, se evaluará
ésta y si el resultado fuera de ERROR se presentará la previa definición
de $E con el mensaje del error.
Si todos
los parámetros menos uno son conocidos, se irá dando valores al parámetro
desconocido y evaluando la expresión hasta recorrer todos los valores
válidos del parámetro. De alguna forma, el sistema "marcará" los valores
que producen ERROR del parámetro estudiado en la pantalla de selección,
para ayudar al operador a seleccionar las combinaciones correctas.
Cada vez
que se defina o redefina un parámetro el sistema actualizará todos los
valores marcados en pantalla, por ejemplo pondrá en "medio brillo" los
ROTULOs de las opciones cuya selección no sería compatible con los parámetros
seleccionados previamente.
Este sistema
de control de errores de selección es sencillo de implementar en cualquier
soporte, pero obliga a los redactores de los descompuestos paramétricos
a definir explícitamente las combinaciones de parámetros incorrectas,
ya que con este método no se podrían encontrar combinaciones no permitidas
cuando en la descomposición paramétrica se llama a otros descompuestos
o precios paramétricos.
PROCEDIMIENTO
DE LECTURA DE DESCRIPCIONES PARAMETRICAS.
Recorrer
la descripción paramétrica ejecutando los siguientes pasos:
Eliminar desde el carácter '#' inclusive hasta el siguiente cambio de
línea exclusive.
Cambiar tabuladores (9) por caracteres ' ' (32)
Eliminar caracteres ' ' (32) delante y detrás de los caracteres '\'
Unir líneas, eliminando el fin de línea, en líneas que comienzan con
'\' y no acaban con '\', que terminan con un operador y en la separación
de datos de una variable matricial.
Eliminar todos los caracteres ' ' (32) en zonas no entrecomilladas ("...")
o delimitadas (\...\)
Eliminar líneas vacías .
Leer y evaluar secuencialmente las sentencias de la forma:
Si la
sentencia comienza con '\' leer el ROTULO hasta el siguiente '\', si
el ROTULO es:
COMENTARIO
ó C- Palabra o carácter reservado que identifica el siguiente ROTULO
entre '\' como comentario a la selección de parámetros.
RESUMEN
ó R- Palabra o carácter reservado que identifica el siguiente ROTULO
entre '\' como el texto de sustitución del resumen del concepto.
TEXTO
ó T- Palabra o carácter reservado que identifica el siguiente ROTULO
entre '\' como el texto de sustitución del texto descriptivo del concepto.
PLIEGO
ó P- Palabra o carácter reservado que identifica los siguientes ROTULOs
entre '\' como los textos de sustitución de las distintas secciones
del pliego.
CLAVES
ó K- Palabra o carácter reservado que identifica los siguientes ROTULOs
entre '\' como los textos de sustitución de los términos claves asociados
al concepto.
COMERCIAL
ó F - Palabra o carácter reservado que identifica los siguientes ROTULOs
entre '\' como los textos de sustitución y tarifas de la información
comercial del concepto.
Cualquier
otro ROTULO identificará el nombre del siguiente parámetro y los siguientes
ROTULOs entre '\' como los ROTULOs de las opciones de dicho parámetro.
Si la sentencia comienza con '::' el resto de la misma debe ser una
expresión numérica indicadora del Precio, sólo en familias de conceptos
simples (sin descomposición) y sólo puede haber una sentencia de este
tipo.
Si la
sentencia comienza con '%:' el resto de la misma debe ser una expresión
numérica indicadora del Porcentaje de Medios Auxiliares, sólo puede
haber una sentencia de este tipo.
En otro
caso si la sentencia contiene el carácter ':' la parte anterior a ‚l
es un texto de sustitución del CODIGO de una línea de descomposición
y la posterior una expresión pum‚rica, o dos separadas por ':', indicadoras
de el o los rendimientos de dicha línea de descomposición.
En aquellos
casos donde pueda aparecer un carácter '%' seguido de un carácter alfabético
que se considere como tal y no como una variable de sustitución, deberá
emplearse '%%', para evitar la ambigüedad que se puede producir entre
una variable numérica que deba ser sustituida, una sentencia de medio
auxiliar o un texto.
El resto
de sentencias deberán ser de asignación de la forma variable/s = expresión/es
RESUMEN
DE TIPOS DE SENTENCIAS
Después
de realizado el filtro descrito arriba, cada línea, tira de caracteres
acabada en (ASCII-13)(ASCII-10), será una sentencia de alguno de los
siguientes tipos:
{ \ ROTULO_parámetro
\ { opción_parámetro \ } (13)(10) }
{ variable = expresión (13)(10) }
{ CODIGO : rendimiento [ : rendimiento ] (13)(10) }
[ %: ó %%: medios_auxiliares (13)(10) ] % (en tanto por cien) %% ( en
tanto por uno)
[ :: expresión_precio (13)(10) ]
[ \ COMENTARIO \ ó \ C \ texto_comentario \ (13)(10) ]
[ \ RESUMEN \ ó \ R \ texto_resumen \ (13)(10) ]
[ \ TEXTO \ ó \ T \ texto_descriptivo \ (13)(10) ]
[ \ PLIEGO \ ó \ P \ { texto_faceta_pliego \ }(13)(10) ]
[ \ CLAVES \ ó \ K \ { término_clave \ }(13)(10) ]
[ \ COMERCIAL \ ó \ F \ { CODIGO_producto_comercial \ tarifa \ } (13)(10)
]
ir
a inicio
|