Saltar al contenido principal

Definición paramétrica FIE-BDC

  • El estándar FIE-BDC permite dos maneras de definir paramétricamente un concepto: de forma estándar y mediante API estándar.

  • Actualmente MAMBA™ sólo permite trabajar con definiciones paramétricas estándar.

Contenido

  • Según FIE-BDC, un concepto paramétrico es aquel que define su código, resumen, texto, pliego, descomposición e información comercial de forma paramétrica, esto es, de forma variable mediante tablas y expresiones aritméticas y lógicas en función de parámetros.

  • El requisito para que un concepto se entienda paramétrico es que su código tenga exactamente siete caracteres, y que el último de ellos sea el carácter $.

  • Una definición paramétrica en formato estándar es una colección de líneas de texto que configuran sentencias paramétricas, las cuales se procesan de forma secuencial para obtener un concepto paramétrico completo. Es decir, que una sentencia paramétrica puede estar formada por una o más líneas de texto de definición paramétrica. No existe límite al número de líneas de definición paramétrica que se incluyan en un concepto paramétrico, como tampoco existe ningún límite respecto del número de sentencias paramétricas que puede contener.

  • El proceso es el siguiente:

    • El usuario escribe las líneas de texto de definición paramétrica conforme le resulta más cómodo, pudiendo dividir una misma sentencia en varias líneas. Es necesario que la línea que define parcialmente la sentencia paramétrica acabe como indica el estándar FIE-BDC:

      • En un operador.

      • Sin cerrar las comillas.

      • Que comience con \\verb=\= y no acabe con \\verb=\=

    • MAMBA™ procesa todas las líneas de texto y genera las sentencias paramétricas correspondientes. Si detecta algún error en la definición paramétrica se iluminan las líneas con el error en el color que se hubiera especificado en la configuración.

  • Se procesan las sentencias y se genera un resultado que se muestra al usuario.

Sobre los tipos de sentencias paramétricas

  • Los diferentes tipos de sentencias paramétricas que se admiten en la definición estándar FIE-BDC son:

    • Sentencias de rótulos de parámetros.

    • Sentencias de asignación numérica.

    • Sentencias de asignación alfabética.

    • Sentencias de rendimientos (en conceptos descompuestos).

    • Sentencias de medios auxiliares.

    • Sentencias de precio (en conceptos simples).

    • Sentencias de comentario.

    • Sentencias de sustitución

Sentencias de rótulos de parámetros, asignación numérica y alfabética

  • Una variable es un contenedor de valores numéricos o alfabéticos con los que puede operarse para producir un resultado. Las variables pueden ser también los parámetros con los que el usuario opera, y, aunque no hay diferencia en la funcionalidad, sí que se introducen de manera diferente. Las variables dentro del cuerpo de la definición paramétrica de un concepto se definen mediante sentencias de asignación, en tanto que los parámetros que se incluyen al principio de la definición se definen mediante sentencias de rótulos de parámetros.

  • Según FIE-BDC las variables que almacenan valores pueden ser numéricas o alfabéticas dependiendo del tipo de valor que almacenen, lo que se indica anteponiendo el carácter %\% para las numéricas y el carácter $ para las alfabéticas, seguido del identificador de la variable, que es una letra en mayúsculas desde la AA a la KK y desde la OO a la XX. Esta distinción en grupos obedece al uso que se va a dar a la variable:

  • Si se trata de una variable que se usa como un parámetro de la definición paramétrica de un concepto dado se usa el primer grupo (de la AA a la KK)

  • Si se trata de una variable que se usa como un parámetro de la definición paramétrica de la obra se usa el segundo grupo (de la OO a la XX).

  • Las variables pueden, además, usarse dentro de la definición paramétrica de un concepto sin ser propiamente un parámetro que especifique una determinada opción, por ejemplo, para guardar datos en forma de matriz y devolver uno de dichos valores según el estado que se seleccione para un parámetro. En este sentido no hay restricciones en cuanto al uso de las variables (pueden usarse indistintamente las del primer y las del segundo grupo). Además, cuando se define una variable con el mismo identificador que otra definida previamente, esta última será sobrescrita. Por ejemplo:

    • $K="hormigoˊnarmado"\begin{aligned}\$K = "hormigón armado"\end{aligned}

    • %T=23\begin{aligned}\%T = 23\end{aligned}

  • Existe un caso especial en las variables o parámetros, la EE, que está reservada para los errores. Dentro de la definición de un concepto paramétrico cualquiera, esta variable especial se usa para identificar combinaciones erróneas o no soportadas:

    • %E=%A=a&$B="opcioˊn3"\begin{aligned}\%E=\%A=a\&\$B="opción 3"\end{aligned}

    • $E="Combinacioˊn no permitida"\begin{aligned}\$E="Combinación\ no\ permitida"\end{aligned}

    • También puede alternarse la definición de mensajes (variable EE) y comprobaciones (variable %E\%E) de error para cubrir múltiples circunstancias.

  • Por lo tanto, las variables pueden usarse como parámetros de entrada o como contenedores intermedios de información. Además, las variables no están limitadas a almacenar un valor único, sino que pueden almacenar múltiples valores en forma de matriz. Para ello debe especificarse entre paréntesis las dimensiones de la matriz. Por ejemplo:

    • $K(2)="hormigoˊnarmado","hormigoˊnenmasa"\begin{aligned}\$K(2)="hormigón armado", "hormigón en masa"\end{aligned}

    • %T(2,3)=1,2,3,4,5,6\begin{aligned}\%T(2,3)=1, 2, 3, 4, 5, 6\end{aligned}

  • Para poder acceder a un valor concreto de una matriz debe indicarse el índice que ocupa el valor; por ejemplo, para obtener el segundo valor de la segunda fila de la matriz numérica %T\%T anterior podría hacerse lo siguiente:

    • %K=2%T(2,2)\begin{aligned}\%K=2*\%T(2, 2)\end{aligned}
  • Cuando se trabaja con matrices puede sustituirse el valor del índice por una letra minúscula con valor equivalente. Así, el índice 1 se correspondería con la letra aa, el índice 2 con la letra bb… y el índice 26 con la letra zz. De este modo la expresión anterior sería completamente equivalente a:

    • %K=2%T(b,b)\begin{aligned}\%K=2*\%T(b, b)\end{aligned}
  • La utilización vista hasta ahora de las variables se corresponde con los tipos de sentencias de asignación numérica y alfabética descritas anteriormente. Ahora bien, se ha hecho referencia a que también es la manera en que el usuario puede elegir una determinada combinación de entre las definidas en un parámetro. Efectivamente, no hay distinción en funcionamiento entre variables y parámetros, aunque sí se describen de manera diferente. Una variable que haya de utilizarse como un parámetro para que el usuario elija entre diferentes estados de valor se define mediante una sentencia de rótulo al principio de la definición paramétrica.

    • Las sentencias de rótulo empiezan y acaban por el carácter \\verb=\=. El primer campo entre los caracteres indicados es el rótulo por el que el usuario identificará al parámetro, siendo el resto de los campos los valores que puede llegar a adquirir dicho parámetro. Es decir, que una sentencia de rótulo realmente define un variable de tipo matricial que se usa como parámetro para que el usuario pueda escoger entre diferentes combinaciones. Aunque no se asigne valor a la variable como en los ejemplos vistos anteriormente, la variable queda implícitamente definida con el identificador AA si es la primera sentencia de la definición paramétrica, con la BB si es la segunda, y así sucesivamente:

      • \TIPO DE HORMIGOˊN\HA25\HA30\HA35\\begin{aligned}\verb=\=TIPO\ DE\ HORMIGÓN\verb=\=HA-25\verb=\=HA-30\verb=\=HA-35\verb=\=\end{aligned}
    • Como consecuencia de lo anterior, las sentencias de rótulos de parámetros deben definirse en primer lugar de la definición paramétrica de un concepto, siendo el orden en que aparecen quien determina el identificador de dicho parámetro o variable. Más adelante en la definición paramétrica puede capturarse el valor que para un determinado parámetro especificó el usuario haciendo referencia a dicha variable como AA, BB, etc.

  • Las variables pueden almacenar, simultáneamente, valores numéricos y alfabéticos.

Sentencias de rendimiento, precio y medios auxiliares

  • Si se está definiendo un concepto simple, puede usarse una sentencia de precio para definir su valor. Para ello la sentencia debe comenzar con ::::

    • ::%K(%A,%B)\begin{aligned}::\%K(\%A,\%B)\end{aligned}
  • Si se está definiendo un concepto descompuesto, puede describirse su descomposición utilizando una o varias sentencias de rendimiento. Las sentencias de rendimiento se configuran con el código del concepto que forma parte del descompuesto que se define seguido de :: para especificar el rendimiento. Opcionalmente puede especificarse dos valores separados por ::; el primero definiría el factor de rendimiento y el segundo el rendimiento:

    • 123456%A%B%C:1:%K(%D)\begin{aligned}123456\%A\%B\%C:1:\%K(\%D)\end{aligned}
  • El estándar FIE-BDC no permite, en su definición actual, especificar programáticamente el tipo de residuo y el factor de residuo. MAMBA™, en cambio, sí que permite hacerlo extendiendo la funcionalidad FIE-BDC sin afectar a la compatibilidad. Para ello MAMBA™ comprueba dos valores adicionales, uno para el tipo de residuo y otro para el factor de residuo:

    • 123456%A%B%C:1:%K(%D):0:%L(%A)\begin{aligned}123456\%A\%B\%C:1:\%K(\%D):0:\%L(\%A)\end{aligned}
  • Puede describirse un medio auxiliar en una definición paramétrica de un concepto descompuesto con una sentencia de medio auxiliar, lo que se hace igual que en el caso anterior pero donde el código del concepto hijo es %\%:

    • %:1:0.02\begin{aligned}\%:1:0.02\end{aligned}

Sentencia de comentario

  • Cuando en una definición paramétrica de un concepto se utilizan parámetros, aunque el rótulo de dichos parámetros suele ser indicativo del ajuste que dicho parámetro realiza en la configuración, suele ser conveniente añadir una explicación de cómo se usan dichos parámetros. Para ello puede usarse la sentencia de comentario, que se presenta como una ayuda a la selección de parámetros junto con las opciones de éstos.

  • Las sentencias de comentario empiezan por \C\...textoexplicativo\\begin{aligned}\verb=\=C\verb=\=...texto explicativo…\verb=\=\end{aligned} o por \COMENTARIO\...textoexplicativo\\begin{aligned}\verb=\=COMENTARIO\verb=\=...texto explicativo…\verb=\=\end{aligned}

    • \C\El paraˊmetro A controla la resistencia y el B la consistencia.\\begin{aligned}\verb=\=C\verb=\=El\ parámetro\ A\ controla\ la\ resistencia\ y\ el\ B\ la\ consistencia.\verb=\=\end{aligned}

Sentencias de sustitución

  • Una vez que en la definición se han establecido los parámetros de entrada (mediante rótulos de parámetros), las variables intermedias (mediante sentencias de asignación), la descomposición (mediante sentencias de rendimiento o de medios auxiliares) o el precio (mediante sentencias de precio), se está en condiciones de producir un resultado, esto es, un concepto derivado del original paramétrico que atiende a la selección de parámetros definida por el usuario.

  • Para formar este concepto derivado se utilizan sentencias de sustitución, donde se sustituyen diferentes propiedades del concepto derivado por valores calculados en la definición paramétrica.

  • Las sentencias de sustitución pueden ser de varios tipos:

    • De sustitución del resumen, donde se sustituye el resumen del concepto por la cadena calculada en la definición paramétrica. Tienen el formato: \RESUMEN\...texto de sustitucioˊn\\begin{aligned}\verb=\=RESUMEN\verb=\=...texto\ de\ sustitución…\verb=\=\end{aligned} o \R\...texto de sustitucioˊn\\begin{aligned}\verb=\=R\verb=\=...texto\ de\ sustitución…\verb=\=\end{aligned}

    • De sustitución del texto, donde se sustituye el texto descriptivo del concepto por la cadena calculada en la definición paramétrica. Tienen el formato: \TEXTO\...texto de sustitucioˊn\\begin{aligned}\verb=\=TEXTO\verb=\=...texto\ de\ sustitución…\verb=\=\end{aligned} o \T\...texto de sustitucioˊn\\begin{aligned}\verb=\=T\verb=\=...texto\ de\ sustitución…\verb=\=\end{aligned}

    • De sustitución del pliego, donde se sustituye las secciones de pliego del concepto por las cadenas calculadas en la definición paramétrica. Tienen el formato: \PLIEGO\...seccioˊn\...textodesustitucioˊn\\begin{aligned}\verb=\=PLIEGO\verb=\=...sección…\verb=\=...texto de sustitución…\verb=\=\end{aligned} o \P\...seccioˊn\...textodesustitucioˊn\\begin{aligned}\verb=\=P\verb=\=...sección…\verb=\=...texto de sustitución…\verb=\=\end{aligned}

    • De sustitución de las claves de tesauro, donde se sustituyen las claves del concepto por las cadenas calculadas en la definición paramétrica. Tienen el formato: \CLAVES\...clave1\...clave2\\begin{aligned}\verb=\=CLAVES\verb=\=...clave1…\verb=\=...clave2…\verb=\=\end{aligned} o \K\...clave1\...clave2\\begin{aligned}\verb=\=K\verb=\=...clave1…\verb=\=...clave2…\verb=\=\end{aligned}

    • De sustitución de la información comercial, donde se sustituye la entidad a que pertenece el concepto por la calculada en la definición paramétrica. Tienen el formato: \COMERCIAL\...textodesustitucioˊn\\begin{aligned}\verb=\=COMERCIAL\verb=\=...texto de sustitución…\verb=\=\end{aligned} o \F\...textodesustitucioˊn\\begin{aligned}\verb=\=F\verb=\=...texto de sustitución…\verb=\=\end{aligned}

    • En la versión actual de MAMBA™ se permiten sentencias de sustitución de informaciones técnicas que no están recogidas en el estándar FIE-BDC. Tienen el formato: \DATOS\coˊdigoIT\valor\coˊdigoIT\valor\\begin{aligned}\verb=\=DATOS\verb=\=códigoIT\verb=\=valor\verb=\=códigoIT\verb=\=valor\verb=\=\end{aligned} o \D\coˊdigoIT\valor\coˊdigoIT\valor\\begin{aligned}\verb=\=D\verb=\=códigoIT\verb=\=valor\verb=\=códigoIT\verb=\=valor\verb=\=\end{aligned}

Expresiones, funciones y operadores

  • En la definición paramétrica estándar de FIE-BDC pueden utilizarse expresiones que devuelven un valor numérico en función de constantes y variables numéricas, expresiones lógicas, funciones y operadores:

    • %I=%A+3.17(1+%B)+ABS(%P+3.15%Q)/12000\begin{aligned}\%I=\%A+3.17*(1+\%B)+ABS(\%P+3.15*\%Q)/12000\end{aligned}
  • También pueden definirse expresiones que devuelven una cadena de texto en función de constantes y variables alfabéticas, operadores y funciones numéricas:

    • %I="parte proporcional"+" de peˊrdidas"(%A>a)\begin{aligned}\%I="parte\ proporcional"+"\ de\ pérdidas"*(\%A>a)\end{aligned}
  • Adicionalmente pueden definirse expresiones que devuelven un valor booleano (verdadero (1) o falso (0)):

    • %I=323(%A=a)+345(%A=b)+1523($I=$A & $J=$B)\begin{aligned}\%I=323*(\%A=a)+345*(\%A=b)+1523*(\$I=\$A\ \&\ \$J=\$B)\end{aligned}
  • A continuación, se recoge una lista de los operadores y funciones admitidos por el estándar FIE-BDC:

OperadorDescripción
+Suma
-Resta
*Multiplicación
/División
^Operador elevado a
@Operador lógico OR
&Operador lógico AND
<Menor que
>Mayor que
<=Menor o igual que
>=Mayor o igual que
=Igual a
< >Diferente de
!Operador lógico NOT
ABS(n)Valor absoluto de nn
INT(n)Parte entera de nn
ROUND(n, d)Redondeo de nn a dd decimales
SIN(n)Seno de nn
COS(n)Coseno de nn
TAN(n)Tangente de nn
ASIN(n)Arcoseno de nn
ACOS(n)Arcocoseno de nn
ATAN(n)Arcotangente de nn
ATAN2(x, y)Arcotangente de dos parámetros xx e yy
SQRT(n)Raíz cuadrada de nn
ATOF(n)Conversión de la cadena nn a número
FTOA(n)Conversión del número nn a cadena

Enlaces

Tutoriales

Guías rápidas

Referencias

Temas