Vamos a hablar de un viejo conocido en Revit, especialmente de la gente que trabaja reportes de cantidades. Alguna vez han tratado de hacer campos calculados en un reporte, y reciben el error “Inconsistent units”?

El error inconsistent units en Revit

El mensaje de error de unidades inconsistentes en Revit (inconsistent units) es uno de los más frustrantes que nos encontramos a la hora de hacer reportes. Porque es uno de esos errores complicados de diagnosticar, y en donde Revit no nos da mayor información ni herramientas para solucionarlo.

El mensaje de unidades inconsistentes es relativamente fácil de solucionar, una vez que entendemos por qué se dio. El mensaje “inconsistent units” lo que nos dice es que el resultado que estamos obteniendo no es compatible con el tipo de campo que tenemos en nuestro reporte. En otras palabras Revit hizo una multiplicación, le salió un resultado en metros, y el campo calculado dice que es un área…. por ende, unidades inconsistentes. No podemos mostrar una longitud en un campo que dice que es para un área.

En Revit todas las cantidades tienen una unidad asociada. Recuerden que nuestros modelos están dentro de un espacio virtual, en donde hemos configurado que las distancias se miden en metros, milímetros, pulgadas, o lo que sea. De ahí en adelante, todo lo que exista en el modelo tiene unidades.

Internamente todos los cálculos que hace Revit, los hace con unidades y va arrastrando las unidades resultantes. Si multiplicamos dos longitudes, obtenemos un área, en unidades cuadradas. Si multiplicamos de nuevo, se nos transforma en un volumen con unidades cúbicas. Si multiplicamos un peso por una longitud, obtenemos un par (o un torque) en fuerza-metro. Y así sucesivamente.

También, si recuerdan el tutorial de cómo hacer campos calculados, sabrán que al campo calculado hay que ponerle un tipo. Ese tipo puede ser “entero”, “número”, “longitud”, “área”, entre otros. No hay campo calculado en Revit que no tenga algún tipo asignado.

Cuando le decimos a Revit que haga una fórmula en un reporte, Revit no desaparece las unidades. Va haciendo la fórmula, arrastrando y transformando unidades. Y luego las unidades finales las compara contra el tipo de campo en donde le dijimos que pusiera esa fórmula. Si no coincide lo que tiene que ir en el campo calculado, con lo que se ha obtenido de la fórmula… unidades inconsistentes.

Como arreglar el error de unidades inconsistentes

El video muestra varios casos y varias formas de arreglar las “unidades inconsistentes”. La solución más evidente, por supuesto, es entender bien qué estamos calculando, y prever las unidades que tiene que tener. Y configuramos el tipo de campo de acuerdo con esas unidades.

Pero, qué pasa si estamos haciendo algo atípico… por ejemplo sacando un indicador y terminamos con una unidad “m6”? O algo tipo “kg-m3”? Para esas unidades no hay tipo en Revit! La solución es que tenemos que anular las unidades, y asignar el resultado a un campo tipo “entero” o “número”.

Leer  Como hacer una pared de sección variable (inclinada) en Revit

Pero cuidado… qué hay de los campos tipo “número” y “entero”? Son lo que se llaman campos “escalares”. Un escalar es un número sin unidades. Y eso es muy importante: a ustedes les puede dar igual “sin unidades” que “cualquier unidad”, pero a Revit, no le da igual. Sin unidades significa sin unidades: si el resultado de una fórmula es un número con unidades, y lo tratan de meter en un campo escalar… olvídenlo… unidades inconsistentes.

Peor aún, en número y entero juega el tema de cifras decimales: un número es algo con cifras decimales, un entero no tiene cifras. Si meten un número en un campo tipo “entero”, Revit redondea los decimales, luego los bota. Un entero, es un entero. No es un número con los decimales “escondidos”.

Recuerden eso, de paso, si están haciendo arrays con variables en Revit. El array les acepta un entero, no un número… y la razón por la que no pueden usar un número es precisamente la anterior: no es lo mismo para Revit un entero, que un número.

Mucha gente se extraña porque sus reportes le arrojan resultados incorrectos al hacer campos calculados. “Esa cosa está mala”, dice la gente. Pero en realidad, ellos son los que dieron mal la instrucción… en muchos casos fue que metieron un resultado decimal en un campo entero, Revit se los redondeó a cero, y luego al multiplicar por otra cosa… da cero. O Revit se los redondea hacia arriba, y al multiplicar, obtienen un resultado mayor al previsto.

Se pueden quitar las unidades de medición en Revit?

Si se puede, a la hora de hacer campos calculados. Y el video les muestra cómo. Básicamente lo que hay que hacer es dividir la cantidad por 1… Revit entiende que ese “1” es una unidad igual a la que tienen… y cuando se hace la división, el número queda sin unidades.

De hecho si hacen la división y vuelven a editar la fórmula, van a ver que Revit les agregó una unidad al “1”. Por ejemplo si dejaron la fórmula “Area / 1” y vuelven a editar… verán que Revit ahora dice “Area / 1 m2 ”. El “m2” es la unidad que supuso Revit que querían.

El único problema es que hay que ir progresivamente anulando las unidades. Por ejemplo no pueden simplemente escribir “(Area * Volumen) / 1”… porque Revit no les va a poder adivinar la unidad de área y la unidad de volumen al mismo tiempo. Tiene que ir adivinando una, por una.

La solución entonces es hacer una primera edición y escribir “Area / 1”. Al volver, dirá “Area / 1 m2”. Y en ese momento, agregamos la segunda variable: “(Area / 1 m2) * Volumen / 1”. Si vuelven a editar, encontrarán ahora “(Area / 1 m2) * (Volumen / 1 m3)”.

Leer  Columnas de sección variable en Revit

En sistema métrico es tedioso el asunto, porque Revit expresa las unidades como potencia. Metros cuadrados es “m2”, y el “2” tiene que ser el caracter de potencia al cuadrado (ASCII #253). Revit no entiende “m2”… tiene que ser “m2” con el “2” elevado. Igual sucede con volumen. Y para cubos y superiores, no hay caracter ASCII que valga. Entonces hay que ir progresivamente agregando esas unidades y dejando que Revit entienda poco a poco.

Un truco que se usa también para anular unidades un poco más rápido, es usar unidades imperiales. En sistema imperial, Revit tiene abreviaturas más accesibles: SF para pie cuadrado, CF para pie cúbico. Si tenemos un modelo en unidades métricas, podemos escribir “(Area / 1 SF) * (Volumen / 1 CF)”. Revit entenderá que tiene que anular las unidades, y como el modelo está configurado en sistema métrico, pasará los factores a unidad métrica… y nos agregará el “m3” y “m2” donde corresponda. Siempre tendremos que editar la fórmula al final, porque Revit nos hará la conversión de “1 SF” a “0.092 m2”… pero será menos trabajo que ingresarlo variable por variable.

Revit es complicado para anular unidades en fórmulas

Pero tampoco crean que pueden usar ese último truco para resolver su vida. Hay una regla adicional que tenemos que saber: Revit es bien tonto para entender unidades. Si ustedes especifican una cadena de variables, aunque todas sean la misma unidad, Revit no lo entenderá así.

Prueben la fórmula “(Area * Area* Area* Area) / 1” en un campo numérico en un reporte. Qué ocurre? Inconsistent units!

Revit no es capaz de entender que la variable “Area” tiene las mismas unidades en los 4 casos en que se menciona. Aunque sea la misma variable, aunque sea la misma unidad. Revit no va a asumir que las 4 veces que la mencionan, es con la misma unidad.

Y por qué habría de hacerlo? Me imagino que si lo hiciera, todo el mundo empezaría a quejarse de que Revit está asumiendo cosas que no tiene que asumir. Ah, desarrollo de software…. cuando hay balde…

Tenemos que escribir “(Area/1 SF * Area/1 SF * Area/1 SF * Area/1 SF)”. Ahí si funciona, porque le estamos diciendo a Revit qué unidad tiene cada mención de la variable… y Revit no tiene que asumir nada.

Así que como pueden ver, Revit no es nada inteligente ni nada directo para manejar unidades en fórmulas. Tenemos que ser muy específicos, y muy cuidadosos si queremos anular unidades en fórmulas dentro de los reportes de Revit.

Entienden ahora por qué son tan aficionado a decirles que simplemente exporten todo a Excel, y calculen ahí?

Qué significa «Inconsistent Units» en Revit?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *