Está en la página 1de 289

EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES

CONSTRUCTIVOS

ALUMNO.- Rafael Antonio Roa Hernndez


TUTOR.- Ildefonso Navarrete Martnez

OCTUBRE, 2014

[El diseo paramtrico] es una forma de pensar que

algunos diseadores pueden encontrar extrao, pero


el primer requerimiento es una actitud mental que
busque expresar y explorar relaciones"
- Hugh Whitehead

A la mujer de mi vida y a mi familia maravillosa;


a mi hermanita aorada y mi nueva familia;
a mis amigos, especialmente a los que me soportan.

NDICE
ndice de contenidos
NDICE ................................................................ 7!
ndice de contenidos ............................................................ 7
ndice de ilustraciones ....................................................... 11 !

INTRODUCCIN ................................................. 15!


OBJETIVOS ........................................................ 17!
ESTADO DE LA CUESTIN .................................. 19!
El diseo paramtrico ........................................................ 19 !
El software paramtrico ...................................................... 20 !
Historia del diseo paramtrico .......................................... 22 !
El diseo paramtrico en el proyecto de arquitectura ........... 23 !
Motores de bsqueda ........................................................ 24 !
GenerativeComponents TM ................................................... 24 !
La interfaz ............................................................................................... 26!
Archivos de trabajo ................................................................................ 28!
Archivos de diseo ............................................................................. 28!
Archivo de transacciones.................................................................... 28!
Componente ..................................................................... 28 !

METODOLOGA ................................................. 31!

Componente 1. Barra corrugada ......................................... 31 !


Objetivo .................................................................................................. 31!
Definicin del entorno ............................................................................ 31!
Desarrollo del modelo generativo .......................................................... 31!
Componente 2. Mallazo electrosoldado ............................... 34 !
Objetivo .................................................................................................. 34!
Definicin del entorno ............................................................................ 34!
Variables ............................................................................................. 34!
Desarrollo del modelo generativo .......................................................... 34!
Componente 3. Bovedilla de entrevigado ............................ 35 !
Objetivo .................................................................................................. 35!
Definicin del entorno ............................................................................ 35!
Desarrollo del modelo generativo .......................................................... 36!
Componente 4. Armado de Viga/Zuncho ............................. 39 !
Objetivo .................................................................................................. 39!
Definicin del entorno ............................................................................ 39!
Desarrollo del modelo generativo .......................................................... 39!
Componente 5. Vigueta semirresistente .............................. 41 !
Objetivo .................................................................................................. 41!
Definicin del entorno ............................................................................ 41!
Desarrollo del modelo generativo .......................................................... 41!
Detalle constructivo: encuentro de forjado con pilar ............ 43 !
Objetivo .................................................................................................. 43!
Definicin del entorno ............................................................................ 43!
Desarrollo del modelo generativo .......................................................... 44!
El contorno del detalle ....................................................................... 45!
La capa de compresin ....................................................................... 46!
El armado del pilar .............................................................................. 46!
La viga ................................................................................................. 50!
El zuncho ............................................................................................. 54!
Las viguetas transversales ................................................................... 56!
Las viguetas longitudinales ................................................................. 57!

El armado de negativo ....................................................................... 59!


Las animaciones ................................................................................. 60!
Animacin de la posicin del pilar ................................................. 60!
Animacin del ancho del pilar ........................................................ 61!

RESULTADOS ..................................................... 63!


Componentes .................................................................... 63 !
Barra corrugada ...................................................................................... 63!
Datos de entrada ................................................................................ 63!
Localizacin del componente............................................................. 64!
Mallazo electrosoldado .......................................................................... 64!
Datos de entrada ................................................................................ 65!
Localizacin del componente............................................................. 65!
Bovedilla de entrevigado ....................................................................... 65!
Datos de entrada ................................................................................ 65!
Localizacin del componente............................................................. 66!
Armado de viga/zuncho ......................................................................... 66!
Datos de entrada ................................................................................ 66!
Localizacin del componente............................................................. 66!
Vigueta ................................................................................................... 67!
Datos de entrada ................................................................................ 67!
Localizacin del componente............................................................. 67!
Detalle constructivo ........................................................... 67 !
Localizacin del detalle ...................................................................... 68!

CONCLUSIONES Y RECOMENDACIONES ............. 69!


BIBLIOGRAFIA .................................................... 71!
GLOSARIO ......................................................... 73!
ANEXOS ............................................................ 75!

Anexo 1. Cdigo de los componentes ................................. 75 !


Anexo 1.1. Barra Corrugada ................................................................... 75!
Anexo 1.2 Mallazo electrosoldado ....................................................... 109!
Anexo 1.3. Bovedilla cermica ............................................................. 120!
Anexo 1.4. Armado viga/zuncho .......................................................... 135!
Anexo 1.5. Vigueta semirresistente ...................................................... 157!
Anexo 2. Cdigo del detalle constructivo ........................... 172 !
Anexo 3. Generacin de la portada .................................... 248 !
Definicin del entorno .......................................................................... 248!
Desarrollo del modelo generativo ........................................................ 248!
Cdigo del modelo .............................................................................. 249!
Anexo 4. Generacin del documento .................................. 262 !
Anexo 5. Generacin del componente de ejemplo pirmide . 267 !
Anexo 5.1. Componente pirmide ....................................................... 267!
Definicin del entorno ...................................................................... 267!
Desarrollo del modelo generativo .................................................... 267!
Cdigo del modelo .......................................................................... 268!
Anexo 5.2. Superficie para la inserccin del componente pirmide .... 279!
Definicin del entorno ...................................................................... 279!
Desarrollo del modelo generativo .................................................... 279!
Cdigo del modelo .......................................................................... 280!

ndice de ilustraciones
Ilustracin 1. Flujo del diseo paramtrico. Elaboracin propia. ............... 19!
Ilustracin 2. Pantalla de inicio de GenerativeComponents ................... 25!
Ilustracin 3. Interfaz de GenerativeComponents. Elaboracin propia.. 27!
Ilustracin 4. El componente "pirmide" se inserta en una superficie
adaptandose a la forma de doble curvatura. Cada pirmide es distinta y
todas parten de una inicial. La explicacin sobre cmo se ha vm este
ejemplo se encuentra en el Anexo 5. Elaboracin propia. ........................ 29!
Ilustracin 5. Imagen final de la barra corrugada forzando su posicin para
asegurar que se adaptar bien a todas las situaciones. Elaboracin propia.
................................................................................................................... 33!
Ilustracin 6. Relaciones entre los elementos de la barra corrugada.
Elaboracin propia. .................................................................................... 33!
Ilustracin 7. Relaciones entre los elementos de la barra corrugada ......... 35!
Ilustracin 8. Relaciones entre los elementos de la barra corrugada ......... 35!
Ilustracin 9. Componente bovedilla. El contorno y su offset forman la capa
exterior de la bovedilla. Elaboracin propia. ............................................. 37!
Ilustracin 10. Componente bovedilla. El contorno y su offset forman la
capa exterior de la bovedilla ...................................................................... 38!
Ilustracin 11. Componente bovedilla. Relaciones entre los nodos que
forman el componente. Elaboracin propia .............................................. 38!
Ilustracin 12. Componente armado de viga/zuncho. El polgono del
contorno del componente con las circunferencias que marcarn el doblado
de los cercos de atado. Elaboracin propia. ............................................. 40!
Ilustracin 13. Componente viga/zuncho. Esquema de relaciones entre los
nodos que forman el componente de la viga/zuncho. Elaboracin propia.
................................................................................................................... 40!
Ilustracin 14. Componente vigueta semirresistente. Elaboracin propia. 42!
Ilustracin

15.

Componente

vigueta

semirresistente.

Esquema

de

relaciones entre los nodos que forman la vigueta. Elaboracin propia. .... 43!
Ilustracin 16. Armado del pilar. Variable ancho del pilar ajustada a 25cm.
Elaboracin propia. .................................................................................... 48!
Ilustracin 17. Armado del pilar. Variable ancho del pilar ajustada a 35cm.
Elaboracin propia. .................................................................................... 48!

Ilustracin 18. Armado del pilar. Variable ancho del pilar ajustada a 65cm.
Elaboracin propia. .................................................................................... 48!
Ilustracin 19. Armado del pilar. Cercos de atado de la armadura
comprimida. Elaboracin propia. ............................................................... 50!
Ilustracin 20. Viga/Zuncho. Secuencia de la creacin de polgonos para la
inserccin del componente de viga. A: 25cm. B: 60cm. C: 90cm. D: 120cm.
Elaboracin propia. .................................................................................... 53!
Ilustracin 21. Viga/Zuncho. Secuencia del redibujado del componente
"viga" dependiendo del ancho de la misma. De arriba a abajo y de
izquierda a derecha el ancho de la viga y el pilar es es: 25cm, 60cm, 90cm,
120cm.. Elaboracin Propia. ....................................................................... 53!
Ilustracin 22. Redibujado del detalle en distintas posiciones del pilar con
respecto al forjado. A: 5cm. B: 15cm. C: 40cm. D: 60cm. Elaboracin
propia. ........................................................................................................ 56!
Ilustracin 23. Las viguetas en seccin transversal colocadas en el detalle.
Elaboracin propia. .................................................................................... 57!
Ilustracin 24. Las viguetas con las bovedillas. Elaboracin propia. .......... 57!
Ilustracin 25. Detalle constructivo mostrando la vigueta del voladizo con
las piezas de entrevigado. Elaboracin propia. .......................................... 59!
Ilustracin 26. Detalle constructivo con la representacin del negativo de
dimetro 12mm. Elaboracin propia. ...................................................... 60!
Ilustracin 27. Diagrama de relaciones de grupos de nodos. Elaboracin
propia. ........................................................................................................ 60!
Ilustracin 28. Componente de barra corrugada de dimetro 6 en la
posicin usada para su desarrollo generativo. Elaboracin propia. ........... 63!
Ilustracin 29. Componente de barra corrugada de dimetro 6 en
posicin recta. Elaboracin propia. ............................................................ 63!
Ilustracin 30. Componente de barra corrugada de dimetro 6 doblada
en patilla. Elaboracin propia. .................................................................... 64!
Ilustracin 31. Componente de barra corrugada de dimetro 12 doblada
en patilla. Elaboracin propia. .................................................................... 64!
Ilustracin 32. Componente del mallazo electrosoldado de dimetro 5
cada 15 cm. Elaboracin propia. ................................................................ 65!
Ilustracin 33. Componente bovedilla de entrevigado tipo cermico.
Elaboracin propia. .................................................................................... 65!

Ilustracin 34. Componente del armado de una viga en seccin de ancho


25cm armada con redondos de dimetro 16. Elaboracin propia. ........ 66!
Ilustracin 35. Detalle constructivo terminado en una de sus posiciones.
Elaboracin propia. .................................................................................... 67!
Ilustracin 36. Imagen final del resultado del diseo de la portada usando
GC. Elaboracin propia. ........................................................................... 249!
Ilustracin 37. Componente pirmide de base cuadrada para el ejemplo.
Elaboracin propia. .................................................................................. 268!
Ilustracin 38. Superficie de doble curvatura con el componente pirmide
insertado. Elaboracin propia. ................................................................. 280!

Introduccin [15]

INTRODUCCIN
La importancia de las herramientas de diseo generativo y paramtricas a
lo largo de estos ltimos aos est creciendo debido a que ponen de
manifiesto que suponen la mejor aproximacin para abordar proyectos
complejos tanto en su concepcin como en su ejecucin.
La colaboracin multidisciplinar se hace cada vez ms patente en la
especializacin y nivel de los proyectos que demanda la sociedad.
Fruto de todo esto vemos que es importante el uso de estas herramientas
aplicadas de forma directa dentro del sector de la construccin, tanto por
los redactores como por los ejecutores de dichos proyectos.
A lo largo de este trabajo demostraremos la potencia e idoneidad de la
aplicacin de los procesos que estn imponindose desde el mbito de la
concepcin meramente artstica de la arquitectura hasta la parte ms
racional y prctica de la misma, como son los detalles constructivos.

Objetivos [17]

OBJETIVOS
Asegurar la adecuacin del detalle constructivo genrico al proyecto
arquitectnico concreto, aunque este cambie en cualquier fase de su
redaccin.
Introducir en las reglas de generacin del detalle la normativa actual para
garantizar su cumplimiento en todos los casos posibles.
Demostrar la utilidad del diseo generativo y paramtrico aplicado al
detalle constructivo.
Comenzar un banco de detalles generativos que puedan completarse en
futuros trabajos.

Estado de la cuestin [19]

ESTADO DE LA CUESTIN
Actualmente el diseo computacional y paramtrico est bastante ms
extendido fuera de nuestras fronteras.
Grandes estudios de ingeniera y arquitectura como Foster+Partners o
Arup utilizan GenerativeComponents ya que basan su trabajo en sus
oficinas

en

la

plataforma

Microstation.

Otros

se

decantan

por

GH+Rhinoceros porque fuera de Espaa est ms extendido el uso de


Rhinoceros siendo Grasshopper ms sencillo para iniciarse.
En Espaa empieza a verse tmidamente su uso en algunos estudios de
arquitectura ms innovadores y con ms frecuencia entre los estudiantes
de las escuelas de arquitectura.

El diseo paramtrico
El diseo paramtrico, computacional o generativo se basa en el
establecimiento de unos parmetros, que se pueden modificar fcilmente,
y unas relaciones entre los elementos del dibujo de manera que cualquier
alteracin en los parmetros produce un cambio instantneo en el dibujo.

Ilustracin 1. Flujo del diseo paramtrico. Elaboracin propia.

[20] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Segn D. Davis y colaboradores el proceso de diseo se divide en cuanto


partes (Davis, Burry, & Burry, 2011):

la definicin de condiciones iniciales

la preparacin del procedimiento paramtrico (o seleccin de una


utilidad especfica)

la ejecucin del procedimiento

la seleccin e interpretacin de resultados, adems del conjunto


de parmetros considerados.

Estas fases pueden combinarse de distintas maneras a lo largo del proceso


de generacin del diseo.
Los sistemas paramtricos de diseo se basan principalmente en la
programacin visual de los elementos de dibujo para establecer sus
parmetros y relaciones. En los casos en que la programacin visual no
ofrece soluciones sencillas a los problemas que se presentan durante la
generacin de un proyecto se usa el scripting.
Un script es un programa simple que ejecuta una serie de rdenes en un
entorno muy bien definido. Segn el diccionario Oxford1 la segunda
acepcin de Script es: The written text of a play, film, or broadcast, es
decir, "el texto escrito de una representacin, pelcula o programa". Esta
definicin se ajusta a la del castellano "Guion" que es muy adecuada para
este caso ya que el script informtico es justamente eso, un guion escrito
en un lenguaje de programacin que ejecuta una serie de ordenes
sencillas que dan como resultado un elemento de dibujo cuando se usa en
un entorno de diseo arquitectnico.

El software paramtrico
Tradicionalmente

han

GenerativeComponents

TM

coexistido

dos

plataformas

principales:

y GrassHopper con metodologa de trabajo muy

distintas. La oferta acaba de verse ampliada por la entrada en el panorama

http://www.oxforddictionaries.com/es/definicion/ingles/script

Estado de la cuestin [21]

de la solucin Vasari/Dynamo de Autodesk. En estos momentos las


herramientas que existen en el mercado son las siguientes:

Bentley Systems Incorporated:


o

Plataforma: Microstation

Programa: GenerativeComponentsTM

Scripting: C#

Robert McNeel and Associates:


o

Plataforma: Rhinoceros 3D

Programa: GrassHopper

Scripting: RhinoScript, Python

Autodesk:
o

Plataforma: Revit, Vasari

Programa: Dynamo

Scripting: Python

Gehry Technologies:
o

Plataforma: Digital Project (CATIA)

Programa: Digital Project

Scripting: Visual Basic for Applications (VBA)

El do Vasari/Dynamo est an en una fase de desarrollo muy temprana


con la ausencia de algunos mtodos importantes, es por ello que queda
descartado para este trabajo. Aun as, esta solucin, al ser la ltima en
entrar en escena ha sabido escoger lo mejor de cada uno de los
anteriores, y eso, junto a una comunidad muy activa de usuarios y su
integracin con el entorno BIM, Autodesk Revit est haciendo que
Vasari/Dynamo sean una opcin fuerte para el futuro cercano.
Grasshopper es un plugin que funciona sobre MacNeel Rhinoceros. Esta
asociacin hace de Grasshopper una buena opcin para el diseo
generativo/paramtrico. Al estar basado predominantemente sobre la
base de la programacin visual es ms sencillo a la hora de iniciarse.
La plataforma Digital Project es la nica de este grupo que no es gratuita,
sin embargo desciende de CATIA, usado desde los aos 70 para el diseo
de aviones por su potencia e idoneidad para controlar todos los elementos
que intervienen en la construccin de un avin, en donde hasta el ltimo
tornillo est contabilizado y medido.

[22] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Este trabajo se ha realizado usando GenerativeComponentsTM por mis


conocimientos de la herramienta y por la potencia que desempea
GenerativeComponentsTM cuando se usa cdigo y scripts para dar solucin
a problemas complejos.
Por otro lado se trata de una herramienta puramente paramtrica e
independiente, no es un plugin, con capacidad para exportar a multitud de
formatos y que ofrece un control excelente sobre cada elemento/nodo del
modelo.

Historia del diseo paramtrico


Como dice Daniel Davis en su tesis doctoral (Modelled on Software
Engineering : Flexible Parametric Models in the Practice of Architecture,
2013) el trmino "paramtrico" tiene su origen en las matemticas, lo que
no est claro es cuando se empez a usar en el mbito del diseo.
El primer sistema de dibujo paramtrico fue Sketchpad, propuesto por
Ivan Sutherland en 1963 en el M.I.T. para su tesis doctoral Sketchpad: A
Man-machine Graphical Communications System (Sutherland, 1963).
En la dcada de los 70 Dassault compra CADAM y crea CATIA, que es el
predecesor de los programas de diseo paramtrico. Desde que apareci
CATIA, todos los aviones se han diseado usando este software.
A partir de la dcada de los 80, cuando se pasa del modelo del ordenador
central al ordenador personal, aparecen los primeros programas de CAD
para particulares. En 1982 aparece Autodesk AutoCAD 1.0 y en 1984
Bentley presenta por primera vez Microstation.
Curiosamente, estas herramientas dejan de lado la herencia paramtrica
que se dio en los primeros pasos del CAD para ofrecer al ms+literal+de+las+
herramientas+de+dibujo+tradicionales cambiando+el+instrumental+de+dibujo+por+el+
ratn+y+el+teclado.
3

En+ 1988+ el+ matemtico+ Samuel+ Geisberg+ + funda+ la+ empresa+ de+ software
"Parametric+ Technology+ Corporation"+ poniendo+ en+ el+ mercado+ el+ programa
Pro/ENGINEER+ que+ fue+ el+ primer+ programa+ de+ diseo+ paramtrico+ con cierto+
xito.

Estado de la cuestin [23]

Dassault+Systemes+incorpora+en+1993+en+la+versin+4+de+CATIA+las caractersticas+
paramtricas+de+Pro/ENGINEER.+En+estos+aos+Frank+Gehry usaba+CATIA+para+el+
diseo+del+Pez+Dorado+de+Barcelona+y+el+Museo Guggenheim+en+Bilbao.
En+ 1997,+ Leonid+ Raiz+ e+ Irwin+ Jungreis,+ desarrolladores+ principales+ de
Pro/ENGINEER+ fundaron+ "Charles+ River+ Software"+ con+ la+ intencin+ de+ traer la+
potencia+del+diseo+paramtrico+a+la+industria+de+la+construccin.+En+el ao+2000+
apareci+la+primera+versin+de+Revit+y+en+2002+fue+comprado+por Autodesk.+En+
Revit+ las+ relaciones+ entre+ los+ elementos+ se+ crean+ internamente de+ forma+
paramtrica,+sin+embargo,+esto+queda+totalmente+transparente para+el+usuario.
En+2004+Gehry+Technology+lanza+Digital+Project+tomando+como+base CATIAV5+
con+ un+ aadido+ de+ herramientas+ tiles+ para+ la+ arquitectura+ de forma+ que+ los+
arquitectos+pueden+revisar+y+cambiar+los+parmetros+de+la misma+manera+que+los+
ingenieros+venan+haciendo+tiempo+atrs+con Pro/ENGINEER.
No+ fue+ hasta+ el+ 2008,+ cuando+ Patrik+ Schumacher+ pblico+ su+ Parametricism* as*
Style*.*Parametricism*Manifesto+(Schumacher, 2008)+presentado+en+el+Dark+Side+
a

Club,+en+la+II Bienal+de+Arquitectura+de+Venecia,+cuando+se+comenz+a+hablar+del
parametricismo+de+forma+activa+por+parte+de+diseadores+y+arquitectos.
Si+bien+el+diseo+paramtrico+no+lleva+a+un+resultado+formalmente reconocible+por+
necesidad,+ el+ manifiesto+ de+ Patrik+ Schumacher+ propicio+ un inters+ en+ la+
comunidad+ de+ arquitectos+ que+ supuso+ un+ avance+ y+ unificacin en+ cuanto+ a+ las+
herramientas+que+se+venan+desarrollando+estableciendo+un camino+a+seguir.+Esto+
ha+ayudado+enormemente,+no+solo+a+dar+a+conocer estas+tcnicas,+sino+tambin+al+
aumento+exponencial+de+profesionales+que ya+las+usan.+

El

diseo

paramtrico

en

el

proyecto

de

arquitectura
El diseo paramtrico en su ms amplia definicin se usa en el proceso de
diseo de los edificios, tanto en la fase de proyecto como en la de
ejecucin y gracias a Revit podemos mantener la coherencia entre los
planos del proyecto y los equipos multidisciplinares de trabajo que en l
participan.
Sin embargo, hasta ahora, no ha sido usado para llegar a la parte ms
tcnica del proyecto de edificacin, como son los detalles constructivos.

[24] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Motores de bsqueda
Haciendo una bsqueda en google sobre "diseo paramtrico detalle": no
hay resultados para el contenido de este trabajo2. De igual manera, en la
bsqueda con los trminos "diseo paramtrico construccin" solo arroja
resultados sobre fabricacin digital, tcnica asociada enormemente al
diseo paramtrico por la capacidad de llevar del prototipo al mundo real
los diseo ms complejos usando tcnicas de fabricacin tradicionales3.
Buscando en ingls con los mismos trminos "parametric design detail" y
"parametric

design

build",

se

obtienen

los

mismos

resultados

prcticamente que con la bsqueda en espaol: sobre diseo paramtrico


aplicado al modelado conceptual del edificio, BIM y fabricacin digital4.
Hechas todas las comprobaciones podemos asegurar que no hay ningn
trabajo ni igual ni parecido del que estamos planteando por lo que
podemos seguir adelante.

GenerativeComponents TM
Las particularidades del diseo generativo obligan a hacer un ejercicio
extra antes de comenzar a dibujar para planificar bien el resultado en los
siguientes aspectos:

Qu se va a dibujar?

Qu partes del dibujo debern adaptarse?

Cules sern las restricciones

Cules sern las libertades

Qu proceso geomtrico soluciona el problema de la forma ms


sencilla y eficaz?

Tener preparado todo este trabajo previo no asegura un xito directo al


abordar el diseo, pero s que lo facilita porque volver a atrs para retomar

google.es, 6/8/2014 12:38h


google.es, 7/8/2014 18:11h
4
google.com, 7/8/2014 18:18h
2
3

Estado de la cuestin [25]

otra va a la hora de solucionar un problema ser ms fcil con las ideas


claras.
El esquema de trabajo, por tanto, para cada solucin aportada ser el
siguiente:
1. Objetivo a cumplir
2. Definicin del entorno (restricciones y libertades)
3. Variables: Cada variable tiene definidos tres valores:
a.

Inicio: es el valor mnimo que puede tomar la variable.

b. Final: es el valor mximo que puede tomar la variable.


c.

Paso: valor que se sumar o restar al valor de la variable


en cada movimiento del deslizador.

4. Desarrollo del diseo generativo

Ilustracin 2. Pantalla de inicio de GenerativeComponents

GenerativeComponents es un software de diseo generativo y


paramtrico desarrollado por Bentley Systems Incorporated como parte de
su solucin integrada de productos AEC (Architecture, Engineering y
Construction) bajo su plataforma Microstation. Normalmente se usan sus
siglas GC para referirse a GenerativeComponents.

[26] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

La plataforma de CAD Microstation apareci en 1985, tres aos despus


de la primera versin de Autodesk AutoCAD R1 que lo hizo en 1982.
Durante la primera mitad de la dcada de los 80's tanto Autodesk como
Bentley se dieron prisa en responder a los cambios del mercado que
acababa de pasar de las grandes estaciones de procesamiento
centralizadas a la aparicin de los primeros ordenadores personales
asequibles.
A lo largo de las siguientes dcadas Microstation ha ido evolucionando
como software de CAD incorporando las demandas que solicitaba el
mercado hasta llegar al da de hoy en que Microstation se ha convertido
en una plataforma BIM (Building Information Modelling) integral de
soluciones para la arquitectura, la ingeniera y la construccin.
GenerativeComponents se basa en la programacin visual y el scripting
en C# para crear los elementos de dibujo y sus relaciones. Con cada
actualizacin va tomando ms importancia la parte visual de la
programacin en detrimento de la inclusin de cdigo que sigue siendo
posible por su versatilidad y potencia a la hora de llegar fcilmente a
soluciones muy complejas.
Bentley distribuye GenerativeComponents de manera gratuita. Aunque
actualmente se encuentra en estado Beta se trata de un software estable
que permite su uso para produccin.
La interfaz
La interfaz de GenerativeComponents se divide en cuatro partes
principales:
1. Barra de mens
Siguiendo el estilo de Windows, en esta barra se encuentran todos los
comandos disponibles en GC ordenados en distintos mens. As mismo,
en esta barra se pueden anclar distintas cajas de herramientas, por defecto
se encuentra el gestor de atributos, y las herramientas primarias.
2. Panel de herramientas

Estado de la cuestin [27]

En esta zona se anclan todos los paneles de herramientas que contienen


los accesos a los comandos con los que se genera el diseo, los nodos, as
como el archivo de transacciones o el panel de variables grficas.

Ilustracin 3. Interfaz de GenerativeComponents. Elaboracin


propia.

3. Las vistas
GC dispone de 8 paneles de vistas donde se representan grficamente los
elementos de la geometra. Usualmente se comienza en la vista 1, donde
residir el modelo completo y se usarn el resto de vistas para ir
separando elementos auxiliares y as tener un lienzo ms claro.
4. El grfico
Es la representacin simblica de los elementos que forman nuestro
modelo, as como sus relaciones y la informacin sobre cmo se crea la
geometra de las vistas. Cuando el modelo se vuelve complejo, disponer

[28] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

de un grfico ordenado acelera el proceso de encontrar un elemento


concreto.
Archivos de trabajo
Archivos de diseo
GenerativeComponents usa por defecto los archivos con extensin DGN
(Abreviatura de Design, Diseo en ingls). El DGN es un archivo de tipo
binario y abierto.
El trmino binario hace referencia a que contiene la representacin del
dibujo en el estado en que se guard adems las instrucciones necesarias
para redibujar todo el modelo (Transacciones). Al contener el dibujo en
formato binario los archivos DGN son ms rpidos de abrir y ocupan ms
espacio en el disco duro.
Abierto hace referencia a que ha sido liberado por parte de Bentley para
permitir su uso sin necesidad de licencias ni royalties y as facilitar su
ascensin a formato estndar a diferencia del formato DWG usado por
Autodesk, que es un formato propietario. Los archivos DGN, al ser un
estndar de facto entre los programas de CAD, pueden abrirse con
cualquier programa de diseo asistido por ordenador.
Archivo de transacciones
El formato GCT (GenerativeComponents Transaction) es un archivo de
texto plano que contiene las instrucciones para dibujar el modelo en el
entorno de GenerativeComponents desde cero.
Al ser un formato de texto plano puede abrirse y editarse con cualquier
programa de edicin de textos. Como slo contiene las instrucciones en
texto para producir el modelo, estos archivos consumen poco espacio en
disco y aseguran la recuperacin del dibujo en caso de problemas. Estos
archivos slo pueden interpretarse con GenerativeComponents.

Componente
En el argot del diseo paramtrico un componente es un elemento
diseado mediante un proceso generativo que se puede reutilizar

Estado de la cuestin [29]

introducindolo en otros dibujos del que formar parte adaptndose


automticamente.
Un elemento se dibuja para generarlo como componente cuando su uso
va a ser repetitivo debiendo adaptarse a situaciones distintas. Por ejemplo,
en una cubierta triangulada que cubra una superficie, el componente ser
el elemento que se inserta en cada tringulo. Se disea un solo
componente que sea capaz de deformarse a la geometra de cada
posicin en la que deba insertarse y el programa se encargar de cambiar
sus dimensiones para que encaje a la perfeccin.

Ilustracin 4. El componente "pirmide" se inserta en una superficie


adaptandose a la forma de doble curvatura. Cada pirmide es distinta
y todas parten de una inicial. La explicacin sobre cmo se ha vm este
ejemplo se encuentra en el Anexo 5. Elaboracin propia.

Muchos de los elementos que aparecen en este documento lo hacen de


forma repetitiva dentro de un mismo dibujo o a lo largo de varios de ellos.
Aquellas entidades que sean susceptibles de repetirse deben ser tratadas

[30] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

como componentes para optimizar el tiempo de preparacin del modelo


generativo.
Los componentes tienen el mismo tratamiento que el diseo de un
modelo paramtrico completo, por tanto su proceso se describir
siguiendo los mismos patrones:
1. Objetivo a cumplir
2. Definicin del entorno (restricciones y libertades)
3. Variables: Cada variable tiene definidos tres valores:
a.

Inicio: es el valor mnimo que puede tomar la variable.

b. Final: es el valor mximo que puede tomar la variable.


c.

Paso: valor que se sumar o restar al valor de la variable


en cada movimiento del deslizador.

4. Desarrollo del diseo generativo

Metodologa [31]

METODOLOGA
Dada la peculiaridad de este trabajo, no hemos encontrado una
metodologa

aplicable

en

nuestro

caso

y dado

igualmente

que

pretendemos sentar las bases para poder generar modelos paramtricos,


hemos elegido componentes tipo que sean referencia en un futuro y por
tanto relataremos la metodologa componente por componente.

Componente 1. Barra corrugada


Objetivo
Obtener el modelo de una barra corrugada que se redibuje indicando el
dimetro de la misma y su posicin siguiendo una curva, teniendo en
cuenta que el concepto de curva engloba a las lneas rectas y a polilneas
que incluyan arcos de circunferencia. Estos arcos se definirn segn el
radio de doblado para cada dimetro de armadura.
El cdigo que genera este modelo est en el anexo 9.2.2.1.
Definicin del entorno
Variables

diametro: Dimetro de la barra corrugada.


o

Inicio: 6 mm

Final: 25 mm

Paso: 1 mm

Desarrollo del modelo generativo


En primer lugar se definen las variables conforme a la definicin del
entorno.
Se crea la curva superior de la barra corrugada a partir de la cual se
elaborar todo el dibujo. Esta curva superior ser el elemento en comn
del componente con el dibujo donde se inserta y se llamar `curvSUP`.
Se aade un sistema de coordenadas propio de la barra para que no
dependa del sistema de coordenadas global y se nombrar `barraCS`.

[32] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Se hace un offset de la curva superior para definir la curva inferior de la


barra. Esta curva pasar por el punto11 que est a una distancia `diametro`
de la curva superior.
Se colocan los puntos donde se insertarn las corrugas de la barra. Estos
puntos dependen del dimetro de la barra para separarse ms o menos.
Para colocar en la curva superior los puntos de inserccin de las corrugas
se selecciona la porcin de curva que queda a la derecha del primer punto
de inserccin `point01`.
Se observa que el sistema de coordenadas `barraCS` tiene el eje Z hacia
abajo. Para solucionarlo se coloca un sistema de coordenadas sobre el de
la barra intercambiando los ejes X e Y del sistema `barraCS`.
Partiendo del sistema de coordenadas `corCS` se colocan los sistemas de
coordenadas en los puntos de inserccin de las corrugas que luego servir
de apoyo a los puntos con los que se dibujarn tanto en la curva inferior
como en la superior. La separacin entre las corrugas se establece en 1/5
del dimetro.
Se colocan los puntos que generan la corruga: `{point04,point05,point03}`
y `{point03,csSUP,point04}`.
Las curvas `bsplineCurve01` y `bsplineCurve02` definen la corruga
mediante la unin de los puntos creados en el paso anterior.
De igual manera se preparan los puntos para la corruga superior y sus
curvas.
Por ltimo se cierra la barra con una lnea que parte de la propiedad
`StartPoint` de las curvas superior e inferior.

Metodologa [33]

Ilustracin 5. Imagen final de la barra corrugada forzando su posicin


para asegurar que se adaptar bien a todas las situaciones.
Elaboracin propia.

Se genera el componente para obtener el archivo dll que podr usarse


posteriormente en los dibujos.

A continuacin se muestra el grfico esquemtico de las relaciones entre


los elementos que forman la barra corrugada.

Ilustracin 6. Relaciones entre los elementos de la barra corrugada .


Elaboracin propia.

[34] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Componente 2. Mallazo electrosoldado


Objetivo
En este detalle se obtiene un componente para reutilizar de un mallazo del
que se podr seleccionar el dimetro de las barras y la separacin.
Definicin del entorno
Variables

dimetro: dimetro de las barras en milmetros.


o

Inicio: 6 mm

Final: 25 mm

Paso: 1 mm

mallazo: separacin de las barras del mallazo.


o

Inicio: 5 cm

Final: 50 cm

Paso: 5 cm

Desarrollo del modelo generativo


Se preparan las variables definidas en el entorno.
Se dibuja la bsplineCurve que servir de anclaje para la inclusin del
componente de la barra corrugada.
Se inserta el componente de la barra corrugada por el mtodo `default`
usando la `bsplineCurve01` que define la posicin de la barra corrugada
del mallazo.
Se aade un sistema de coordenadas al comienzo de la lnea para definir
el plano de soporte para los crculos de las barras que se vern en seccin
transversal.
Se

aade

un

punto

mediante

una

serie

`Series

(5,barraCorrugada01.curvINF.Length,mallazo)`. Esta serie deja un margen


de 5cm al comienzo de la barra, termina al final de la longitud del mallazo

Metodologa [35]

y coloca un punto segn el valor de la variable `mallazo` que define la


separacin de las barras.
Se dibujan los crculos de las barras usando la variable dimetro.

Ilustracin 7. Relaciones entre los elementos de la barra corrug ada

Se genera el componente en formato dll para reusarlo en posteriores


dibujos.
A continuacin est el grfico esquemtico de las relaciones entre los
elementos que forman la barra corrugada.

Ilustracin 8. Relaciones entre los elementos de la barra corrugada

Componente 3. Bovedilla de entrevigado


Objetivo
Se programar el componente de una bovedilla en la que se pueda
seleccionar ancho, alto y profundidad. En el mismo dibujo se dibujar la
vista frontal y el lateral para crear ambos componentes.
Definicin del entorno
Variables

[36] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

intereje: el ancho de la vigueta se calcular en funcin de la


separacin de las viguetas en centmetros.

Inicio: 50 cm

Final: 90 cm

Paso: 5 cm

altura: alto total de la bovedilla en centmetros.


o

Inicio: 14 cm

Final: 30 cm

Paso: 1 cm

Desarrollo del modelo generativo


En primer lugar se definen las variables definidas en el entorno y que se
utilizarn en el modelo, definidas en el entorno.
Luego se coloca un sistema de coordenadas que servir como punto de
partida del modelo, se llamar `frontalCS`:
A partir del sistema de coordenadas, siguiendo la direccin de su eje X, se
colocar un punto a la distancia `intereje-5`, ya que por cada lado la
bovedilla apoya 2,5cm.
Siguiendo la direccin del eje Z del sistema de coordenadas `frontalCS` se
coloca un punto por el mtodo `ByDirectionAndDistanceFromOrigin`, es
decir, en la direccin del eje Z y a una distancia 4cm del origen. Al coger
como origen la lista `{frontalCS, point01}` se crea un punto point02 que en
realidad es una lista de puntos, el `point02[0]` que toma como origen el
sistema de coordenadas `frontalCS` y el `point02[1]` que toma como origen
el `point01`:
En la transaccin anterior se le dio como valor distancia 4 a una lista de
puntos de origen, por lo que cada uno tomo el valor 4. En la siguiente
transaccin a la lista de puntos `point02` se le da una lista de valores `{2.5,2.5}` por lo que el el primero punto de la lista que forma el punto 3
`point03[0]` tomar como valor distancia desde el origen `-2.5` y el
segundo punto `point03[1]` tomar como valor distancia `2.5`:
Se siguen colocando los puntos del contorno de la bovedilla.

Metodologa [37]

Y una vez terminados se crea una polilnea cerrada listando todos los
puntos en orden partiendo y acabando en el sistema de coordenadas
inicial:
{frontalCS,

point02[0],

point03[0],

point04[0],

point06[0],

point06[1],

point04[1], point03[1], point02[1], point01,frontalCS}


Cuando se hace un "offset" de una curva hay que indicar hacia qu lado
de la curva se quiere crear la equidistancia, esto se hace con un punto. Por
tanto hace falta un punto que se sepa de antemano que siempre va a estar
dentro del polgono que crea el contorno de la bovedilla. Este punto es el
centroide del polgono, se crea a partir de los vrtices de la polilnea
`polyLine01.Vertices`.
Se crea el offset del contorno a 1 cm usando el centroide como direccin:

Ilustracin 9. Componente bovedilla. El contorno y su offset forman la


capa exterior de la bovedilla. Elaboracin propia.

Para las paredes interiores de la bovedilla creo una lnea en la base entre
el sistema de coordenadas `frontalCS` y el punto `point01`. Esta lnea se
divide en 5 segmentos.
A partir de los puntos de divisin de los segmentos se hace un punto a
cada lado a una distancia de 0,5cm. Estos puntos sern el comienzo de
una lnea cuya longitud es `altura-1`, es decir, la altura de la bovedilla
menos 1cm que es lo que mide el grosor de la cermica de la pared de la
bovedilla.

[38] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Ilustracin 10. Componente bovedilla. El contorno y su offset forman


la capa exterior de la bovedilla

Se genera el componente en formato dll para su utilizacin en posteriores


dibujos.
A continuacin se puede ver el grfico esquemtico de las relaciones entre
los elementos que forman la bovedilla.

Ilustracin 11. Componente bovedilla. Relaciones entre los nodos que


forman el componente. Elaboracin propia

Metodologa [39]

Componente 4. Armado de Viga/Zuncho


Objetivo
Este componente contiene el detalle de armado de una viga o zuncho con
cuatro barras en las esquinas y los estribos que los atan. En caso de
superarse la separacin entre barras de ms de 30cm se colocar otro
componente superpuesto por uno de sus lados para que el atado y la
disposicin de las barras cumplan la normativa EHE 2008.
Definicin del entorno
Variables

diaBar: el ancho de la vigueta se calcular en funcin de la


separacin de las viguetas en centmetros.
o

Inicio: 6 mm

Final: 25 mm

Paso: 1 mm

Desarrollo del modelo generativo


El componente se dibuja en base a un polgono que define su posicin en
el detalle donde se usar, para ello se comienza dibujando cuatro puntos
que formarn el polgono.
Una vez dibujado el polgono se ocultarn los puntos para evitar
referenciarlos ms adelante.
Se empezar dibujando los estribos de atado. Usando la propiedad
`polygon.Vertices` se usan los vrtices del polgono como centro de una
circunferencia que marcar el doblado de los estribos alrededor de las
armaduras principales como puede verse en la figura a continuacin.
Sobre los crculos del doblado se marcan los puntos de tangencia entre las
circunferencias y las lneas que marcan la posicin del componente "Barra
Corrugada" que se insertar en su lugar.
De igual manera se dispone el detalle del atado del cerco conforme al
artculo 5.1.1.b del Anejo 11 de tolerancias de la norma EHE 2008.

[40] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Ilustracin 12. Componente armado de viga/zuncho. El polgono del


contorno del componente con las circunferencias que marcarn el
doblado de los cercos de atado. Elaboracin propia.

Una vez hecha la lnea directriz que marca la posicin de la barra de


cercado se inserta el componente "Barra Corrugada" y se dibujan en los
vrtices del polgono las circunferencias que representan las barras de
armado principal de la viga.

Ilustracin 13. Componente viga/zuncho. Esquema de relaciones entre


los nodos que forman el componente de la viga/zuncho. Elaboracin
propia.

Metodologa [41]

Componente 5. Vigueta semirresistente


Objetivo
Se ha dibujado el componente de una vigueta resistente seccionada
transversalmente.
Definicin del entorno
Variables
La vigueta no necesita variables ya que sus dimensiones son fijas, y su
altura se ajustar automticamente en funcin del polgono en el que se
inserte.
Desarrollo del modelo generativo
La seccin de la vigueta se insertar en el detalle constructivo a travs de
un polgono que definir su posicin y su altura. El resto de dimensiones
de la vigueta son fijas.
Para definir el polgono de insercin se dibujan cuatro puntos al azar sobre
la ventana grfica. A partir de ellos de dibuja el polgono por el mtodo
`ByVertices`. Una vez hecho esto se ocultan tanto los cuatro puntos como
el sistema de coordenadas incial `baseCS` para evitar referenciarlos a
cualquier nodo futuro, lo que comprometera el buen funcionamiento del
componente.
Se sita un sistema de coordenadas perteneciente el polgono del
contorno que servir para referenciar los movimientos a lo largo del
dibujo.
Usando los dos vrtices de la base del polgono que tienen como ndice el
0 y el 1 en sentido contrario a las agujas del reloj se sitan unos puntos por
el mtodo `ByDirectionAndDistanceFromOrigin` usando como valores de
distancia 4 cm y direccin `CoordinateSystem01.YDirection`.
Con los dos puntos de la base y los dos nuevos se hace un polgono que
representar el macizo de hormign inferior de la vigueta semirresistente,
ser el `polygon02`.

[42] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

El siguiente paso es calcular el centroide del `polygon02` y a partir del


centroide se dibujaran dos puntos a cada lado a una distancia 2cm que
sern el centro de las barras longitudinales de la vigueta que tendrn de
dimetro 6.
Se calcula el punto medio de la parte superior del polgono `polygon01`
que define el contorno de la vigueta usando como punto de origen el
vrtice 2 del polgono 1, como direccin el vrtice 3 y como distancia la
frmula

`Distance(polygon01.Vertices[2],polygon01.Vertices[3])/2`

que

calcula la distancia entre estos dos vrtices y la divide entre 2 para saber
dnde situar su punto medio. Este es el punto `point08`.
A partir de este punto se dibuja un punto en la direccin Y del sistema de
coordenadas de la vigueta en el sentido negativo igual al radio de la barra
superior de la vigueta. Como la barra superior tiene un dimetro de 7mm
se bajan 0.35cm y en ese punto se dibuja un crculo para la barra de
armado superior de la vigueta.
Los estribos que conectan la armadura inferior y la superior son tangentes
entre los crculos de la barra, por lo que se halla el punto de tangencia
entre ellas y se dibuja un polgono cerrado para cada una de las barras.

Ilustracin 14. Componente vigueta semirresistente. Elaboracin


propia.

Se ocultan todos los nodos que se han usado para el dibujo pero que no
forman parte del mismo y se crea el componente a partir del polgono
inicial `polygon01` que formaba el contorno de la vigueta.

Metodologa [43]

Ilustracin 15. Componente vigueta semirresistente. Esquema de


relaciones entre los nodos que forman la vigueta. Elaboracin propia.

Detalle constructivo: encuentro de forjado con


pilar
Para la creacin del detalle constructivo se usarn los componentes
creados anteriormente para optimizar el cdigo del detalle y reducir el
considerablemente el nmero de pasos para su creacin.
Objetivo
Se pretende obtener un detalle constructivo del encuentro de un pilar con
un forjado que se adapte a distintas posiciones que puede adoptar el pilar,
desde la posicin en el borde hasta el voladizo.
El detalle contendr el forjado detallado con la armadura, viguetas, vigas,
bovedillas, capa de compresin y armadura de reparto. El pilar tendr
detallada su armadura y el refuerzo a cortante en la parte superior.
Definicin del entorno
Variables

barraCompDiam: Dimetro del mallazo de reparto de la capa de


compresin.
o

Inicio: 0 mm

Final: 25 mm

[44] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Paso: 1 mm

capaCompresion: Espesor de la capa de compresin.


o

Inicio: 0 cm

Final: 20 cm

Paso: 5 cm

Espesor: Espesor de la seccin resistente del forjado


o

Inicio: 25 cm

Final: 100 cm

Paso: 5 cm

Longitud: Longitud total del forjado en el detalle


o

Inicio: 100 cm

Final: 1000 cm

Paso: 0 cm

pilarAncho: Ancho del pilar.


o

Inicio: 25 cm

Final: 200 cm

Paso: 5 cm

pilarLong: Longitud del pilar.


o

Inicio: 0 cm

Final: 1000 cm

Paso: 0 cm

pilarPos: Posicin del pilar con respecto al forjado.


o

Inicio: 5 cm

Final: 125 cm

Paso: 0 cm

recubrimiento: espacio de recubrimiento del hormign sobre la


armadura.
o

Inicio: 3 cm

Final: 15 cm

Paso: 1 cm

Desarrollo del modelo generativo


Se preparan las variables necesarias para el manejo del diseo conforme a
las condiciones de entorno.

Metodologa [45]

El contorno del detalle


Para obtener la lnea inferior del forjado se coloca un punto `point01` en un
lugar cualquiera del plano XY del sistema de coordenadas global `baseCS`.
A partir de este punto y en la direccin X del sistema de coordenadas
global `baseCS.XDirection` se dibuja una lnea de longitud `Longitud`.
De igual manera se dibuja la parte superior del forjado. Se coloca un punto
`point02` que estar a una distancia `espesor` en la direccin del eje y. A
partir de este punto se dibujar una lnea recta en la direccin del eje X
con una longitud `longitud`.
Se colocan los puntos en los que el pilar intersecar con el forjado, estos
sern los puntos 3 y 4. El punto 3 estar a una distacia `pilarPos` del punto
1 que es el comienzo del dibujo. El punto 3 se situa a una distacia
`pilarAncho` del punto 3 para marcar el ancho total del pilar.
Segn la "EHE 2008 en su artculo 54" 5, tercer prrafo: "Los* soportes*
ejecutados*en*obra*debern*tener*su*dimensin*mnima*mayor*o*igual*a*25*cm." por
lo que el valor mnimo que podr adoptar la variable "pilarAncho" ser de
25 cm, incrementandose en pasos de 5cm para facilitar las labores de
encofrado del mismo.
A partir de los puntos 3 y 4 se dibujan unas lneas rectas de longitud `pilarLong` en la direccin Y del sistema de coordenadas global.
A partir del esquema del general de la seccin constructiva se dibuja una
polilnea que homogenice los elementos de cara a la futura exportacin
del dibujo creando una lista de los mismos:
{forjadoSUP.EndPoint, forjadoSUP.StartPoint, point01, point03,
line01.StartPoint, line01.EndPoint}

(Real Decreto 1247/2008 de 18 de Julio, por el que se aprueba la


instruccin de hormign estructural (EHE 2008), 2008)
5

[46] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

La capa de compresin
La capa de compresin tiene un espesor variable almacenado en
`capaCompresionEsp`. Este espesor traza una lnea a partir del borde
superior de la seccin del forjado a una distancia `capaCompresionEsp` en
la direccin negativa del eje Y.
A una distancia igual al recubrimiento especificado en la variable
`recubrimiento` se traza un bsplineCurve que define la posicin de anclaje
del componente *mallazo* que se desarroll en el punto "Componente 2:
Mallazo electrosoldado" del presente captulo, lo que representar un
mallazo electrosoldado cuyos parmetros sern:
dimetro: dimetro de las barras en milmetros.
mallazo: separacin de las barras del mallazo en centmetros.
El armado del pilar
Segn la normativa EHE 2008 en su artculo 546, en su quinto prrafo: "La*
armadura* principal* estar* formada,* al* menos,* por* cuatro* barras,* en* el* caso* de*
secciones*rectangulares*y*por*seis*barras*en*el*caso*de*secciones*circulares*siendo*la*
separacin*entre*dos*consecutivas*de*35*cm*como*mximo.*El*dimetro*de*la*barra*
comprimida*ms*delgada*no*ser*inferior*a*12*mm.*Adems,*tales*barras*irn*sujetas*
por* cercos* o* estribos* con* las* separaciones* mximas* y* dimetros* mnimos* de* la*
armadura*transversal*que*se*indican*en*42.3.1."
Se preparan en el modelo unas lneas verticales acabadas en doblado
usando como base unos puntos del tipo 'bsplineCurve'. stas harn de
base para la inclusin del componente 1:'Barra Corrugada'.
Adems, tal y como reza la normativa citada, si el espacio entre armaduras
verticales no debe ser mayor a 35cm, sin embargo en el artculo 42.3.1 7de

(Real Decreto 1247/2008 de 18 de Julio, por el que se aprueba la


instruccin de hormign estructural (EHE 2008), 2008)
7
(Real Decreto 1247/2008 de 18 de Julio, por el que se aprueba la
instruccin de hormign estructural (EHE 2008), 2008)
6

Metodologa [47]

la misma norma se dice que la separacin mxima ser de 30cm o "tres*


veces*el*espesor*bruto*de*la*parte*de*la*seccin*del*elemento,*alma*o*alas,*en*las*que*
vayan* situadas". Tomando la ms restrictiva, se elige 30cm como
separacin mxima entre barras.
Para el clculo de la necesidad de una barra de piel extra se ha creado la
siguiente funcin:
function (Line line) {
Point myPoint = {};
myPoint = new Point(this);
int numBarras=0;
if (line.Length > 25){
if (line.Length > 30 && line.Length <= 60) {
numBarras = 3;
}
if (line.Length > 60 && line.Length <= 90) {
numBarras = 4;
}
if (line.Length > 90 && line.Length <= 120) {
numBarras = 5;
}
myPoint.ByNumberAlongCurve(line,numBarras,NumberAlongCu
rveOption.ArcLength,false,false);
}
}

Dicha funcin tiene como argumento una lnea, que en este caso, une las
barras extremas del armado. De esta lnea se lee su propiedad longitud y
en el caso en que esta propiedad sea mayor a 30cm se dibuja sobre la
lnea una divisin en su punto medio para crear una barra de armado de
piel.
En el caso en que la longitud de la lnea argumento supere los 60cm, se
crearn dos divisiones en la lnea que crearn tres segmentos iguales y as
sucesivamente.

[48] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Ilustracin 16. Armado del pilar. Variable ancho del pilar ajustada a
25cm. Elaboracin propia.

Ilustracin 17. Armado del pilar. Variable ancho del pilar ajustada a
35cm. Elaboracin propia.

Ilustracin 18. Armado del pilar. Variable ancho del pilar ajustada a
65cm. Elaboracin propia.

Metodologa [49]

Las armaduras principales deben estar atadas mediante cercos. Segn el


artculo 42.3.1 de la EHE 2008: "Si existen armaduras pasivas en
compresin, para poder tenerlas en cuenta en el clculo ser preciso que
vayan sujetas por cercos o estribos, cuya separacin y dimetro sean:"

Separacin 15 veces el dimetro de la barra comprimida ms


delgada.

Dimetro 1/4 del dimetro de la armadura comprimida ms


gruesa."

Teniendo en cuenta que la menor barra que puede colocarse en obra es


de dimetro 6.
Para el clculo de la separacin se usa la siguiente funcin:
function (Line line) {
Point myPoint = {}; //Se declara el punto
myPoint = new Point(this); //Se le dice al programa que
este punto es la salida de la funcin
int diam = pilarDiamBar/10 * 15; //Se almacena en la
variable diam el valor de 15 veces el diametro de la
barra del pilar
int dimension = pilarAncho;
int minimo;
int separacion;
if (diam > dimension){
minimo = dimension;
}
else {
minimo = diam;
}

if (minimo<30) {
separacion = minimo;
}
else {
separacion = 30;

[50] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

}
myPoint.ByDistanceAlongCurve(line,Series(0,line.Length*2,separacion)/2);
}

Y para el dimetro de los cercos se usa una expresin condicional de una


sola lnea:
pilarDiamBar/4<6?6:pilarDiamBar/4

Esta expresin condicional consta de tres partes:

La pregunta: `pilarDiamBar/4<6?` en el que se compara 1/4 del


dimetro de la barra del pilar al valor 6 que es el dimetro mnimo
de barra a usar.

Respuesta 1: si es verdadera se usar como dimetro 1/4 del


dimetro de las barras verticales del pilar.

Respuesta 2: si es falsa querr decir que la barra usada dividido


de cuatro es menor que 6, por lo que se deber usar el valor 6.

Ilustracin 19. Armado del pilar. Cercos de atado de la armadura


comprimida. Elaboracin propia.

La viga
Para la insercin del componente "viga" es necesario disponer de un
polgono. Para los casos en que haya que aadir armaduras de piel en la
viga si la separacin entre barras los 30cm se dibujar ms de un polgono
que se aadirn lateralmente al primero, por lo que las barras principales
que quedan en el centro se superpondrn con las nuevas junto con su

Metodologa [51]

atado, con lo que la seccin quedar conforme a las especificaciones de la


EHE.
Para la representacin de los polgonos donde se insertarn el armado de
las vigas o zunchos es necesaria una funcin que discrimine el nmero de
polgonos en funcin de la distancia entre barras.
function (Point p1, Point p2, Point p3, Point p4) {
Polygon poligono = {};
//Se crea la lnea que une los dos puntos 27
Line linea = {};
linea = new Line();
linea.ByPoints(point27[0],point27[1]);
//Se divide la lnea en segmentos en funcion de la
longitud de la misma
Point abajo = {};
abajo = new Point();
int numBarras=0;
if (linea.Length > 30 && linea.Length <= 60) {
numBarras = 3;
}
if (linea.Length > 60 && linea.Length <= 90) {
numBarras = 4;
}
if (linea.Length > 90 && linea.Length <= 120) {
numBarras = 5;
}
abajo.ByNumberAlongCurve(linea,numBarras,NumberAlongCur
veOption.ArcLength,false,false);
//Se crea la replica del punto arriba
Point arriba = {};
arriba = new Point();
arriba.ByDirectionAndDistanceFromOrigin(abajo,baseCS.YDirectio
n,Distance(point27[0],point28[0]));
Print(abajo);
if (Distance(p1,p4)<=30){
poligono = new Polygon(this);
poligono.ByVertices({p1,p2,p3,p4});

[52] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

}
if (Distance(p1,p4)>30 && Distance(p1,p4)<=60){
poligono[0] = new Polygon(this);
poligono[0].ByVertices({p1,p2,arriba[0],abajo[0]});
poligono[1] = new Polygon(this);
poligono[1].ByVertices({p4,p3,arriba[0],abajo[0]});
}
if (Distance(p1,p4)>60 && Distance(p1,p4)<=90){
poligono[0] = new Polygon(this);
poligono[0].ByVertices({p1,p2,arriba[0],abajo[0]});
poligono[1] = new Polygon(this);
poligono[1].ByVertices({abajo[1],arriba[1],arriba[0],abajo[0]}
);
poligono[2] = new Polygon(this);
poligono[2].ByVertices({p4,p3,arriba[1],abajo[1]});
}
if (Distance(p1,p4)>90 && Distance(p1,p4)<=120){
poligono[0] = new Polygon(this);
poligono[0].ByVertices({p1,p2,arriba[0],abajo[0]});
poligono[1] = new Polygon(this);
poligono[1].ByVertices({abajo[1],arriba[1],arriba[0],abajo[0]}
);
poligono[2] = new Polygon(this);
poligono[2].ByVertices({abajo[2],arriba[2],arriba[1],abajo[1]}
);
poligono[3] = new Polygon(this);
poligono[3].ByVertices({p4,p3,arriba[2],abajo[2]});
}
}

Metodologa [53]

Ilustracin 20. Viga/Zuncho. Secuencia de la creacin de polgonos


para la inserccin del componente de viga. A: 25cm. B: 60cm. C:
90cm. D: 120cm. Elaboracin propia.

Una vez insertados los polgonos se puede hacer uso del componente
"Viga" para insertar el armado de una viga que se adapte a las
condiciones del modelo.

Ilustracin 21. Viga/Zuncho. Secuencia del redibujado del componente


"viga" dependiendo del ancho de la misma. De arriba a abajo y de

[54] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

izquierda a derecha el ancho de la viga y el pilar es es: 25cm, 60cm,


90cm, 120cm.. Elaboracin Propia.

El zuncho
Para el zuncho o la viga de borde se usa el mismo componente para la
viga. Se deben contemplar los diferentes casos que van desde que el pilar
est justo en el borde del forjado, en cuyo caso no ser necesario tener un
zuncho de borde.
A partir de la posicin de borde del pilar se irn sucediendo multitud de
situaciones en las que el zuncho comenzar a ser un armado
complementario a la viga para completar el refuerzo del voladizo cuando
este no supera unas dimensiones de 55cm, hasta el punto en que el
zuncho adquiere entidad propia separndose de la viga.
Aquellas situaciones en que no quepa una vigueta con bovedillas se
solucionan mediante un armado tipo losa del voladizo. Para calcular la
posicin de las barras de dicha losa en funcin de la longitud del voladizo
se ha usado la siguiente expresin:
SeriesByCount(0,Distance(point32[0][0],point27[0]),Distance(po
int32[0][0],point27[0])/30+2)

SeriesByCount

es

una

funcin

predefinida

en

el

entorno

GenerativeComponents que define una serie de valores a partir de unos


parmetros/argumentos

con

la

"SeriesByCount(inicio,fin,numeroElementos)".

siguiente
El

resultado

expresin:
de

esta

expresin ser una lista de nmeros que comienza en el valor "inicio",


acaba en el valor "fin" y tiene tantos valores en su interior como
"numeroElementos" se hayan definido.
La serie comienza en 0, lo que significa que el primer valor estar sobre el
punto `point32[0][0]` que es el primero del zuncho de borde.
El final de la serie se define a una distancia del primer punto igual a la que
hay entre el punto `point32[0][0]` y el `point27[0]` que es el primer punto de
la viga que hay sobre el pilar.
El nmero de elementos, barras en nuestro caso, que tendr ser la
longitud total anterior dividido entre 30cm, que es la mxima separacin

Metodologa [55]

entre barras. Se le suman 2 unidades porque hay que tener en cuenta que
en esta lista siempre estan incluidos los valores inicial y final.
Si la distancia es suficientemente grande como para introducir viguetas
con bovedillas el zuncho quedar exento de la viga. Para contemplar todas
estas opciones se ha creado una funcin cuya expresin es la siguiente:
function (Point p1, Point p2) {
Polygon poligono = {};
if (Distance(point32[0][0],point27[0])<=5) {
//No tiene que ocurrir nada, ya que no es necesario
un zuncho
}
if (Distance(point32[0][0],point27[0])>5 &&
Distance(point32[0][0],point27[0])<=20){
poligono[0] = new Polygon(this);
poligono[0].ByVertices({point32[0][0],point32[1][0],poi
nt32[1][1],point32[0][1]});
}
if (Distance(point32[0][0],point27[0])>20 &&
Distance(point32[0][0],point27[0])<=80){
Print("Point38.Count = " + p1.Count);
for (int i=0;i<p1.Count-1;i++) {
poligono[i] = new Polygon(this);
poligono[i].ByVertices({p1[i],p1[i+1],p2[i+1],p2[i]});
}
}
if (Distance(point32[0][0],point27[0])>80){ //Se
define la situacin en que el zuncho est exento de la
viga
poligono = new Polygon(this);
poligono.ByVertices({point32[0][0],point32[1][0],
point32[1][1],point32[0][1]});
}
}

[56] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Ilustracin 22 Redibujado del detalle en distintas posiciones del pilar


con respecto al forjado. A: 5cm. B: 15cm. C: 40cm. D: 60cm.
Elaboracin propia.

Las viguetas transversales


El componente de las viguetas est preparado para insertarse a travs de
un polgono. Para ello se dibujar a partir del punto `point04`, que marca el
lado derecho del pilar una serie de puntos con la siguiente serie
Series(10,Longitud-pilarPos-pilarAncho,entrevigado)

El primer argumento indica que el primer punto se colocar a 10cm del


borde derecho del pilar.
El segundo, que se seguirn poniendo puntos hasta llegar a la longitud
total del detalle teniendo en cuenta que partimos de un punto que es la
suma de la posicin del pilar y su ancho.
Y el tercer argumento indica que la separacin entre viguetas ser el valor
"entrevigado" que se ha dejado como un parmetro modificable.

Metodologa [57]

Ilustracin 23. Las viguetas en seccin transversal colocadas en el


detalle. Elaboracin propia.

Una vez colocadas las viguetas sobre el punto ms a la derecha de la


vigueta se coloca un sistema de coordenadas que servir para la insercin
del componente Bovedilla.

Ilustracin 24. Las viguetas con las bovedillas. Elaboracin propia.

Segun el punto 8.1 del Anejo 12 de la EHE 20088 cuando se encuentran


dos forjados perpendiculares: Figura* A.12.8.1.b* Encuentro* entre* forjados*
perpendiculares.
Las viguetas longitudinales
Las viguetas en vista longitudinal se sitan sobre el voladizo, a la izquierda
del detalle. Su longitud depender de la posicin del pilar con respecto al
forjado.

(Real Decreto 1247/2008 de 18 de Julio, por el que se aprueba la


instruccin de hormign estructural (EHE 2008))
8

[58] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Se dibujan los puntos que formarn el polgono de la parte inferior de la


vigueta. A ambos lados se sitan las bsplineCurves donde se insertar el
componente BarraCorrugada que representa a la armadura inferior de la
vigueta. Esta armadura deber introducirse en el interior del zuncho y de la
viga para que quede bien anclada.
La visibilidad de todos los elementos de la vigueta y las piezas de
entrevigado vienen determinadas por la existencia de las mismas, ya que
en caso de que el voladizo sea pequeo se resuelve mediante una losa
armada.
function () {
Polygon contorno = {};
if (polygon02.Count == 1) {
contorno = new Polygon(this);
contorno.ByVertices({point36[1],point36[0],point37[0],p
oint37[1]});
Print("Se dibuja la vigueta");
}
else {
//No se dibuja nada
}

ste cdigo, que dibuja el polgono 5, comprueba si el zuncho est aislado


o se convierte en losa armada a travs del nmero de polgonos que
posee. Si solo hay un polgono se trata del caso en que el zuncho queda
aislado en cuyo caso se dibuja la base de la vigueta.
Para optimizar el cdigo, el resto de elementos solo tienen que comprobar
si la distancia entre el punto 32[0][0] y el punto 27[0] es mayor a 80cm, en
cuyo caso el zuncho es un elemento independiente de la viga y por tanto
se dibujar la porcin de forjado del voladizo. Si es menor se ocultan los
elementos dando "false" a la pregunta en la casilla de visibilidad:
Distance(point32[0][0],point27[0])>80?true:false;

Metodologa [59]

Tras dibujar la base se hacen una serie de puntos que definirn la posicin
de la bsplineCurve que dibuja el armado de la vigueta y la barra superior.
Una

vez

dibujadas

se

aplica

sobre

la

misma

el

componente

barraCorrugada y se obtiene el armado.


De igual manera se resuelve la vista transversal de las piezas de
entrevigado, para que estas no continen ms all de la situacin de la
base de la vigueta se elimina de la insercin de los elementos el ltimo
punto de la serie en la que se dividi la base usando la funcin
predefinida:
Sublist(point47,0,point47.Count-1)

Con esta funcin se introduce la serie de puntos "point47" y se crea una


nueva lista que contiene todos los puntos comenzando en su elemento
cuyo ndice es 0 y terminando en el elemento con ndice n-1, lo que
elimina el ltimo elemento de la lista.

Ilustracin 25. Detalle constructivo mostrando la vigueta del voladizo


con las piezas de entrevigado. Elaboracin propia.

El armado de negativo
Para el armado de negativo se dibuja una bsplineCurve por encima del
armado del forjado que se ancla mediante doblado en patilla al voladizo y
cuya longitud se extiende hasta pasada la primera bovedilla cermica.
Se unen todas las curvas de que est formado y se aplica sobre la curva el
componente barraCorrugada usando un dimetro 12mm.

[60] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Ilustracin 26. Detalle constructivo con la representacin del negativo


de dimetro 12mm. Elaboracin propia.

Diagrama de relaciones
El diagrama de relaciones de este modelo paramtrico es muy amplio, sin
embargo, abstrayendo las relaciones de cada nodo a relaciones entre
grupos de nodos el diagrama del modelo es el mostrado en la ilustracin
27.

Ilustracin 27. Diagrama


Elaboracin propia.

de

relaciones

de

grupos

de

nodos.

Las animaciones
Para mostrar la funcionalidad del detalle paramtrico hemos preparado
unas animaciones en las que se va mostrando como evoluciona el detalle
constructivo conforme cada una de sus variables cambia su valor entre su
rango mnimo y mximo.
Animacin de la posicin del pilar
En primer lugar se definen las variables propias del video: segundos e
imgenes por segundo. El producto de ambas dar como resultado el
nmero de "frames" o cuadros que tendr el video:
int segundos = 15;
int img = 25;

Metodologa [61]

int frames = segundos*img;


double rango = max-min;

Para facilitar la reutilizacin del cdigo para las diferentes animaciones se


define la variable sobre la que se va a actuar en un bloque de cdigo:
//Se define la variable
string variable = pilarPos;
double min = pilarPos.RangeMinimum;
double max = pilarPos.RangeMaximum;
double step = pilarPos.RangeStepSize;

Se coloca el detalle en la posicin inicial de la variable y se actualiza la


vista para que muestre el cambio:
pilarPos.Value=min;
UpdateGraph();

Mediante un bloque "for" que se define desde 0 al nmero de cuadros se


exporta una imagen por cada posicin de la variable:
for (int i = 0; i< frames; i++) {
pilarPos.Value = min + i*rango/frames;
SaveViewToImageFile(1, 1080,
"C:/Users/usuario/Dropbox/dcp/capturas/"+variable+"/"+variable
+"-" + i + ".jpg");
UpdateGraph();
}

Animacin del ancho del pilar


En este caso se redefine durante la animacin el paso de la variable grfica
para que permita la animacin continua del elemento, ya que en su
creacin se defini su paso en 5.0cm porque en la realidad las medidas de
ancho de un pilar siempre son mltiplos de 5.
int segundos = 15;
double img = 25;
int frames = segundos*img;

//Se define la variable

[62] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

string variable = pilarAncho;


double min = pilarAncho.RangeMinimum;
double max = pilarAncho.RangeMaximum;
pilarAncho.RangeStepSize = 0.0;

//Se opera
double rango = max-min;
pilarAncho.Value=min;
UpdateGraph();
for (int i = 0; i< frames; i++) {
pilarAncho.Value = min + i*rango/frames;
SaveViewToImageFile(1, 1080,
"C:/Users/usuario/Dropbox/dcp/capturas/"+variable+"/"+variable
+"-" + i + ".jpg");
UpdateGraph();
}

Resultados [63]

RESULTADOS
Siguiendo todos los pasos indicados en el apartado anterior de
Metodologa y tal y como justificamos los procedimientos pasamos a
exponer los resultados obtenidos por componentes y para el detalle
constructivo que hace uso de los mismos.

Componentes
Barra corrugada
Este componente, que se ha usado en el resto de detalles constructivos,
parte de la lnea superior de la barra. Se puede adaptar el dimetro
cambiando el valor por el deseado. Es capaz de adaptarse a las curvas de
los radios de doblado.
Datos de entrada

curvSUP: (bsplineCurve) Curva superior de la barra.

diametro: (int) valor del diametro de la barra en milmetros.

Ilustracin 28. Componente de barra corrugada de dimetro 6 en la


posicin usada para su desarrollo generativo. Elaboracin propia.

Ilustracin 29. Componente de barra corrugada de dimetro 6 en


posicin recta. Elaboracin propia.

[64] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Ilustracin 30. Componente de barra corrugada de dimetro 6


doblada en patilla. Elaboracin propia.

Ilustracin 31. Componente de barra corrugada de dimetro 12


doblada en patilla. Elaboracin propia.

Localizacin del componente


ste componente en su versin DGN, GCT y dll puede encontrarse en el
CD anexo a este trabajo en la ruta:
/componentes/1-BarraCorrugada

Descargarse desde este enlace en formato ZIP introduciendo la siguiente


URL (Uniform Resource Locator, en espaol, localizador de recursos
uniforme)
http://pfg.rafarq.com/componentes/1-BarraCorrugada.zip
Mallazo electrosoldado
Este componente define un mallazo electrosoldado de dimetro de barra y
separacin variables.

Resultados [65]

Datos de entrada

mallazo: (int) separacin de las barras del mallazo en cm.

dimetro: (int) valor del dimetro de la barra en milmetros.

Ilustracin 32. Componente del mallazo electrosoldado de dimetro


5 cada 15 cm. Elaboracin propia.

Localizacin del componente


ste componente en su versin DGN, GCT y dll puede encontrarse en el
CD anexo a este trabajo en la ruta:
/componentes/2-MallazoElectrosoldado

Descargarse desde este enlace en formato ZIP introduciendo la siguiente


URL:
http://pfg.rafarq.com/componentes/2-MallazoElectrosoldado.zip
Bovedilla de entrevigado
Componente de la bovedilla de entrevigado de tipo cermico en dos
dimensiones seccionado a travs de su eje longitudinal.
Datos de entrada

Sistema de coordenadas de insercin: (CoordinateSystem).

Intereje: (int) separacin entre viguetas en el forjado.

Ilustracin 33. Componente bovedilla de entrevigado tipo cermico.


Elaboracin propia.

[66] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Localizacin del componente


ste componente en su versin DGN, GCT y dll puede encontrarse en el
CD anexo a este trabajo en la ruta:
/componentes/3-Bovedilla

Descargarse desde este enlace en formato ZIP introduciendo la siguiente


URL:
http://pfg.rafarq.com/componentes/3-Bovedilla.zip
Armado de viga/zuncho
Componente del armado de un pilar/zuncho visto en seccin.
Datos de entrada

Polgono: Polgono delimitador de la posicin de la viga/zuncho.

Dimetro: Dimetro de las barras principales de la viga/zuncho.

Ilustracin 34. Componente del armado de una viga en seccin de


ancho 25cm armada con redondos de dimetro 16. Elaboracin
propia.

Localizacin del componente


ste componente en su versin DGN, GCT y dll puede encontrarse en el
CD anexo a este trabajo en la ruta:
/componentes/4-viga

Resultados [67]

Descargarse desde este enlace en formato ZIP introduciendo la siguiente


URL:
http://pfg.rafarq.com/componentes/4-viga.zip
Vigueta
Datos de entrada
La vigueta no necesita variables ya que sus dimensiones son fijas, y su
altura se ajustar automticamente en funcin del polgono en el que se
inserte.
Localizacin del componente
ste componente en su versin DGN, GCT y dll puede encontrarse en el
CD anexo a este trabajo en la ruta:
/componentes/5-Vigueta

Descargarse desde este enlace en formato ZIP introduciendo la siguiente


URL:
http://pfg.rafarq.com/componentes/5-Vigueta.zip

Detalle constructivo
Detalle constructivo del encuentro de un pilar con el forjado unidireccional
en diferentes posiciones en la que se crea un voladizo con cambio de
direccin en las viguetas.

Ilustracin 35. Detalle constructivo terminado en una de sus


posiciones. Elaboracin propia.

[68] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Localizacin del detalle


ste detalle en su versin DGN, GCT y dll puede encontrarse en el CD
anexo a este trabajo en la ruta:
/detalle/

Descargarse desde este enlace en formato ZIP introduciendo la siguiente


URL:
http://pfg.rafarq.com/detalle/detalle.zip

Conclusiones y recomendaciones [69]

CONCLUSIONES Y RECOMENDACIONES
Aunque inicialmente planteamos la elaboracin de un detalle constructivo
totalmente genrico, a lo largo del desarrollo del modelo y debido a la
complejidad del cdigo, nos hemos dado cuenta que es prcticamente
imposible generarlo contemplando todas las variables posibles. En este
sentido hemos tomado decisiones encaminadas a limitar dichas variables
para que sean asequibles.
Si bien esto limita la flexibilidad del modelo presentado, si que demuestra
correctamente que el propsito planteado en los objetivos se cumple a la
perfeccin.
El detalle cumple la normativa que le es de aplicacin.
El tiempo invertido para el desarrollo de un solo modelo no justifica el uso
de tcnicas paramtricas para la representacin de un solo detalle. Estas
tcnicas facilitan la reutilizacin de los dibujos en situaciones diferentes.
Los componentes creados para este detalle constructivo facilitan el trabajo
en la creacin de posteriores detalles lo que reduce considerablemente el
esfuerzo requerido en cada nuevo detalle.
Grandes empresas de software como CYPE Ingenieros S.A. cuyos
programas de clculo de estructuras proporcionan detalles genricos pero
sin adaptar a soluciones concretas podran beneficiarse de estas tcnicas
para ofrecer a los usuarios detalles totalmente personalizados a la solucin
concreta del clculo realizado.
Otra finalidad es la de una lnea de investigacin asociada a proyectos fin
de grado del Grado de Edificacin de la Universidad de Granada mediante
la cual se cree y se mantenga una base de detalles arquitectnicos
paramtricos.

Bibliografa [71]

BIBLIOGRAFIA
A. De Boissieu, C. L. (2011). Operation of parametric modelling "and/or"
operation of architectural conception. Generative and Parametric Design
eCAADe 29 pp 519-528.
D, D. (2013). Modelled on Software Engineering : Flexible Parametric
Models in the Practice of Architecture. Melbourne: RMIT University.
Davis, D. A History of Parametric.
Davis, D., Burry, J., & Burry, M. (2011). Understanding Visual Scripts:
Improving

collaboration

through

modular

programming.

Londres:

Multiscience, 2011. pp. 361 375.


Garca Alvarado, R., & Lyon Gottlieb, A. (2013). Diseo paramtrico en
Arquitectura; mtodo, tcnicas y aplicaciones. Arquisur pp 16-27.
Hernndez, C. (2006). Thinking parametric design: Introducing parametric
Gaudi. Design Studies pp 309-324.
Motta, E., & Zdenek, Z. (1996). Parametric design problem solving.
Proceedings of the 10th Banff Knowledge Acquisition for KnowledgeBased System Workshop pp 1-24.
Real Decreto 1247/2008 de 18 de Julio, por el que se aprueba la
instruccin de hormign estructural (EHE 2008). (2008). BOE , 203 .
Schumacher, P. (2008). Parametricist Manifesto.
Sutherland,

I.

E.

(1963).

Sketchpad

Man-Machine

Graphical

Communication System. SIMULATION, vol. 2, no. 5. p. R3R 20.


Urquiza Snchez, R.
Woodbury, R., Vt, S. B., Williamson, S., & Beesley, P. (2006). Parametric
Modelling as a Design Representation in Architecture : A Process Account.

Asia: Proceedings of the 11th International Conference on ComputerAided Architectural Design Research in Asia. CAADRIA. pp 158-165.

Glosario [73]

GLOSARIO
Archivo binario: Es un archivo informtico codificado en cdigo binario,
es decir, unos y ceros. Los archivos binarios no pueden ser interpretados
por procesadores de texto.
Argumento: El argumento de una funcin es el valor que se introduce en
la misma con el fin de ejecutar los clculos definidos en la funcin para
obtener un resultado.
Bash: es un intrprete de comandos creado para GNU que viene por
defecto en las distribuciones Linux y en Mac OS X. Su funcin es
interpretar rdenes. stas se pueden automatizar mediante un script de
bash.
Bucle: es un ciclo que repite un trozo de cdigo hasta que la condicin
asignada inicialmente se cumple. Los tipos de bucles ms usuales son:

for

while

do/while

Dependiendo del lenguaje utilizado pueden aparecer otros, aunque al


final, siempre se parecern a los listados anteriormente.
Si el bucle es de tipo infinito se habr incurrido en un error en el que el
programa es incapaz de salir del bucle para continuar su ejecucin.
C#: Es un lenguaje de programacin parecido a Java con herencias de C y
C++ desarrollado por Microsoft en el ao 2000. Es un lenguaje orientado a
objetos con gestin automtica de memoria.
CAD: Son las siglas de Computer Aided Design o Diseo Asistido por
Ordenador. Los programas de CAD son aquellos que sirven para
representar geometra por medios digitales.
Diseo Generativo: es el planeamiento y ejecucin del sistema que
produce el diseo de edificios paramtricos.

[74] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

DGN: es una extensin de archivos de dibujo digital formado por las


consonantes de la palabra Design, diseo en ingls. Es un formato de
cdigo abierto estndar desarrollado por Bentley Systems Inc. para los
archivos de dibujo vectorial en la arquitectura y la ingeniera.
Funcin: es un algoritmo que forma parte del programa principal y que se
emplea para resolver una tarea concreta. Su gran potencia consiste en que
una vez creada puede llamarse tantas veces como sea necesario e incluso
introducirles valores nuevos para que opere con ellos a travs de los
argumentos.
Parametricismo: nuevo estilo arquitectnico y sus sistemas asociados
para obtener nuevos modelos urbanos y arquitectnicos que respondan a
la multicentralidad, y la complejidad de la sociedad actual formada por
numerosas capas y continuamente diferenciada.
El Parametricismo (Urquiza Snchez) da lugar al concepto de Arquitectura
Paramtrica que est basada en:

la utilizacin de las herramientas digitales para el diseo de un


mundo con sus propias leyes creativas y su propia lgica y
asociaciones.

la creacin de una naturaleza distinta basada la ley de correlacin


de todos los parmetros.

la creacin de especies innovadoras, de un nuevo orden complejo


y como resultado una nueva belleza.

Parmetro: Variable que, en una familia de elementos, sirve para


identificar cada uno de ellos mediante su valor numrico.
Programacin Visual: entorno de programacin amigable que permite
disear estructuras de cdigo complejas a partir de elementos que se
conectan en un entorno grfico sencillo.
Script: (Informtica) archivo de rdenes, archivo de procesamiento por
lotes o guion. Es un programa usualmente simple, que se almacena en un
archivo de texto plano.

Anexos [75]

ANEXOS
Anexo 1. Cdigo de los componentes
Anexo 1.1. Barra Corrugada
// Bentley GenerativeComponents Transaction File -- File
structure version 1.21. (Please do not delete or change this
line.)

environment
{
GCVersion

= '08.11.09.157';

MSVersion

= '08.11.09.357';

MSProject

= 'GC_Default';

MSDesignFile
= '\\vmware-host\Shared
Folders\Ingenieria de Edificacin\PFG
Rafa\Componentes\BarraCorrugada\barraCorrugada-polilinea.dgn';
}

transaction modelChange 'Se preparan las variables'


{
node User.Objects.diametro
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 6;

LimitValueToRange

= true;

RangeMinimum

= 6;

RangeMaximum

= 25;

RangeStepSize

= 1;

GraphLocation

= <auto> {300.0, 40.0};

}
}

transaction modelChange 'Add point07'


{
node User.Objects.point07 Bentley.GC.Features.Point

[76] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 4.44079415884691;

YTranslation

= <free> 0.00;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {560.0, 40.0};

}
}

transaction modelChange 'se crea la curva de prueba curvSUP'


{
node User.Objects.point08 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= 10.00;

YTranslation

= 0.00;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {560.0, 220.87};

}
node User.Objects.point09 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= 30.00;

YTranslation

= <free> 0.00;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {560.0, 401.74};

}
node User.Objects.point10 Bentley.GC.Features.Point
{

Anexos [77]

Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= 60.00;

YTranslation

= <free> 0.00;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {560.0, 582.61};

}
node User.Objects.curvSUP Bentley.GC.Features.BSplineCurve
{
Technique
Points
point09, point10};

= 'ByPoints';
= {point07, point08,

MakePeriodic

= false;

LineWeight

= 1;

GraphLocation

= <auto> {820.0, 40.0};

}
}

transaction modelChange 'Add barraCS'


{
node User.Objects.barraCS
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'ByParameterAlongCurve';

Curve

= curvSUP;

= 0;

UpVector

= baseCS.ZDirection;

AllowWrapping

= false;

GraphLocation

= <auto> {1080.0, 40.0};

}
}

transaction modelChange 'Add point11'


{
node User.Objects.point11 Bentley.GC.Features.Point

[78] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= barraCS;

Direction

= barraCS.YDirection;

DistanceFromOrigin

= -diametro/10;

GraphLocation

= <auto> {1340.0, 40.0};

}
}

transaction modelChange 'Add curvINF'


{
node User.Objects.curvINF Bentley.GC.Features.BSplineCurve
{
Technique

= 'Offset';

CurveToOffset

= curvSUP;

OffsetMethod

= OffsetMethod.ByPoint;

OffsetPoint0

= point11;

OffsetPoint1

= null;

NumberOfSamples

= -1;

TurnsCount

= 0;

LineWeight

= 1;

OffsetMode

= OffsetMode.Miter;

GraphLocation

= <auto> {1600.0, 40.0};

}
}

transaction modelChange 'Add point01'


{
node User.Objects.point01 Bentley.GC.Features.Point
{
Technique
=
'ByIncrementalDistanceAlongCurve';
Curve

= curvSUP;

IncrementalDistance

= diametro/4;

Anexos [79]

DistanceCurveOption
DistanceCurveOption.ArcLength;

StartPoint

= null;

Visible

= true;

GraphLocation
194.016666666667};

= <auto> {1080.0,

}
}

transaction modelChange 'Change point07', suppressed


{
node User.Objects.point07 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

YTranslation

= <free> 0.755943315979226;

}
}

transaction modelChange 'Change point01'


{
node User.Objects.point01 Bentley.GC.Features.Point
{
GraphLocation
246.271386666667};

= {1585.12896,

}
}

transaction modelChange 'Add bsplineCurve03'


{
node User.Objects.bsplineCurve03
Bentley.GC.Features.BSplineCurve
{
Technique

= 'SplitAtPoint';

CurveToSplit

= curvSUP;

SplitPoint

= point01[0];

AutoHideInputs

= true;

LineWeight

= 1;

[80] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

GraphLocation

= <auto> {2120.0, -35.6288};

}
}

transaction modelChange 'Add corCS'


{
node User.Objects.corCS
Bentley.GC.Features.CoordinateSystem
{
Technique
=
'ByOriginPrimarySecondaryDirections';
Origin

= barraCS;

PrimaryDirection

= barraCS.XDirection;

PrimaryAxis

= AxisOption.Y;

SecondaryDirection

= barraCS.YDirection;

SecondaryAxis

= AxisOption.X;

TransformOption
TransformOption.Orthogonal;
GraphLocation

=
= <auto> {1860.0, -35.6288};

}
}

transaction modelChange 'Add csINF'


{
node User.Objects.csINF
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'BySpacingAlongCurve';

Curve

= curvINF;

Spacing

= diametro/5;

SpacingAlongCurveOption
=
SpacingAlongCurveOption.ChordLength;
MaxNumberOfPointsIgnoredIfNotPositive = 0;
EquallySpaced

= false;

DuplicateStartPoint

= false;

UpVector

= corCS.ZDirection;

GraphLocation

= <auto> {1860.0, -35.6288};

Anexos [81]

}
}

transaction modelChange 'Add csSUP'


{
node User.Objects.csSUP
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'BySpacingAlongCurve';

Curve

= bsplineCurve03[1];

Spacing

= diametro/5;

SpacingAlongCurveOption
=
SpacingAlongCurveOption.ChordLength;
MaxNumberOfPointsIgnoredIfNotPositive = 0;
EquallySpaced

= false;

DuplicateStartPoint

= false;

UpVector

= corCS.ZDirection;

GraphLocation
131.814533333333};

= <auto> {1860.0,

}
}

transaction modelChange 'puntos para la corruga'


{
node User.Objects.point02 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= csSUP;

Direction

= csSUP.YDirection;

DistanceFromOrigin

= 2*diametro/50;

GraphLocation

= <auto> {1600.0, 40.0};

}
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';

[82] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Origin

= point02;

Direction

= csSUP.XDirection;

DistanceFromOrigin

= 2*diametro/50;

GraphLocation
207.443333333333};

= <auto> {1600.0,

}
node User.Objects.point04 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= csSUP;

Direction

= csSUP.XDirection;

DistanceFromOrigin

= -1*diametro/50;

GraphLocation
374.886666666667};

= <auto> {1600.0,

}
node User.Objects.point05 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= csSUP;

Direction

= csSUP.YDirection;

DistanceFromOrigin

= -2*diametro/80;

GraphLocation

= <auto> {1600.0, 542.33};

}
}

transaction modelChange 'Add bsplineCurve01'


{
node User.Objects.bsplineCurve01
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoints';

Points

= {point04,point05,point03};

MakePeriodic

= false;

LineWeight

= 1;

GraphLocation

= <auto> {1860.0, 40.0};

Anexos [83]

}
}

transaction modelChange 'Add bsplineCurve02'


{
node User.Objects.bsplineCurve02
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoles';

Poles

= {point03,csSUP,point04};

Order

= 0;

InputKnots

= null;

InputWeights

= null;

MakePeriodic

= false;

LineWeight

= 1;

GraphLocation

= <auto> {1860.0, 180.59};

}
}

transaction modelChange 'Change barraCS, point07'


{
node User.Objects.point07 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

YTranslation

= <free> 10.9604770008363;

}
node User.Objects.barraCS
Bentley.GC.Features.CoordinateSystem
{
GraphLocation

= {1092.4416, -103.0784};

}
}

transaction modelChange 'Change csINF'


{

[84] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

node User.Objects.csINF
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'BySpacingAlongCurve';

Visible

= false;

}
}

transaction modelChange 'puntos para la corruga superior'


{
node User.Objects.point12 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= csINF;

Direction

= csINF.YDirection;

DistanceFromOrigin

= -2*diametro/50;

GraphLocation

= <auto> {1600.0, 40.0};

}
node User.Objects.point13 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point12;

Direction

= csINF.XDirection;

DistanceFromOrigin

= 2*diametro/50;

GraphLocation
207.443333333333};

= <auto> {1600.0,

}
node User.Objects.point14 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= csINF;

Direction

= csINF.XDirection;

DistanceFromOrigin

= -1*diametro/50;

GraphLocation
374.886666666667};

= <auto> {1600.0,

Anexos [85]

}
node User.Objects.point15 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= csINF;

Direction

= csINF.YDirection;

DistanceFromOrigin

= 2*diametro/80;

GraphLocation

= <auto> {1600.0, 542.33};

}
}

transaction modelChange 'Add bsplineCurve04, bsplineCurve05'


{
node User.Objects.bsplineCurve04
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoints';

Points

= {point13,point15,point14};

MakePeriodic

= false;

LineWeight

= 1;

GraphLocation
118.387866666667};

= <auto> {2120.0,

}
node User.Objects.bsplineCurve05
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoles';

Poles

= {point13,csINF,point14};

Order

= 0;

InputKnots

= null;

InputWeights

= null;

MakePeriodic

= false;

LineWeight

= 1;

GraphLocation
258.977866666667};
}

= <auto> {2120.0,

[86] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

transaction modelChange 'Add line01; change barraCS, csSUP,


point01, point02, point03, point04, point05, point11, point12,
point13, point14, point15'
{
node User.Objects.barraCS
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'ByParameterAlongCurve';

Visible

= false;

}
node User.Objects.point11 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point01 Bentley.GC.Features.Point
{
Technique
=
'ByIncrementalDistanceAlongCurve';
Visible

= false;

}
node User.Objects.csSUP
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'BySpacingAlongCurve';

Visible

= false;

}
node User.Objects.point05 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point04 Bentley.GC.Features.Point
{

Anexos [87]

Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point02 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point15 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point14 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point12 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point13 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';

[88] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Visible

= false;

}
node User.Objects.line01 Bentley.GC.Features.Line
{
Technique

= 'ByPoints';

StartPoint

= curvINF.StartPoint;

EndPoint

= curvSUP.StartPoint;

LineWeight

= 1;

GraphLocation

= <auto> {2380.0, -35.6288};

}
}

transaction modelChange 'Change baseCS, bsplineCurve01,


bsplineCurve02, csINF, csSUP, curvINF, curvSUP, diametro,
point02, point07, point08, point12'
{
node User.Objects.baseCS
Bentley.GC.Features.CoordinateSystem
{
GraphLocation
95.1719124992001};

= {132.3122925568, -

}
node User.Objects.point07 Bentley.GC.Features.Point
{
GraphLocation

= {556.4168192, 61.4990848};

}
node User.Objects.point08 Bentley.GC.Features.Point
{
GraphLocation

= {560.0, 217.2868192};

}
node User.Objects.curvSUP Bentley.GC.Features.BSplineCurve
{
GraphLocation
}
node User.Objects.diametro
Bentley.GC.Features.GraphVariable
{

= {802.0, -136.4};

Anexos [89]

GraphLocation
275.3199104};

= {805.2284928, -

}
node User.Objects.curvINF Bentley.GC.Features.BSplineCurve
{
GraphLocation

= {1915.1872, -239.936};

}
node User.Objects.csINF
Bentley.GC.Features.CoordinateSystem
{
GraphLocation
691.9528607744};

= {1302.743721984, -

}
node User.Objects.csSUP
Bentley.GC.Features.CoordinateSystem
{
GraphLocation
555.468209553067};

= {1315.1271948288, -

}
node User.Objects.point02 Bentley.GC.Features.Point
{
GraphLocation

= {1378.0, -116.0};

}
node User.Objects.bsplineCurve01
Bentley.GC.Features.BSplineCurve
{
GraphLocation

= {1924.2816, 342.7456};

}
node User.Objects.bsplineCurve02
Bentley.GC.Features.BSplineCurve
{
GraphLocation

= {2502.816, 70.6892};

}
node User.Objects.point12 Bentley.GC.Features.Point
{
GraphLocation
}
}

= {1596.0, -133.0};

[90] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

transaction modelChange 'Change barraCS, baseCS,


bsplineCurve01, bsplineCurve02, bsplineCurve03,
bsplineCurve04, bsplineCurve05, corCS, csINF, csSUP, curvINF,
curvSUP, diametro, line01, point01, point02, point03, point04,
point05'
{
node User.Objects.baseCS
Bentley.GC.Features.CoordinateSystem
{
GraphLocation
134.730763581416};

= {-214.405749356191, -

}
node User.Objects.point07 Bentley.GC.Features.Point
{
GraphLocation
452.000279026172};

= {57.5056437073989, -

}
node User.Objects.point08 Bentley.GC.Features.Point
{
GraphLocation
296.212544626172};

= {61.0888245073989, -

}
node User.Objects.point09 Bentley.GC.Features.Point
{
GraphLocation
111.759363826172};

= {61.0888245073989, -

}
node User.Objects.point10 Bentley.GC.Features.Point
{
GraphLocation
69.1106361738285};

= {61.0888245073989,

}
node User.Objects.curvSUP Bentley.GC.Features.BSplineCurve
{
GraphLocation
180.701302850734};

= {295.126447480194, -

}
node User.Objects.barraCS
Bentley.GC.Features.CoordinateSystem

Anexos [91]

{
GraphLocation
251.95393330674};

= {512.071245660244, -

}
node User.Objects.diametro
Bentley.GC.Features.GraphVariable
{
GraphLocation
348.437335322714};

= {289.7836014562, -

}
node User.Objects.point11 Bentley.GC.Features.Point
{
GraphLocation
172.576081662096};

= {761.466444985215, -

}
node User.Objects.curvINF Bentley.GC.Features.BSplineCurve
{
GraphLocation
117.617169898032};

= {515.619031890806,

}
node User.Objects.corCS
Bentley.GC.Features.CoordinateSystem
{
Technique
=
'ByOriginPrimarySecondaryDirections';
Visible
GraphLocation
351.632986388259};

= false;
= {978.596076914668, -

}
node User.Objects.point01 Bentley.GC.Features.Point
{
GraphLocation
634.972260309993};

= {539.381282756761, -

}
node User.Objects.bsplineCurve03
Bentley.GC.Features.BSplineCurve
{
GraphLocation
645.443798142471};

= {865.830773311264, -

[92] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

}
node User.Objects.csINF
Bentley.GC.Features.CoordinateSystem
{
GraphLocation
127.748312451277};

= {1130.14503644761,

}
node User.Objects.point04 Bentley.GC.Features.Point
{
GraphLocation
113.14784486805};

= {1644.22353079314,

}
node User.Objects.point02 Bentley.GC.Features.Point
{
GraphLocation
152.783323939672};

= {1400.97783975305,

}
node User.Objects.point03 Bentley.GC.Features.Point
{
GraphLocation
280.864190211752};

= {1631.74251271556,

}
node User.Objects.csSUP
Bentley.GC.Features.CoordinateSystem
{
GraphLocation
707.711517389461};

= {1074.95248822483, -

}
node User.Objects.point05 Bentley.GC.Features.Point
{
GraphLocation
52.9706018253022};

= {1394.35675308318, -

}
node User.Objects.bsplineCurve01
Bentley.GC.Features.BSplineCurve
{
GraphLocation
32.8889253378249};
}

= {1998.3836402973, -

Anexos [93]

node User.Objects.point14 Bentley.GC.Features.Point


{
GraphLocation
899.121979988954};

= {1309.40338326273, -

}
node User.Objects.point12 Bentley.GC.Features.Point
{
GraphLocation
740.301902739605};

= {1314.79832149633, -

}
node User.Objects.point13 Bentley.GC.Features.Point
{
GraphLocation
666.152197194951};

= {1529.11473886327, -

}
node User.Objects.bsplineCurve02
Bentley.GC.Features.BSplineCurve
{
GraphLocation
123.391957656721};

= {2008.61247272843,

}
node User.Objects.point15 Bentley.GC.Features.Point
{
GraphLocation
588.825729654137};

= {1310.19376952083, -

}
node User.Objects.bsplineCurve04
Bentley.GC.Features.BSplineCurve
{
GraphLocation
742.713585842808};

= {1743.79032367379, -

}
node User.Objects.bsplineCurve05
Bentley.GC.Features.BSplineCurve
{
GraphLocation
887.784140732714};

= {1748.56282729778, -

}
node User.Objects.line01 Bentley.GC.Features.Line

[94] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

{
GraphLocation
13.126743565758};

= {1129.35957588089, -

}
}

transaction modelChange 'Change point07', suppressed


{
node User.Objects.point07 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

YTranslation

= <free> 0.000;

}
}

transaction modelChange 'Change point08, point09, point10'


{
node User.Objects.point08 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

YTranslation

= <free> 0.0;

}
node User.Objects.point09 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

YTranslation

= <free> 0.0;

}
node User.Objects.point10 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

YTranslation

= <free> 0.0;

}
}

transaction modelChange 'Change point07'


{

Anexos [95]

node User.Objects.point07 Bentley.GC.Features.Point


{
Technique
XTranslation
0.0984879615115051;
YTranslation

= 'ByCartesianCoordinates';
= <free> = <free> 0.0775241225037361;

}
}

transaction modelChange 'Change diametro, point07, point08,


point09, point10'
{
node User.Objects.point07 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

XTranslation

= <free> 3.6635311749052;

YTranslation

= <free> -8.43939345924409;

}
node User.Objects.point08 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

XTranslation

= <free> 4.82356044019402;

YTranslation

= <free> -0.185459196906463;

}
node User.Objects.point09 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

XTranslation

= <free> 15.0828906144475;

YTranslation

= <free> 2.0029593265898;

}
node User.Objects.point10 Bentley.GC.Features.Point
{

Technique

= 'ByCartesianCoordinates';

YTranslation

= <free> 1.96586748720851;

[96] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

node User.Objects.diametro
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 12;

}
}

transaction modelChange 'Change barraCS'


{
node User.Objects.barraCS
Bentley.GC.Features.CoordinateSystem
{
GraphLocation
228.427486039893};

= {520.893663385312, -

}
}

transaction generateFeatureType 'Generate feature type


barraCorrugada'
{
type

= User.barraCorrugada;

addAssemblyToDesignFile

= true;

addAssemblyToUserLibrary

= true;

inputProperties

= {

property
Bentley.GC.Features.BSplineCurve curvSUP
{
feature
= User.Objects.curvSUP;
isReplicatable
= true;
isParentNodeScope
= true;
}
property double barraCS_T
{
originalName
= barraCS_T;

Anexos [97]

isFreeable
= true;
isOptional
= true;
defaultValue
= 0;
}
property int diametro
{
feature
= User.Objects.diametro;
isReplicatable
= true;
}
};
outputProperties

= {

property
Bentley.GC.Features.BSplineCurve curvINF
{
feature
= User.Objects.curvINF;
isDynamic
= true;
}
property
Bentley.GC.Features.BSplineCurve bsplineCurve03
{
feature
= User.Objects.bsplineCurve03;
isDynamic
= true;
}
property
Bentley.GC.Features.BSplineCurve bsplineCurve01
{
feature
= User.Objects.bsplineCurve01;
isDynamic
= true;
}

[98] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

property
Bentley.GC.Features.BSplineCurve bsplineCurve02
{
feature
= User.Objects.bsplineCurve02;
isDynamic
= true;
}
property
Bentley.GC.Features.BSplineCurve bsplineCurve05
{
feature
= User.Objects.bsplineCurve05;
isDynamic
= true;
}
property
Bentley.GC.Features.BSplineCurve bsplineCurve04
{
feature
= User.Objects.bsplineCurve04;
isDynamic
= true;
}
property
Bentley.GC.Features.Line line01
{
feature
= User.Objects.line01;
isDynamic
= true;
}
};
internalProperties

= {

property
Bentley.GC.Features.CoordinateSystem barraCS
{
feature
= User.Objects.barraCS;
isDynamic
= true;

Anexos [99]

}
property
Bentley.GC.Features.Point point11
{
feature
= User.Objects.point11;
isDynamic
= true;
}
property
Bentley.GC.Features.CoordinateSystem corCS
{
feature
= User.Objects.corCS;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point01
{
feature
= User.Objects.point01;
isDynamic
= true;
}
property
Bentley.GC.Features.CoordinateSystem csINF
{
feature
= User.Objects.csINF;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point05
{
feature
= User.Objects.point05;
isDynamic
= true;
}

[100] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

property
Bentley.GC.Features.Point point04
{
feature
= User.Objects.point04;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point03
{
feature
= User.Objects.point03;
isDynamic
= true;
}
property
Bentley.GC.Features.CoordinateSystem csSUP
{
feature
= User.Objects.csSUP;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point02
{
feature
= User.Objects.point02;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point15
{
feature
= User.Objects.point15;
isDynamic
= true;
}

Anexos [101]

property
Bentley.GC.Features.Point point14
{
feature
= User.Objects.point14;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point13
{
feature
= User.Objects.point13;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point12
{
feature
= User.Objects.point12;
isDynamic
= true;
}
};
}

transaction modelChange 'Change point07', suppressed


{
node User.Objects.point07 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

YTranslation

= <free> 0.0;

}
}

transaction modelChange 'Change bsplineCurve01', suppressed


{

[102] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

node User.Objects.bsplineCurve01
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoints';

LineWeight

= 1;

}
}

transaction modelChange 'PROGRAMACION REUTILIZABLE',


suppressed
{
node User.Objects.line03 Bentley.GC.Features.Line
{
Technique

= 'ByFunction';

Function

= function(Point pt) {
//Line linea = new

Line();
Line linea = {};
for(int i = 0;
i<corrugasINF.Count; i++) {
linea[i] = {};
linea[i] = new
Line();
linea[i].ByPoints(pt[i][1], pt[i+1][0]);

}
//linea.ByPoints(pt[0][1], pt[1][0]);
return linea;
};
FunctionArguments

= {point06};

GraphLocation

= <auto> {2380.0, 40.0};

}
}

transaction modelChange 'Add line04', suppressed


{

Anexos [103]

node User.Objects.line04 Bentley.GC.Features.Line


{
Technique

= 'ByPoints';

StartPoint

= puntoBarras[1];

EndPoint

= point04[0];

GraphLocation
194.016666666667};

= <auto> {2380.0,

}
}

transaction modelChange 'Add coordinateSystem01', suppressed


{
node User.Objects.coordinateSystem01
Bentley.GC.Features.CoordinateSystem
{
Technique
'ByOriginCoordinateSystem';

Origin

= corrugasINF[0];

CoordinateSystem

= barraCS;

GraphLocation

= <auto> {2640.0, 40.0};

}
}

transaction modelChange 'Se ocultan los puntos', suppressed


{
node User.Objects.barraCS
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
node User.Objects.point06 Bentley.GC.Features.Point
{
Visible

= false;

}
node User.Objects.corrugasINF Bentley.GC.Features.Point
{

[104] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Technique

= 'BySpacingAlongCurve';

Visible

= false;

}
node User.Objects.point02 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point04 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point05 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
}

transaction modelChange 'Add curve01', suppressed


{
node User.Objects.curve01 Bentley.GC.Features.Curve
{
Technique
Curves
{bsplineCurve01,bsplineCurve02};
AutoHideInputs

= 'CompositeCurves';
=
= true;

Anexos [105]

GraphLocation

= <auto> {2640.0, 40.0};

}
}

transaction modelChange 'Add curve02', suppressed


{
node User.Objects.curve02 Bentley.GC.Features.Curve
{
Technique
=
'MirrorCopyGeometricContentsAboutPlane';
FeatureToMirrorCopy

= curve01[0];

Plane

= barraCS.XZPlane;

ReverseDirection

= false;

Visible

= false;

GraphLocation

= <auto> {2900.0, 40.0};

}
}

transaction modelChange 'Add coordinateSystem01,


coordinateSystem02, curve03', suppressed
{
node User.Objects.coordinateSystem01
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'ByParameterAlongCurve';

Curve

= curve02;

= 1;

UpVector

= null;

AllowWrapping

= false;

Visible

= false;

GraphLocation
194.016666666667};

= <auto> {2900.0,

}
node User.Objects.coordinateSystem02
Bentley.GC.Features.CoordinateSystem
{
Technique
'ByOriginCoordinateSystem';

[106] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Origin

= corrugasSUP;

CoordinateSystem

= coordinateSystem01;

Visible

= false;

GraphLocation
348.033333333333};

= <auto> {2900.0,

}
node User.Objects.curve03 Bentley.GC.Features.Curve
{
Technique
=
'CopyTransformGeometricContents';
FeatureToCopy

= curve02;

CopyFrom

= coordinateSystem01;

CopyTo

= coordinateSystem02;

GraphLocation

= <auto> {3160.0, 40.0};

}
}

transaction modelChange 'Add line05', suppressed


{
node User.Objects.line05 Bentley.GC.Features.Line
{
Technique
=
'MirrorCopyGeometricContentsAboutPlane';
FeatureToMirrorCopy

= line03[0];

Plane

= barraCS.XZPlane;

ReverseDirection

= false;

Visible

= false;

GraphLocation

= <auto> {3420.0, 40.0};

}
}

transaction modelChange 'Add line08', suppressed


{
node User.Objects.line08 Bentley.GC.Features.Line
{
Technique

= 'ByPoints';

Anexos [107]

StartPoint

= puntoBarras[0];

EndPoint

= puntoBarras[1];

GraphLocation
194.016666666667};

= <auto> {3420.0,

}
}

transaction modelChange 'Add line06', suppressed


{
node User.Objects.line06 Bentley.GC.Features.Line
{
Technique
=
'CopyTransformGeometricContents';
FeatureToCopy

= line05;

CopyFrom

= coordinateSystem01;

CopyTo

= coordinateSystem02;

GraphLocation
194.016666666667};

= <auto> {3420.0,

}
}

transaction modelChange 'Add line07', suppressed


{
node User.Objects.line07 Bentley.GC.Features.Line
{
Technique

= 'ByPoints';

StartPoint

= puntoBarras[0];

EndPoint

= corrugasSUP[0][0];

GraphLocation

= <auto> {3420.0, 361.46};

}
}

transaction modelChange 'Change corrugasSUP, mallazo,


puntoBarras, sepCorrugas', suppressed
{
node User.Objects.puntoBarras Bentley.GC.Features.Point
{

[108] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.sepCorrugas
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 1.0;

}
node User.Objects.corrugasSUP Bentley.GC.Features.Point
{
Technique

= 'BySpacingAlongCurve';

Visible

= false;

}
node User.Objects.mallazo
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 15.0;

}
}

transaction modelChange 'Change diametro, sepCorrugas',


suppressed
{
node User.Objects.diametro
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 2.5;

}
node User.Objects.sepCorrugas
Bentley.GC.Features.GraphVariable
{

Technique

= 'EvaluateExpression';

Value

= 3;

Anexos [109]

transaction modelChange 'Change diametro, sepCorrugas',


suppressed
{
node User.Objects.diametro
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 12;

}
node User.Objects.sepCorrugas
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 1;

}
}

Anexo 1.2 Mallazo electrosoldado


transaction modelChange 'Se preparan las variables'
{
node User.Objects.diametro
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 6;

LimitValueToRange

= true;

RangeMinimum

= 6;

RangeMaximum

= 25;

RangeStepSize

= 1;

GraphLocation

= <auto> {300.0, 40.0};

}
node User.Objects.mallazo
Bentley.GC.Features.GraphVariable
{

[110] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Technique

= 'EvaluateExpression';

Value

= 15;

LimitValueToRange

= true;

RangeMinimum

= 10.0;

RangeMaximum

= 50.0;

RangeStepSize

= 5.0;

GraphLocation

= <auto> {300.0, 321.18};

}
}

transaction modelChange 'Add point01, point02, point03'


{
node User.Objects.point01 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= 10;

YTranslation

= 0;

ZTranslation

= 0;

Origin

= null;

GraphLocation

= <auto> {560.0, 220.87};

}
node User.Objects.point02 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= 30;

YTranslation

= 0.000;

ZTranslation

= 0;

Origin

= null;

GraphLocation

= <auto> {560.0, 401.74};

}
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Anexos [111]

CoordinateSystem

= baseCS;

XTranslation

= 60;

YTranslation

= 0;

ZTranslation

= 0;

Origin

= null;

GraphLocation

= <auto> {560.0, 582.61};

}
}

transaction modelChange 'Add bsplineCurve01'


{
node User.Objects.bsplineCurve01
Bentley.GC.Features.BSplineCurve
{
Technique
Points
point03};

= 'ByPoints';
= {point01, point02,

MakePeriodic

= false;

GraphLocation

= <auto> {820.0, 40.0};

}
}

transaction modelChange 'Change bCS, baseCS, bsplineCurve01,


diametro, mallazo', suppressed
{
node User.Objects.baseCS
Bentley.GC.Features.CoordinateSystem
{
GraphLocation
534.039210126582};

= {102.624688607595,

}
node User.Objects.bCS Bentley.GC.Features.CoordinateSystem
{
GraphLocation
466.324654852321};

= {330.472784810126,

}
node User.Objects.bsplineCurve01
Bentley.GC.Features.BSplineCurve

[112] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

{
GraphLocation
329.929113924051};

= {844.160759493671,

}
node User.Objects.mallazo
Bentley.GC.Features.GraphVariable
{
GraphLocation
113.713670886076};

= {291.302126582279, -

}
node User.Objects.diametro
Bentley.GC.Features.GraphVariable
{
GraphLocation
480.112394936709};

= {851.445174683544,

}
}

transaction modelChange 'Add barraCorrugada01; change


diametro'
{
node User.Objects.diametro
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 8.0;

}
node User.Objects.barraCorrugada01 User.barraCorrugada
{
Technique

= 'ByDefault';

curvSUP

= bsplineCurve01;

barraCS_T

= 0;

diametro

= diametro;

LineWeight

= 1;

GraphLocation
347.273620253165};
}
}

= {1090.43744810127,

Anexos [113]

transaction modelChange 'Se reorganiza el grfico'


{
node User.Objects.baseCS
Bentley.GC.Features.CoordinateSystem
{
GraphLocation
461.0380767232};

= {151.4512556032,

}
node User.Objects.diametro
Bentley.GC.Features.GraphVariable
{
GraphLocation
467.0283587584};

= {831.5632791552,

}
node User.Objects.mallazo
Bentley.GC.Features.GraphVariable
{
GraphLocation
93.6480192};

= {897.67455744,

}
node User.Objects.bsplineCurve01
Bentley.GC.Features.BSplineCurve
{
GraphLocation
324.8198754304};

= {826.1917364224,

}
node User.Objects.barraCorrugada01 User.barraCorrugada
{
GraphLocation
364.110588701165};

= {1047.84537232527,

}
}

transaction modelChange 'Add coordinateSystem01; change


point02'
{
node User.Objects.point02 Bentley.GC.Features.Point
{

[114] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

GraphLocation

= {577.332590561025,

401.74};
}
node User.Objects.coordinateSystem01
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'ByParameterAlongCurve';

Curve

= bsplineCurve01;

= 0;

UpVector

= null;

AllowWrapping

= false;

GraphLocation
210.096404910987};

= {1043.94996703595,

}
}

transaction modelChange 'Add point06'


{
node User.Objects.point06 Bentley.GC.Features.Point
{
Technique

= 'ByDistanceAlongCurve';

Curve

= barraCorrugada01.curvINF;

DistanceAlongCurve
=
Series(5,barraCorrugada01.curvINF.Length,mallazo);
GraphLocation
93.6480192};

= <auto> {1451.4512556032,

}
}

transaction modelChange 'Add circle01, point04; change


point06'
{
node User.Objects.point06 Bentley.GC.Features.Point
{
GraphLocation
283.847049194613};

= {1327.23964417815,

}
node User.Objects.point04 Bentley.GC.Features.Point

Anexos [115]

{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin
Direction
coordinateSystem01.ZDirection;
DistanceFromOrigin
GraphLocation
93.6480192};

= point06;
=
= diametro/20;
= <auto> {1451.4512556032,

}
node User.Objects.circle01 Bentley.GC.Features.Circle
{
Technique

= 'ByCenterRadius';

CenterPoint

= point04;

Radius

= diametro/20;

LineWeight

= 2;

Support
coordinateSystem01.XZPlane;

GraphLocation
93.6480192};

= <auto> {1711.4512556032,

}
}

transaction modelChange 'Change barraCorrugada01, circle01,


coordinateSystem01,
mallazo, point02, point04, point06'
{
node User.Objects.mallazo
Bentley.GC.Features.GraphVariable
{
GraphLocation
64.5359227722532};

= {1046.46971695959,

}
node User.Objects.point02 Bentley.GC.Features.Point
{
GraphLocation

= {577.332590561025,

401.74};
}
node User.Objects.barraCorrugada01 User.barraCorrugada

[116] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

{
GraphLocation
364.110588701165};

= {1041.37601756355,

}
node User.Objects.coordinateSystem01
Bentley.GC.Features.CoordinateSystem
{
GraphLocation
216.565759672709};

= {1047.18464441681,

}
node User.Objects.point06 Bentley.GC.Features.Point
{
GraphLocation
306.489790860638};

= {1314.30093465471,

}
node User.Objects.point04 Bentley.GC.Features.Point
{
GraphLocation
368.595596573164};

= {1545.25689964816,

}
node User.Objects.circle01 Bentley.GC.Features.Circle
{
Technique

= 'ByCenterRadius';

LineWeight

= 1;

GraphLocation
268.320597766481};

= {1776.14480322042,

}
}

transaction modelChange 'Change coordinateSystem01, mallazo,


point01, point04, point06'
{
node User.Objects.mallazo
Bentley.GC.Features.GraphVariable
{

Technique

= 'EvaluateExpression';

Value

= 10;

Anexos [117]

node User.Objects.point01 Bentley.GC.Features.Point


{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
node User.Objects.coordinateSystem01
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'ByParameterAlongCurve';

Visible

= false;

}
node User.Objects.point06 Bentley.GC.Features.Point
{
Technique

= 'ByDistanceAlongCurve';

Visible

= false;

}
node User.Objects.point04 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
}

transaction modelChange 'Change baseCS, point02, point03'


{
node User.Objects.baseCS
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'AtModelOrigin';

Visible

= false;

}
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

[118] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

}
node User.Objects.point02 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
}

transaction generateFeatureType 'Generate feature type


Mallazo'
{
type

= User.Mallazo;

addAssemblyToDesignFile

= true;

addAssemblyToUserLibrary

= true;

inputProperties

= {

property double diametro


{
feature
User.Objects.diametro;
isReplicatable

=
= true;

}
property int mallazo
{
feature
User.Objects.mallazo;
isReplicatable

=
= true;

}
property Bentley.GC.Features.BSplineCurve
bsplineCurve01
{
feature
User.Objects.bsplineCurve01;

isReplicatable

= true;

isParentNodeScope

= true;

}
property double coordinateSystem01_T
{

Anexos [119]

originalName
coordinateSystem01_T;

isFreeable

= true;

isOptional

= true;

isReplicatable

= true;

defaultValue

= 0;

}
};
outputProperties

= {

property User.barraCorrugada barraCorrugada01


{
feature
User.Objects.barraCorrugada01;

isDynamic

= true;

}
property Bentley.GC.Features.Circle circle01
{
feature
User.Objects.circle01;

isDynamic

= true;

}
};
internalProperties

= {

property Bentley.GC.Features.CoordinateSystem
coordinateSystem01
{
feature
User.Objects.coordinateSystem01;
isDynamic

=
= true;

}
property Bentley.GC.Features.Point point04
{
feature
User.Objects.point04;
isDynamic

=
= true;

}
property Bentley.GC.Features.Point point06
{

[120] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

feature
User.Objects.point06;

isDynamic

= true;

}
};
}

Anexo 1.3. Bovedilla cermica


transaction modelChange 'Se definen las variables'
{
node User.Objects.altura Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 25;

LimitValueToRange

= true;

RangeMinimum

= 14.0;

RangeMaximum

= 30.0;

RangeStepSize

= 1.0;

GraphLocation

= <auto> {300.0, 180.59};

}
node User.Objects.intereje
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 70.0;

LimitValueToRange

= true;

RangeMinimum

= 50.0;

RangeMaximum

= 90.0;

RangeStepSize

= 5.0;

GraphLocation

= <auto> {300.0, 40.0};

}
}

transaction modelChange 'Add frontalCS'


{

Anexos [121]

node User.Objects.frontalCS
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 2.44942299502364;

YTranslation

= <free> 0.0;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {560.0, 40.0};

}
}

transaction modelChange 'Add point01'


{
node User.Objects.point01 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= frontalCS;

Direction

= frontalCS.XDirection;

DistanceFromOrigin
ancho de la vigueta
GraphLocation

= intereje-12; //12 es el
= <auto> {820.0, 40.0};

}
}

transaction modelChange 'Add point02'


{
node User.Objects.point02 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= {frontalCS, point01};

Direction

= frontalCS.YDirection;

DistanceFromOrigin

= 4;

[122] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

GraphLocation
207.443333333333};

= <auto> {820.0,

}
}

transaction modelChange 'Add point03, point04, point05,


point06'
{
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point02;

Direction

= frontalCS.XDirection;

DistanceFromOrigin

= {-2.5,2.5};

GraphLocation

= <auto> {820.0, 361.46};

}
node User.Objects.point04 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point03;

Direction

= frontalCS.YDirection;

DistanceFromOrigin

= 8;

GraphLocation
515.476666666667};

= <auto> {820.0,

}
node User.Objects.point05 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= {frontalCS, point01};

Direction

= frontalCS.YDirection;

DistanceFromOrigin

= altura;

GraphLocation
669.493333333333};

= <auto> {820.0,

}
node User.Objects.point06 Bentley.GC.Features.Point

Anexos [123]

{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point05;

Direction

= frontalCS.XDirection;

DistanceFromOrigin

= {10,-10};

GraphLocation
836.936666666667};

= <auto> {820.0,

}
}

transaction modelChange 'Add polyLine01; change polygon01'


{
node User.Objects.polyLine01 Bentley.GC.Features.PolyLine
{
Technique

= 'ByVertices';

Vertices
= {frontalCS,point02[0],
point03[0], point04[0], point06[0], point06[1], point04[1],
point03[1], point02[1], point01,frontalCS};
GraphLocation
324.06560704};

= {1462.9615616,

}
}

transaction modelChange 'Add centroide para el offset'


{
node User.Objects.centroide Bentley.GC.Features.Point
{
Technique
SetToFindCentroidFrom
point05[1], point01};
GraphLocation

= 'CentroidOfSet';
= {frontalCS, point05[0],
= {1340.0, 40.0};

}
}

transaction modelChange 'Add polyLine02'


{
node User.Objects.polyLine02 Bentley.GC.Features.PolyLine

[124] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

{
Technique

= 'Offset';

PolyLineToOffset

= polyLine01;

OffsetMethod

= OffsetMethod.ByDistance;

OffsetPoint

= centroide;

OffsetDistance

= 1;

GraphLocation

= <auto> {560.0, 220.87};

}
}

transaction modelChange 'Add bsplineCurve01; change baseCS,


centroide, frontalCS, polyLine01, polyLine02'
{
node User.Objects.baseCS
Bentley.GC.Features.CoordinateSystem
{
GraphLocation
479.6132859904};

= {120.4925734912,

}
node User.Objects.frontalCS
Bentley.GC.Features.CoordinateSystem
{
GraphLocation
417.6959217664};

= {473.3156900864,

}
node User.Objects.centroide Bentley.GC.Features.Point
{
GraphLocation
444.8994304};

= {1171.5905024,

}
node User.Objects.polyLine01 Bentley.GC.Features.PolyLine
{
GraphLocation
324.06560704};

= {1169.140736,

}
node User.Objects.polyLine02 Bentley.GC.Features.PolyLine
{

Anexos [125]

GraphLocation
299.1027808};

= {1430.1157376,

}
node User.Objects.bsplineCurve01
Bentley.GC.Features.BSplineCurve
{
Technique

= 'FromPolyLine';

PolyLine

= polyLine02;

Order

= 2;

GraphLocation
231.319003733334};

= {1676.3802112,

}
}

transaction modelChange 'Change altura, centroide'


{
node User.Objects.altura Bentley.GC.Features.GraphVariable
{
GraphLocation
734.507504273505};

= {162.791076923077,

}
node User.Objects.centroide Bentley.GC.Features.Point
{
GraphLocation
496.364540007471};

= {1218.15417299724,

}
}

transaction modelChange 'Linea base para las divisiones


interiores'
{
node User.Objects.line01 Bentley.GC.Features.Line
{
Technique

= 'ByPoints';

StartPoint

= frontalCS;

EndPoint

= point01;

GraphLocation
68.3648090870099};

= {1224.8076406836,

[126] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

}
}

transaction modelChange 'Divisiones interiores'


{
node User.Objects.point07 Bentley.GC.Features.Point
{
Technique
'ByNumberOfBaysAlongCurve';
Curve

=
= line01;

NumberOfEquallySpacedBays = 5;
StartBayFraction

= 0;

EndBayFraction

= 0;

IncludeStart

= false;

IncludeEnd

= false;

GraphLocation

= <auto> {640.4925734912,

40.0};
}
}

transaction modelChange 'Punto de inicio de las divisiones


interiores'
{
node User.Objects.point08 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point07;

Direction

= frontalCS.YDirection;

DistanceFromOrigin

= 1;

GraphLocation

= <auto> {640.4925734912,

220.87};
}
}

transaction modelChange 'Puntos del ancho de las divisiones


interiores'
{

Anexos [127]

node User.Objects.point09 Bentley.GC.Features.Point


{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point08;

Direction

= frontalCS.XDirection;

DistanceFromOrigin

= 0.5;

GraphLocation
374.886666666667};

= <auto> {640.4925734912,

}
node User.Objects.point10 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point08;

Direction

= frontalCS.XDirection;

DistanceFromOrigin

= -0.5;

GraphLocation
528.903333333333};

= <auto> {640.4925734912,

}
}

transaction modelChange 'Add line02, line03'


{
node User.Objects.line02 Bentley.GC.Features.Line
{
Technique
'ByStartPointDirectionLength';

StartPoint

= point10;

Direction

= frontalCS.YDirection;

Length

= altura-2;

GraphLocation
990.953333333334};

= <auto> {900.4925734912,

}
node User.Objects.line03 Bentley.GC.Features.Line
{
Technique
'ByStartPointDirectionLength';

[128] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

StartPoint

= point09;

Direction

= frontalCS.YDirection;

Length

= altura-2;

GraphLocation
1158.39666666667};

= <auto> {900.4925734912,

}
}

transaction modelChange 'Change altura, baseCS, centroide,


frontalCS, point01, point02, point03, point04, point05,
point06, point07, point08, point09, point10'
{
node User.Objects.baseCS
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'AtModelOrigin';

Visible

= false;

GraphLocation
488.004678395463};

= {-328.446920179687,

}
node User.Objects.frontalCS
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

GraphLocation
459.652883791717};

= {-51.1463352300569,

}
node User.Objects.point01 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point02 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

Anexos [129]

}
node User.Objects.altura Bentley.GC.Features.GraphVariable
{
GraphLocation
954.781554906417};

= {344.604579032782,

}
node User.Objects.point05 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.centroide Bentley.GC.Features.Point
{
Technique

= 'CentroidOfSet';

Visible

= false;

}
node User.Objects.point06 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point04 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point07 Bentley.GC.Features.Point
{

[130] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Technique
'ByNumberOfBaysAlongCurve';

Visible

= false;

}
node User.Objects.point08 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point09 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point10 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
}

transaction generateFeatureType 'Generate feature type


Bovedilla'
{
type

= User.Bovedilla;

addAssemblyToDesignFile

= true;

addAssemblyToUserLibrary

= true;

inputProperties

= {

property
Bentley.GC.Features.CoordinateSystem frontalCS
{
feature
= User.Objects.frontalCS;
isReplicatable
= true;

Anexos [131]

isParentNodeScope
= true;
}
property double
Entrevigado
{
feature
= User.Objects.intereje;
isReplicatable
= true;
}
property int Altura
{
feature
= User.Objects.altura;
isReplicatable
= true;
}
property int
bsplineCurve01_Order
{
originalName
= bsplineCurve01_Order;
isFreeable
= true;
isOptional
= true;
defaultValue
= 2;
}
};
outputProperties

= {

property
Bentley.GC.Features.PolyLine polyLine01
{
feature
= User.Objects.polyLine01;
isDynamic
= true;
}

[132] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

property
Bentley.GC.Features.PolyLine polyLine02
{
feature
= User.Objects.polyLine02;
isDynamic
= true;
}
property
Bentley.GC.Features.BSplineCurve bsplineCurve01
{
feature
= User.Objects.bsplineCurve01;
isDynamic
= true;
}
property
Bentley.GC.Features.Line line01
{
feature
= User.Objects.line01;
isDynamic
= true;
}
property
Bentley.GC.Features.Line line02
{
feature
= User.Objects.line02;
isDynamic
= true;
}
property
Bentley.GC.Features.Line line03
{
feature
= User.Objects.line03;
isDynamic
= true;
}
};

Anexos [133]

internalProperties

= {
property

Bentley.GC.Features.Point point01
{
feature
= User.Objects.point01;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point02
{
feature
= User.Objects.point02;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point05
{
feature
= User.Objects.point05;
isDynamic
= true;
}
property
Bentley.GC.Features.Point centroide
{
feature
= User.Objects.centroide;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point06
{
feature
= User.Objects.point06;
isDynamic
= true;
}

[134] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

property
Bentley.GC.Features.Point point03
{
feature
= User.Objects.point03;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point04
{
feature
= User.Objects.point04;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point07
{
feature
= User.Objects.point07;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point08
{
feature
= User.Objects.point08;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point09
{
feature
= User.Objects.point09;
isDynamic
= true;
}

Anexos [135]

property
Bentley.GC.Features.Point point10
{
feature
= User.Objects.point10;
isDynamic
= true;
}
};
}

Anexo 1.4. Armado viga/zuncho


transaction modelChange 'Add point01, point02, point03,
point04'
{
node User.Objects.point01 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 10;

YTranslation

= <free> 0;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 40.0};

}
node User.Objects.point02 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 35;

YTranslation

= <free> 0;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 220.87};

}
node User.Objects.point03 Bentley.GC.Features.Point

[136] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 35;

YTranslation

= <free> 25;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 401.74};

}
node User.Objects.point04 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 10;

YTranslation

= <free> 25;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 582.61};

}
}

transaction modelChange 'Polgono para el contorno del armado


del pilar'
{
node User.Objects.polygon01 Bentley.GC.Features.Polygon
{
Technique
VertexPoints
point03, point04};

= 'ByVertices';
= {point01, point02,

Fill

= false;

ForcePlanar

= false;

PlaneIndex

= 1;

TextStyle

= null;

Key

= "";

GraphLocation

= <auto> {560.0, 40.0};

Anexos [137]

transaction modelChange 'Change point01, point02, point03,


point04'
{
node User.Objects.point04 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
node User.Objects.point02 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
node User.Objects.point01 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
}

transaction modelChange 'Add coordinateSystem01, diaBar'


{
node User.Objects.diaBar Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 12;

LimitValueToRange

= true;

RangeMinimum

= 6.0;

RangeMaximum

= 25.0;

[138] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

RangeStepSize

= 1.0;

GraphLocation

= <auto> {820.0, 40.0};

}
node User.Objects.coordinateSystem01
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'FromPolygonVertices';

Polygon

= polygon01;

IndexOfOriginVertex

= 0;

Invert

= false;

TransformOption
TransformOption.Orthogonal;
GraphLocation

=
= <auto> {1080.0, 40.0};

}
}

transaction modelChange 'Add circle01'


{
node User.Objects.circle01 Bentley.GC.Features.Circle
{
Technique

= 'ByCenterRadius';

CenterPoint

= polygon01.Vertices;

Radius

= diaBar/20+0.6;

Support
coordinateSystem01.XYPlane;
GraphLocation

=
= <auto> {1340.0, 40.0};

}
}

transaction modelChange 'Add point05'


{
node User.Objects.point05 Bentley.GC.Features.Point
{
Technique

= 'ByParameterAlongCurve';

Curve

= circle01[0];

= {-0.125,0.375};

Anexos [139]

AllowWrapping

= false;

GraphLocation

= <auto> {1600.0, 40.0};

}
}

transaction modelChange 'Add line01'


{
node User.Objects.line01 Bentley.GC.Features.Line
{
Technique
=
'ByStartPointLengthTangentFromCurve';
Curve

= circle01[0];

StartPoint

= point05[0];

Length
=
Distance(polygon01.Vertices[0],polygon01.Vertices[1])/6;
GraphLocation
231.282592592593};

= <auto> {1860.0,

}
}

transaction modelChange 'Add line02'


{
node User.Objects.line02 Bentley.GC.Features.Line
{
Technique
=
'ByStartPointLengthTangentFromCurve';
Curve

= circle01[0];

StartPoint

= point05[1];

Length
= Distance(polygon01.Vertices[0],polygon01.Vertices[1])/6;
GraphLocation

= <auto> {1860.0, 40.0};

}
}

transaction modelChange 'Add point06'


{
node User.Objects.point06 Bentley.GC.Features.Point

[140] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

{
Technique

= 'ByParameterAlongCurve';

Curve

= circle01;

= SeriesByCount(0,1,5);

AllowWrapping

= false;

Replication
=
ReplicationOption.AllCombinations;
GraphLocation
77.4034881442289};

= {2129.35087203606,

}
}

transaction modelChange 'Add bsplineCurve01, bsplineCurve02,


bsplineCurve03, bsplineCurve04, line03, line04, line05; change
line01'
{
node User.Objects.line01 Bentley.GC.Features.Line
{
GraphLocation
140.41124608618};

= {2534.65814450106, -

}
node User.Objects.bsplineCurve01
Bentley.GC.Features.BSplineCurve
{
Technique
=
'ExtractRegionUsingStartEndPoint';
OriginalCurve

= circle01[0];

StartPointOfRegionToExtract = point05[0];
EndPointOfRegionToExtract = point06[0][2];
AutoHideInputs
GraphLocation
38.3765847159623};

= false;
= {2539.96723809524,

}
node User.Objects.line03 Bentley.GC.Features.Line
{
Technique

= 'ByPoints';

StartPoint

= point06[0][2];

EndPoint

= point06[3][2];

Anexos [141]

GraphLocation
215.51490217628};

= {2538.20266666667,

}
node User.Objects.bsplineCurve02
Bentley.GC.Features.BSplineCurve
{
Technique
=
'ExtractRegionUsingStartEndPoint';
OriginalCurve

= circle01[3];

StartPointOfRegionToExtract = point06[3][2];
EndPointOfRegionToExtract = point06[3][1];
AutoHideInputs
GraphLocation
383.117896770963};

= false;
= {2550.98057142857,

}
node User.Objects.line04 Bentley.GC.Features.Line
{
Technique

= 'ByPoints';

StartPoint

= point06[3][1];

EndPoint

= point06[2][1];

GraphLocation
567.322595183662};

= {2555.82806349206,

}
node User.Objects.bsplineCurve03
Bentley.GC.Features.BSplineCurve
{
Technique
=
'ExtractRegionUsingStartEndPoint';
OriginalCurve

= circle01[2];

StartPointOfRegionToExtract = point06[2][1];
EndPointOfRegionToExtract = point06[2][0];
AutoHideInputs
GraphLocation
732.137325342391};

= false;
= {2560.67555555556,

}
node User.Objects.line05 Bentley.GC.Features.Line
{
Technique

= 'ByPoints';

[142] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

StartPoint

= point06[2][0];

EndPoint

= point06[1][0];

GraphLocation
916.34202375509};

= {2584.91301587302,

}
}

transaction modelChange 'Add bsplineCurve04, bsplineCurve05,


line06; change point06'
{
node User.Objects.point06 Bentley.GC.Features.Point
{
GraphLocation
365.240202746013};

= {2104.20178824706,

}
node User.Objects.bsplineCurve04
Bentley.GC.Features.BSplineCurve
{
Technique
=
'ExtractRegionUsingParameterSpan';
OriginalCurve

= circle01[1];

ParameterSpanToExtract

= {0.75,1};

AutoHideInputs

= false;

GraphLocation
1081.98584045213};

= {2568.72434804687,

}
node User.Objects.line06 Bentley.GC.Features.Line
{
Technique

= 'ByPoints';

StartPoint

= point06[1][3];

EndPoint

= point06[0][3];

GraphLocation
1225.45135683597};

= {2560.70928971998,

}
node User.Objects.bsplineCurve05
Bentley.GC.Features.BSplineCurve
{
Technique
=
'ExtractRegionUsingStartEndPoint';

Anexos [143]

OriginalCurve

= circle01[0];

StartPointOfRegionToExtract = point05[1];
EndPointOfRegionToExtract = point06[0][3];
AutoHideInputs
GraphLocation
1382.04706927291};

= false;
= {2586.80857512613,

}
}

transaction modelChange 'Add curve01, curve02'


{
node User.Objects.curve01 Bentley.GC.Features.Curve
{
Technique

= 'CompositeCurves';

Curves
= { bsplineCurve04, line05,
line04, line03, bsplineCurve03, bsplineCurve02,
bsplineCurve01, line01};
AutoHideInputs
GraphLocation
512.070889067715};

= true;
= {3458.23471563167,

}
node User.Objects.curve02 Bentley.GC.Features.Curve
{
Technique

= 'CompositeCurves';

Curves

= { line06};

AutoHideInputs

= true;

GraphLocation
512.070889067715};

= {3458.23471563167,

}
}

transaction modelChange 'Add bsplineCurve10'


{
node User.Objects.bsplineCurve10
Bentley.GC.Features.BSplineCurve
{
Technique
=
'ExtractRegionUsingParameterSpan';

[144] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

OriginalCurve

= line06;

ParameterSpanToExtract

= {0,1};

AutoHideInputs

= true;

GraphLocation
140.41124608618};

= <auto> {1080.0, -

}
}

transaction modelChange 'Add bsplineCurve06'


{
node User.Objects.bsplineCurve06
Bentley.GC.Features.BSplineCurve
{
Technique
=
'ExtractRegionUsingParameterSpan';
OriginalCurve

= curve01;

ParameterSpanToExtract

= {0,1};

AutoHideInputs

= true;

GraphLocation
140.41124608618};

= <auto> {2900.0, -

}
}

transaction modelChange 'Add bsplineCurve09'


{
node User.Objects.bsplineCurve09
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ReverseCurve';

CurveToReverse

= bsplineCurve06;

AutoHideInputs

= true;

GraphLocation
140.41124608618};

= <auto> {1080.0, -

}
}

transaction modelChange 'Add barraCorrugada01'


{

Anexos [145]

node User.Objects.barraCorrugada01 User.barraCorrugada


{
Technique

= 'ByDefault';

curvSUP

= bsplineCurve09;

barraCS_T

= 0;

diametro

= 6;

GraphLocation
140.41124608618};

= <auto> {2900.0, -

}
}

transaction modelChange 'Add bsplineCurve07'


{
node User.Objects.bsplineCurve07
Bentley.GC.Features.BSplineCurve
{
Technique
=
'ExtractRegionUsingParameterSpan';
OriginalCurve

= curve02;

ParameterSpanToExtract

= {0,1};

AutoHideInputs

= true;

GraphLocation
140.41124608618};

= <auto> {3160.0, -

}
}

transaction modelChange 'Add bsplineCurve08'


{
node User.Objects.bsplineCurve08
Bentley.GC.Features.BSplineCurve
{
Technique

= 'Offset';

CurveToOffset

= bsplineCurve07;

OffsetMethod

= OffsetMethod.ByDistance;

OffsetPoint0

= polygon01.Vertices[0];

OffsetDistance

= diaBar/20;

OffsetPoint1

= null;

[146] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

NumberOfSamples

= -1;

TurnsCount

= 0;

OffsetMode

= OffsetMode.Miter;

GraphLocation
13.6054205804867};

= <auto> {3160.0,

}
}

transaction modelChange 'Add barraCorrugada02'


{
node User.Objects.barraCorrugada02 User.barraCorrugada
{
Technique

= 'ByDefault';

curvSUP

= bsplineCurve10;

barraCS_T

= 0;

diametro

= 6;

GraphLocation
140.41124608618};

= <auto> {3160.0, -

}
}

transaction modelChange 'Add bsplineCurve11'


{
node User.Objects.bsplineCurve11
Bentley.GC.Features.BSplineCurve
{
Technique
=
'ExtractRegionUsingParameterSpan';
OriginalCurve

= line02;

ParameterSpanToExtract

= {0,1};

AutoHideInputs

= true;

GraphLocation
140.41124608618};

= <auto> {1340.0, -

}
}

transaction modelChange 'Add barraCorrugada03, line07'

Anexos [147]

{
node User.Objects.barraCorrugada03 User.barraCorrugada
{
Technique

= 'ByDefault';

curvSUP

= bsplineCurve11;

barraCS_T

= 0;

diametro

= 6;

GraphLocation
140.41124608618};

= <auto> {1600.0, -

}
node User.Objects.line07 Bentley.GC.Features.Line
{
Technique

= 'ByPoints';

StartPoint
=
barraCorrugada03.bsplineCurve03[1].EndPoint;
EndPoint
=
barraCorrugada03.curvINF.EndPoint;
GraphLocation
140.41124608618};

= <auto> {1860.0, -

}
}

transaction modelChange 'Add circle02'


{
node User.Objects.circle02 Bentley.GC.Features.Circle
{
Technique

= 'ByCenterRadius';

CenterPoint

= polygon01.Vertices;

Radius

= diaBar/20;

Support
coordinateSystem01.XYPlane;

GraphLocation
140.41124608618};

= <auto> {3420.0, -

}
}

transaction modelChange 'Change circle01, coordinateSystem01,


diaBar, point05, point06, polygon01'

[148] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

{
node User.Objects.polygon01 Bentley.GC.Features.Polygon
{
Technique

= 'ByVertices';

Visible

= false;

}
node User.Objects.coordinateSystem01
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'FromPolygonVertices';

Visible

= false;

}
node User.Objects.diaBar Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Visible

= false;

}
node User.Objects.circle01 Bentley.GC.Features.Circle
{
Technique

= 'ByCenterRadius';

Visible

= false;

}
node User.Objects.point05 Bentley.GC.Features.Point
{
Technique

= 'ByParameterAlongCurve';

Visible

= false;

}
node User.Objects.point06 Bentley.GC.Features.Point
{
Technique

= 'ByParameterAlongCurve';

Visible

= false;

}
}

transaction modelChange 'Change diaBar'


{

Anexos [149]

node User.Objects.diaBar Bentley.GC.Features.GraphVariable


{
Technique

= 'EvaluateExpression';

Value

= 18;

}
}

transaction modelChange 'Change bsplineCurve09,


bsplineCurve10, bsplineCurve11'
{
node User.Objects.bsplineCurve10
Bentley.GC.Features.BSplineCurve
{
GraphLocation
1149.26453501785};

= {2871.90529201473,

}
node User.Objects.bsplineCurve09
Bentley.GC.Features.BSplineCurve
{
GraphLocation
276.81926139526};

= {2785.1001913635, -

}
node User.Objects.bsplineCurve11
Bentley.GC.Features.BSplineCurve
{
GraphLocation
159.012339082873};

= {1302.79781400661, -

}
}

transaction generateFeatureType 'Generate feature type viga'


{
type

= User.viga;

addAssemblyToDesignFile

= true;

addAssemblyToUserLibrary

= true;

inputProperties

= {

property
Bentley.GC.Features.Polygon polygon01

[150] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

{
feature
= User.Objects.polygon01;
isReplicatable
= true;
isParentNodeScope
= true;
}
property int diaBar
{
feature
= User.Objects.diaBar;
}
};
outputProperties

= {

property
Bentley.GC.Features.BSplineCurve bsplineCurve05
{
feature
= User.Objects.bsplineCurve05;
isDynamic
= true;
}
property
Bentley.GC.Features.Curve curve02
{
feature
= User.Objects.curve02;
isDynamic
= true;
}
property
User.barraCorrugada barraCorrugada01
{
feature
= User.Objects.barraCorrugada01;
isDynamic
= true;
}
property
Bentley.GC.Features.BSplineCurve bsplineCurve07

Anexos [151]

{
feature
= User.Objects.bsplineCurve07;
isConstruction
= true;
isDynamic
= true;
}
property
Bentley.GC.Features.BSplineCurve bsplineCurve08
{
feature
= User.Objects.bsplineCurve08;
isConstruction
= true;
isDynamic
= true;
}
property
User.barraCorrugada barraCorrugada02
{
feature
= User.Objects.barraCorrugada02;
isDynamic
= true;
}
property
User.barraCorrugada barraCorrugada03
{
feature
= User.Objects.barraCorrugada03;
isDynamic
= true;
}
property
Bentley.GC.Features.Line line07
{
feature
= User.Objects.line07;
isConstruction
= true;

[152] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

isDynamic
= true;
}
property
Bentley.GC.Features.Circle circle02
{
feature
= User.Objects.circle02;
isDynamic
= true;
}
};
internalProperties

= {

property
Bentley.GC.Features.CoordinateSystem coordinateSystem01
{
feature
= User.Objects.coordinateSystem01;
isDynamic
= true;
}
property
Bentley.GC.Features.Circle circle01
{
feature
= User.Objects.circle01;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point05
{
feature
= User.Objects.point05;
isDynamic
= true;
}
property
Bentley.GC.Features.Line line02
{

Anexos [153]

feature
= User.Objects.line02;
isDynamic
= true;
}
property
Bentley.GC.Features.Line line01
{
feature
= User.Objects.line01;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point06
{
feature
= User.Objects.point06;
isDynamic
= true;
}
property
Bentley.GC.Features.Line line05
{
feature
= User.Objects.line05;
isDynamic
= true;
}
property
Bentley.GC.Features.BSplineCurve bsplineCurve03
{
feature
= User.Objects.bsplineCurve03;
isDynamic
= true;
}
property
Bentley.GC.Features.Line line04
{

[154] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

feature
= User.Objects.line04;
isDynamic
= true;
}
property
Bentley.GC.Features.BSplineCurve bsplineCurve02
{
feature
= User.Objects.bsplineCurve02;
isDynamic
= true;
}
property
Bentley.GC.Features.Line line03
{
feature
= User.Objects.line03;
isDynamic
= true;
}
property
Bentley.GC.Features.BSplineCurve bsplineCurve01
{
feature
= User.Objects.bsplineCurve01;
isDynamic
= true;
}
property
Bentley.GC.Features.Line line06
{
feature
= User.Objects.line06;
isDynamic
= true;
}
property
Bentley.GC.Features.BSplineCurve bsplineCurve04
{

Anexos [155]

feature
= User.Objects.bsplineCurve04;
isDynamic
= true;
}
property
Bentley.GC.Features.Curve curve01
{
feature
= User.Objects.curve01;
isDynamic
= true;
}
property
Bentley.GC.Features.BSplineCurve bsplineCurve10
{
feature
= User.Objects.bsplineCurve10;
isDynamic
= true;
}
property
Bentley.GC.Features.BSplineCurve bsplineCurve06
{
feature
= User.Objects.bsplineCurve06;
isDynamic
= true;
}
property
Bentley.GC.Features.BSplineCurve bsplineCurve09
{
feature
= User.Objects.bsplineCurve09;
isDynamic
= true;
}
property
Bentley.GC.Features.BSplineCurve bsplineCurve11
{

[156] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

feature
= User.Objects.bsplineCurve11;
isDynamic
= true;
}
};
}

transaction modelChange 'Change diaBar'


{
node User.Objects.diaBar Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 12;

}
}

transaction modelChange 'Add curve03; change curve02',


suppressed
{
node User.Objects.curve02 Bentley.GC.Features.Curve
{
GraphLocation
744.064537122433};

= {3472.73431863509,

}
node User.Objects.curve03 Bentley.GC.Features.Curve
{
Technique

= 'CompositeCurves';

Curves

= {curve01,curve02};

AutoHideInputs

= true;

GraphLocation
570.069301081394};
}
}

= {3777.2259817069,

Anexos [157]

Anexo 1.5. Vigueta semirresistente


transaction modelChange 'Add point01, point02, point03,
point04'
{
node User.Objects.point01 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 0;

YTranslation

= <free> 0;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 40.0};

}
node User.Objects.point02 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 12;

YTranslation

= <free> 0;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 220.87};

}
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 12;

YTranslation

= <free> 20;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 401.74};

}
node User.Objects.point04 Bentley.GC.Features.Point

[158] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 0;

YTranslation

= <free> 20;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 582.61};

}
}

transaction modelChange 'Add polygon01'


{
node User.Objects.polygon01 Bentley.GC.Features.Polygon
{
Technique

= 'ByVertices';

VertexPoints
=
{point01,point02,point03,point04};
Fill

= false;

ForcePlanar

= false;

PlaneIndex

= 1;

TextStyle

= null;

Key

= "";

GraphLocation

= <auto> {560.0, 40.0};

}
}

transaction modelChange 'Change baseCS, point01, point02,


point03, point04, polygon01'
{
node User.Objects.baseCS
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'AtModelOrigin';

Visible

= false;

GraphLocation
341.013620071685};

= {20.8445878136201,

Anexos [159]

}
node User.Objects.point04 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
node User.Objects.point02 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
node User.Objects.point01 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
node User.Objects.polygon01 Bentley.GC.Features.Polygon
{
GraphLocation
261.655483870968};

= {581.891899641577,

}
}

transaction modelChange 'Add coordinateSystem01'


{
node User.Objects.coordinateSystem01
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'FromPolygonVertices';

Polygon

= polygon01;

IndexOfOriginVertex

= 0;

[160] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Invert
TransformOption
TransformOption.Orthogonal;
GraphLocation

= false;
=
= <auto> {800.84458781362,

40.0};
}
}

transaction modelChange 'Add point05, point06, polygon02'


{
node User.Objects.point05 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin
=
{polygon01.Vertices[0],polygon01.Vertices[1]};
Direction
coordinateSystem01.YDirection;

DistanceFromOrigin

= 4;

GraphLocation

= <auto> {1060.84458781362,

40.0};
}
node User.Objects.polygon02 Bentley.GC.Features.Polygon
{
Technique

= 'ByVertices';

VertexPoints
=
{polygon01.Vertices[0],polygon01.Vertices[1],point05[1],point0
5[0]};
Fill

= false;

ForcePlanar

= false;

PlaneIndex

= 1;

TextStyle

= null;

Key

= "";

GraphLocation

= <auto> {1320.84458781362,

40.0};
}
node User.Objects.point06 Bentley.GC.Features.Point
{
Technique

= 'CentroidOfSet';

Anexos [161]

SetToFindCentroidFrom

= polygon02.Vertices;

GraphLocation

= <auto> {1580.84458781362,

40.0};
}
}

transaction modelChange 'Add point07'


{
node User.Objects.point07 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin
Direction
coordinateSystem01.XDirection;

= point06;
=

DistanceFromOrigin

= {2,-2};

GraphLocation

= <auto> {1580.84458781362,

180.59};
}
}

transaction modelChange 'Add circle01'


{
node User.Objects.circle01 Bentley.GC.Features.Circle
{
Technique

= 'ByCenterRadius';

CenterPoint

= point07;

Radius

= 0.3;

Support
coordinateSystem01.XYPlane;
GraphLocation

=
= <auto> {1840.84458781362,

40.0};
}
}

transaction modelChange 'Add point08'


{
node User.Objects.point08 Bentley.GC.Features.Point

[162] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= polygon01.Vertices[2];

Direction

= polygon01.Vertices[3];

DistanceFromOrigin
=
Distance(polygon01.Vertices[2],polygon01.Vertices[3])/2;
GraphLocation

= <auto> {2100.84458781362,

40.0};
}
}

transaction modelChange 'Add point09'


{
node User.Objects.point09 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point08;

Direction

= point06;

DistanceFromOrigin

= 0.35;

GraphLocation
207.443333333333};

= <auto> {2100.84458781362,

}
}

transaction modelChange 'Add circle02; change


coordinateSystem01, polygon01'
{
node User.Objects.polygon01 Bentley.GC.Features.Polygon
{
Technique

= 'ByVertices';

Visible

= false;

}
node User.Objects.coordinateSystem01
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'FromPolygonVertices';

Anexos [163]

Visible

= false;

}
node User.Objects.circle02 Bentley.GC.Features.Circle
{
Technique

= 'ByCenterRadius';

CenterPoint

= point09;

Radius

= 0.35;

Support
coordinateSystem01.XYPlane;
GraphLocation

=
= <auto> {2360.84458781362,

40.0};
}
}

transaction modelChange 'Add coordinateSystem02'


{
node User.Objects.coordinateSystem02
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'ByOriginXPoint';

Origin

= point09;

XPoint

= point07;

GraphLocation

= <auto> {2620.84458781362,

40.0};
}
}

transaction modelChange 'Add point10, point11, point12,


point13; change coordinateSystem02, point06, point07, point08,
point09'
{
node User.Objects.point06 Bentley.GC.Features.Point
{
Technique

= 'CentroidOfSet';

Visible

= false;

}
node User.Objects.point07 Bentley.GC.Features.Point
{

[164] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point08 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point09 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.coordinateSystem02
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'ByOriginXPoint';

Visible

= false;

}
node User.Objects.point10 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point09;

Direction
=
coordinateSystem02[1].YDirection;
DistanceFromOrigin

= {-0.55,-0.35};

GraphLocation

= <auto> {2880.84458781362,

40.0};
}
node User.Objects.point11 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point09;

Anexos [165]

Direction
=
coordinateSystem02[0].YDirection;
DistanceFromOrigin
GraphLocation
194.016666666667};

= {0.55,0.35};
= <auto> {2880.84458781362,

}
node User.Objects.point12 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point07[1];

Direction
=
coordinateSystem02[1].YDirection;
DistanceFromOrigin
GraphLocation
348.033333333333};

= {0.3,0.5};
= <auto> {2880.84458781362,

}
node User.Objects.point13 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point07[0];

Direction
=
coordinateSystem02[0].YDirection;
DistanceFromOrigin

= {-0.3,-0.5};

GraphLocation

= <auto> {2880.84458781362,

502.05};
}
}

transaction modelChange 'Add polygon03, polygon04; change


point05, point10, point11, point12, point13'
{
node User.Objects.point05 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible
}

= false;

[166] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

node User.Objects.point13 Bentley.GC.Features.Point


{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point12 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point11 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point10 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.polygon03 Bentley.GC.Features.Polygon
{
Technique
VertexPoints
point10[1], point10[0]};

= 'ByVertices';
= {point12[0], point12[1],

Fill

= false;

ForcePlanar

= false;

PlaneIndex

= 1;

TextStyle

= null;

Key

= "";

GraphLocation

= <auto> {3140.84458781362,

40.0};
}
node User.Objects.polygon04 Bentley.GC.Features.Polygon

Anexos [167]

{
Technique

= 'ByVertices';

VertexPoints
point11[0], point11[1]};

= {point13[1], point13[0],

Fill

= false;

ForcePlanar

= false;

PlaneIndex

= 1;

TextStyle

= null;

Key

= "";

GraphLocation

= <auto> {3140.84458781362,

180.59};
}
}

transaction generateFeatureType 'Generate feature type


Vigueta'
{
type

= User.Vigueta;

addAssemblyToDesignFile

= true;

addAssemblyToUserLibrary

= true;

inputProperties

= {

property
Bentley.GC.Features.Polygon polygon01
{
feature
= User.Objects.polygon01;
isReplicatable
= true;
isParentNodeScope
= true;
}
};
outputProperties

= {

property
Bentley.GC.Features.Polygon polygon02
{
feature
= User.Objects.polygon02;

[168] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

isDynamic
= true;
}
property
Bentley.GC.Features.Circle circle01
{
feature
= User.Objects.circle01;
isDynamic
= true;
}
property
Bentley.GC.Features.Circle circle02
{
feature
= User.Objects.circle02;
isDynamic
= true;
}
property
Bentley.GC.Features.Polygon polygon04
{
feature
= User.Objects.polygon04;
isDynamic
= true;
}
property
Bentley.GC.Features.Polygon polygon03
{
feature
= User.Objects.polygon03;
isDynamic
= true;
}
};
internalProperties

= {

property
Bentley.GC.Features.CoordinateSystem coordinateSystem01
{

Anexos [169]

feature
= User.Objects.coordinateSystem01;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point06
{
feature
= User.Objects.point06;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point05
{
feature
= User.Objects.point05;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point07
{
feature
= User.Objects.point07;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point08
{
feature
= User.Objects.point08;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point09
{

[170] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

feature
= User.Objects.point09;
isDynamic
= true;
}
property
Bentley.GC.Features.CoordinateSystem coordinateSystem02
{
feature
= User.Objects.coordinateSystem02;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point13
{
feature
= User.Objects.point13;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point12
{
feature
= User.Objects.point12;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point11
{
feature
= User.Objects.point11;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point10
{

Anexos [171]

feature
= User.Objects.point10;
isDynamic
= true;
}
};
}

[172] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Anexo 2. Cdigo del detalle constructivo


// Bentley GenerativeComponents Transaction File -- File
structure version 1.21. (Please do not delete or change this
line.)

environment
{
GCVersion

= '08.11.09.157';

MSVersion

= '08.11.09.357';

MSProject

= 'GC_Default';

MSDesignFile
= 'C:\Users\usuario\Google
Drive\Arquitectura Tcnica\Formacin\Ingenieria de
Edificacin\PFG Rafa\Detalle 1\PIlar_forjado_20141013.dgn';
}

transaction modelChange '===== CONTORNO ========='


{
}

transaction modelChange 'Se preparan las variables del


detalle'
{
node User.Objects.barraCompDiam
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 6;

LimitValueToRange

= true;

RangeMinimum

= 6.0;

RangeMaximum

= 25.0;

RangeStepSize

= 1.0;

GraphLocation
363.601736432982};

= {55.9318218604559, -

}
node User.Objects.Espesor
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Anexos [173]

Value

= 30.0;

LimitValueToRange

= true;

RangeMinimum

= 25;

RangeMaximum

= 50;

RangeStepSize

= 5;

GraphLocation
798.937648411648};

= {38.138214180455, -

}
node User.Objects.Longitud
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 150;

LimitValueToRange

= true;

RangeMinimum

= 100;

RangeMaximum

= 1000;

RangeStepSize

= 0.0;

GraphLocation
939.527648411648};

= {38.138214180455, -

}
node User.Objects.pilarAncho
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 25;

LimitValueToRange

= true;

RangeMinimum

= 25.0;

RangeMaximum

= 100.0;

RangeStepSize

= 5.0;

GraphLocation
1072.23804841165};

= {35.8050301804553, -

}
node User.Objects.pilarPos
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 30.0;

LimitValueToRange

= true;

[174] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

RangeMinimum

= 5.0;

RangeMaximum

= Longitud-pilarAncho;

RangeStepSize

= 0.0;

GraphLocation
1065.16723829965};

= {345.908582180455, -

}
node User.Objects.pilarLong
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 40;

LimitValueToRange

= true;

RangeMinimum

= 0.0;

RangeMaximum

= 1000.0;

RangeStepSize

= 0.0;

GraphLocation
512.425768091648};

= {48.1877501804554, -

}
node User.Objects.capaCompresionEsp
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 5.0;

LimitValueToRange

= true;

RangeMinimum

= 0.0;

RangeMaximum

= 20.0;

RangeStepSize

= 5.0;

GraphLocation
654.697952411648};

= {40.5622781804555, -

}
}

transaction modelChange 'Se dibuja la parte inferior del


forjado'
{
node User.Objects.point01 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Anexos [175]

CoordinateSystem

= baseCS;

XTranslation

= <free> 9.98819858385346;

YTranslation

= <free> 4.62659092503477;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation
64.5094399999999};

= {309.95328, -

}
node User.Objects.forjadoINF Bentley.GC.Features.Line
{
Technique
'ByStartPointDirectionLength';

StartPoint

= point01;

Direction

= baseCS.XDirection;

Length

= Longitud;

GraphLocation

= {610.98112, 35.02336};

}
}

transaction modelChange 'Se dibujala parte superior del


forjado'
{
node User.Objects.point02 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point01;

Direction

= baseCS.YDirection;

DistanceFromOrigin

= Espesor;

GraphLocation

= <auto> {1080.0, 40.0};

}
node User.Objects.forjadoSUP Bentley.GC.Features.Line
{
Technique
'ByStartPointDirectionLength';

StartPoint

= point02;

Direction

= baseCS.XDirection;

[176] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Length

= Longitud;

GraphLocation

= <auto> {1340.0, 40.0};

}
}

transaction modelChange 'Interseccion del pilar con el


forjado'
{
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point01;

Direction

= baseCS.XDirection;

DistanceFromOrigin

= pilarPos;

GraphLocation
207.443333333333};

= <auto> {1080.0,

}
node User.Objects.point04 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point03;

Direction

= baseCS.XDirection;

DistanceFromOrigin

= pilarAncho;

GraphLocation

= <auto> {2380.0, 40.0};

}
}

transaction modelChange 'Se dibuja el pilar'


{
node User.Objects.line01 Bentley.GC.Features.Line
{
Technique
'ByStartPointDirectionLength';

StartPoint

= point03;

Direction

= baseCS.YDirection;

Anexos [177]

Length

= -pilarLong;

GraphLocation

= <auto> {2900.0, 40.0};

}
node User.Objects.line02 Bentley.GC.Features.Line
{
Technique
'ByStartPointDirectionLength';

StartPoint

= point04;

Direction

= baseCS.YDirection;

Length

= -pilarLong;

GraphLocation
207.443333333333};

= <auto> {2900.0,

}
}

transaction modelChange 'Se dibujan las polilneas de la


seccin'
{
node User.Objects.forjadoINF Bentley.GC.Features.Line
{
Technique
'ByStartPointDirectionLength';
Visible

=
= false;

}
node User.Objects.poliSup Bentley.GC.Features.PolyLine
{
Technique

= 'ByVertices';

Vertices
=
{forjadoSUP.EndPoint,forjadoSUP.StartPoint,point01,point03,
line01.StartPoint, line01.EndPoint};
LevelName

= 'Seccion';

LineWeight

= 2;

GraphLocation
207.443333333333};

= <auto> {1080.0,

}
node User.Objects.polInf Bentley.GC.Features.PolyLine
{
Technique

= 'ByVertices';

[178] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Vertices
=
{line02.EndPoint,line02.StartPoint,forjadoINF.EndPoint};
LevelName

= 'Seccion';

LineWeight

= 2;

GraphLocation
348.033333333333};

= <auto> {1080.0,

}
}

transaction modelChange '===== CAPA COMPRESION ==='


{
}

transaction modelChange 'Add capaCompresionEsp, point05'


{
node User.Objects.point05 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= forjadoSUP.StartPoint;

Direction

= baseCS.YDirection;

DistanceFromOrigin

= -capaCompresionEsp;

GraphLocation

= <auto> {2120.0, 180.59};

}
}

transaction modelChange 'Add capaCompresion'


{
node User.Objects.capaCompresion Bentley.GC.Features.Line
{
Technique
'ByStartPointDirectionLength';

StartPoint

= point05;

Direction

= baseCS.XDirection;

Length

= Longitud;

LevelName

= "lineasInteriores";

Anexos [179]

GraphLocation
207.443333333333};

= <auto> {2380.0,

}
}

transaction modelChange 'Add barraCompDiam, point06; change


capaCompresionEsp, pilarLong'
{
node User.Objects.pilarLong
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 40.0;

}
node User.Objects.capaCompresionEsp
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 5.0;

}
node User.Objects.point06 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point02;

Direction

= baseCS.YDirection;

DistanceFromOrigin
Distance(point02,point05)/2;
GraphLocation

= = <auto> {2640.0, 180.59};

}
}

transaction modelChange 'Add recubrimiento'


{
node User.Objects.recubrimiento
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

[180] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Value

= 5;

LimitValueToRange

= true;

RangeMinimum

= 3.0;

RangeMaximum

= 15.0;

RangeStepSize
GraphLocation
515.476666666666};

= 1.0;
= <auto> {2900.0,

}
}

transaction modelChange 'Add point07'


{
node User.Objects.point07 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point06;

Direction

= baseCS.YDirection;

DistanceFromOrigin

= barraCompDiam/20;

Color

= Colors.White;

FillColor

= color();

Free

= true;

LevelName

= 'Seccion';

Level

= 64;

LineStyleName

= '0';

LineStyle

= 0;

LineWeight

= 0;

MaximumReplication

= true;

Transparency

= 0.0;

GraphLocation

= <auto> {3160.0, 40.0};

}
}

transaction modelChange 'Change barraCompDiam, Longitud,


pilarAncho, pilarPos, recubrimiento'
{

Anexos [181]

node User.Objects.Longitud
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 145.0;

}
node User.Objects.barraCompDiam
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 6.0;

}
node User.Objects.recubrimiento
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 5.0;

}
node User.Objects.pilarAncho
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 25.0;

}
node User.Objects.pilarPos
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 28.0;

}
}

transaction modelChange 'Add point08'


{
node User.Objects.point08 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';

[182] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Origin

= point07;

Direction

= baseCS.XDirection;

DistanceFromOrigin

= recubrimiento;

GraphLocation
207.443333333333};

= <auto> {3160.0,

}
}

transaction modelChange 'Add line03'


{
node User.Objects.line03 Bentley.GC.Features.Line
{
Technique
'ByStartPointDirectionLength';

StartPoint

= point08;

Direction

= baseCS.XDirection;

Length

= Longitud-recubrimiento;

GraphLocation

= <auto> {3420.0, 40.0};

}
}

transaction modelChange 'Add bsplineCurve01'


{
node User.Objects.bsplineCurve01
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoints';

Points
=
{line03.StartPoint,line03.EndPoint};
MakePeriodic
GraphLocation
-1072.23804841165};

= false;
= <auto> {815.805030180455,

}
}

transaction modelChange 'Add mallazo01'


{

Anexos [183]

node User.Objects.mallazo01 User.Mallazo


{
Technique

= 'ByDefault';

diametro

= barraCompDiam;

mallazo

= 15;

bsplineCurve01

= bsplineCurve01;

coordinateSystem01_T

= 0;

GraphLocation
-1072.23804841165};

= <auto> {815.805030180455,

}
}

transaction modelChange '===== PILAR ================'


{
}

transaction modelChange 'Change pilarAncho, pilarPos,


recubrimiento'
{
node User.Objects.recubrimiento
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 5.0;

}
node User.Objects.pilarAncho
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 25.0;

}
node User.Objects.pilarPos
Bentley.GC.Features.GraphVariable
{

Technique

= 'EvaluateExpression';

Value

= 30.0;

[184] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

transaction modelChange 'Add pilarDiamBar'


{
node User.Objects.pilarDiamBar
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 12.0;

LimitValueToRange

= true;

RangeMinimum

= 6.0;

RangeMaximum

= 25.0;

RangeStepSize

= 0.0;

GraphLocation
-1072.23804841165};

= <auto> {1075.80503018046,

}
}

transaction modelChange 'Aado los puntos de inicio de las


barras del pilar'
{
node User.Objects.point09 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= poliSup.EndPoint;

Direction

= baseCS.XDirection;

DistanceFromOrigin
recubrimiento+pilarDiamBar/10;

GraphLocation
-1072.23804841165};

= <auto> {1075.80503018046,

}
node User.Objects.point10 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= polInf.StartPoint;

Direction

= baseCS.XDirection;

Anexos [185]

DistanceFromOrigin
GraphLocation
-904.794715078317};

= -recubrimiento;
= <auto> {1075.80503018046,

}
}

transaction modelChange 'Aados los puntos de final de las


barras del pilar'
{
node User.Objects.point11 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point09;

Direction

= baseCS.YDirection;

DistanceFromOrigin
capaCompresionEsp-recubrimiento;

= pilarLong+Espesor-

GraphLocation
-737.351381744984};

= <auto> {1075.80503018046,

}
node User.Objects.point12 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point10;

Direction

= baseCS.YDirection;

DistanceFromOrigin
= pilarLong+EspesorcapaCompresionEsp-recubrimiento-pilarDiamBar/10;
GraphLocation
-569.90804841165};

= <auto> {1075.80503018046,

}
}

transaction modelChange 'Add point13, point14'


{
node User.Objects.point14 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';

[186] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Origin

= point11;

Direction

= baseCS.YDirection;

DistanceFromOrigin

= -pilarAncho/4;

GraphLocation
-904.794715078317};

= <auto> {1335.80503018046,

}
node User.Objects.point17 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point11;

Direction

= baseCS.YDirection;

DistanceFromOrigin

= -pilarAncho/8;

GraphLocation
-904.794715078317};

= <auto> {1335.80503018046,

}
node User.Objects.point13 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point11;

Direction

= baseCS.XDirection;

DistanceFromOrigin
recubrimiento/2;

= pilarAncho/2-

GraphLocation
-1072.23804841165};

= <auto> {1335.80503018046,

}
node User.Objects.point16 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point11;

Direction

= baseCS.XDirection;

DistanceFromOrigin
recubrimiento)/2;

= (pilarAncho/2-

GraphLocation
-1072.23804841165};

= <auto> {1335.80503018046,

}
node User.Objects.point18 Bentley.GC.Features.Point

Anexos [187]

{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point12;

Direction

= baseCS.XDirection;

DistanceFromOrigin
recubrimiento/2);

= -(pilarAncho/2-

GraphLocation
-1072.23804841165};

= <auto> {1335.80503018046,

}
node User.Objects.point19 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point12;

Direction

= baseCS.XDirection;

DistanceFromOrigin
recubrimiento)/2);

= -((pilarAncho/2-

GraphLocation
-1072.23804841165};

= <auto> {1335.80503018046,

}
node User.Objects.point20 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point12;

Direction

= baseCS.YDirection;

DistanceFromOrigin

= -pilarAncho/8;

GraphLocation
-904.794715078317};

= <auto> {1335.80503018046,

}
node User.Objects.point21 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point12;

Direction

= baseCS.YDirection;

DistanceFromOrigin

= -pilarAncho/4;

[188] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

GraphLocation
-904.794715078317};

= <auto> {1335.80503018046,

}
}

transaction modelChange 'Add point15'


{
node User.Objects.point15 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point03;

Direction

= baseCS.XDirection;

DistanceFromOrigin
recubrimiento+pilarDiamBar/10;

GraphLocation
-737.351381744983};

= <auto> {1335.80503018046,

}
}

transaction modelChange 'Aado las curvas que dan lugar a las


barras'
{
node User.Objects.bsplineCurve02
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoints';

Points

= {point17, point09};

MakePeriodic

= false;

GraphLocation
-1072.23804841165};

= <auto> {1335.80503018046,

}
node User.Objects.bsplineCurve03
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoints';

Points

= {point20, point10};

MakePeriodic

= false;

Anexos [189]

GraphLocation
-931.64804841165};

= <auto> {1335.80503018046,

}
}

transaction modelChange 'Add bsplineCurve09'


{
node User.Objects.bsplineCurve09
Bentley.GC.Features.BSplineCurve
{
Technique
Poles
point11,point16};

= 'ByPoles';
= {point17,

Order

= 0;

InputKnots

= null;

InputWeights

= null;

MakePeriodic

= false;

GraphLocation
-1072.23804841165};

= <auto> {1855.80503018046,

}
}

transaction modelChange 'Add bsplineCurve10'


{
node User.Objects.bsplineCurve10
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoles';

Poles

= {point20,point12,point19};

Order

= 0;

InputKnots

= null;

InputWeights

= null;

MakePeriodic

= false;

GraphLocation
-1072.23804841165};
}
}

= <auto> {1595.80503018046,

[190] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

transaction modelChange 'La parte recta del final de la barra'


{
node User.Objects.bsplineCurve04
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoints';

Points

= {point13, point16};

MakePeriodic

= false;

GraphLocation
-1072.23804841165};

= <auto> {1855.80503018046,

}
node User.Objects.bsplineCurve05fin
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoints';

Points

= {point18, point19};

MakePeriodic

= false;

GraphLocation
-1072.23804841165};

= <auto> {1855.80503018046,

}
}

transaction modelChange 'Se aade la lnea sobre la que se


soportarn las distintas barras a mas de 25cm'
{
node User.Objects.line05 Bentley.GC.Features.Line
{
Technique

= 'ByPoints';

StartPoint

= point09;

EndPoint

= point10;

GraphLocation
-1072.23804841165};

= <auto> {2115.80503018046,

}
}

transaction modelChange 'Add point22'


{
node User.Objects.point22 Bentley.GC.Features.Point

Anexos [191]

{
Technique

= 'ByFunction';

Function

= function (Line line) {


Point myPoint = {};
myPoint = new

Point(this);
int numBarras=0;
if (line.Length > 25){

if (line.Length >
30 && line.Length <= 60) {
numBarras = 3;
}
if (line.Length >
60 && line.Length <= 90) {
numBarras = 4;
}
if (line.Length >
90 && line.Length <= 120) {
numBarras = 5;
}

myPoint.ByNumberAlongCurve(line,numBarras,NumberAlongCurveOpti
on.ArcLength,false,false);

}
};
FunctionArguments
GraphLocation
-1072.23804841165};

= {line05};
= <auto> {2375.80503018046,

}
}

transaction modelChange 'Add point23'


{
node User.Objects.point23 Bentley.GC.Features.Point
{

[192] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point22;

Direction

= baseCS.YDirection;

DistanceFromOrigin

= bsplineCurve02.Length;

GraphLocation
-918.221381744983};

= <auto> {2375.80503018046,

}
}

transaction modelChange 'Se hace la curva de las barras


intermedias'
{
node User.Objects.bsplineCurve06
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoints';

Points

= {point23,point22};

MakePeriodic

= false;

GraphLocation
-1072.23804841165};

= <auto> {2635.80503018046,

}
}

transaction modelChange 'Hago una curva uniendo todas las


dems'
{
node User.Objects.curve01 Bentley.GC.Features.Curve
{
Technique
Curves
bsplineCurve09, bsplineCurve02};
AutoHideInputs
GraphLocation
-1072.23804841165};

= 'CompositeCurves';
= {bsplineCurve04,
= true;
= <auto> {2115.80503018046,

}
node User.Objects.curve02 Bentley.GC.Features.Curve
{

Anexos [193]

Technique
Curves
bsplineCurve10, bsplineCurve03};
AutoHideInputs
GraphLocation
-1072.23804841165};

= 'CompositeCurves';
= {bsplineCurve05fin,
= true;
= <auto> {2115.80503018046,

}
}

transaction modelChange 'Add bsplineCurve05'


{
node User.Objects.bsplineCurve05
Bentley.GC.Features.BSplineCurve
{
Technique
=
'ExtractRegionUsingParameterSpan';
OriginalCurve

= curve01;

ParameterSpanToExtract

= {0,1};

AutoHideInputs

= true;

GraphLocation
-1072.23804841165};

= <auto> {2375.80503018046,

}
node User.Objects.bsplineCurve07
Bentley.GC.Features.BSplineCurve
{
Technique
=
'ExtractRegionUsingParameterSpan';
OriginalCurve

= curve02;

ParameterSpanToExtract

= {0,1};

AutoHideInputs

= true;

GraphLocation
-1072.23804841165};

= <auto> {2375.80503018046,

}
}

transaction modelChange 'Add barraCorrugada01,


barraCorrugada02, barraCorrugada03'
{
node User.Objects.barraCorrugada01 User.barraCorrugada

[194] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

{
Technique

= 'ByDefault';

curvSUP

= bsplineCurve05;

barraCS_T

= 0;

diametro

= pilarDiamBar;

GraphLocation
-1072.23804841165};

= <auto> {1595.80503018046,

}
node User.Objects.barraCorrugada02 User.barraCorrugada
{
Technique

= 'ByDefault';

curvSUP

= bsplineCurve07;

barraCS_T

= 0;

diametro

= pilarDiamBar;

GraphLocation
-918.221381744983};

= <auto> {1595.80503018046,

}
node User.Objects.barraCorrugada03 User.barraCorrugada
{
Technique

= 'ByDefault';

curvSUP

= bsplineCurve06;

barraCS_T

= 0;

diametro

= pilarDiamBar;

GraphLocation
-918.221381744983};

= <auto> {1595.80503018046,

}
}

transaction modelChange 'Change pilarPos', suppressed


{
node User.Objects.pilarPos
Bentley.GC.Features.GraphVariable
{

}
}

Technique

= 'EvaluateExpression';

Value

= 11;

Anexos [195]

transaction modelChange 'Add point24'


{
node User.Objects.point24 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point15;

Direction

= baseCS.XDirection;

DistanceFromOrigin

= -pilarDiamBar/10;

GraphLocation
-1072.23804841165};

= <auto> {2895.80503018046,

}
}

transaction modelChange 'Add line06'


{
node User.Objects.line06 Bentley.GC.Features.Line
{
Technique
'ByStartPointDirectionLength';

StartPoint

= point24;

Direction

= baseCS.YDirection;

Length

= pilarLong<100?-pilarLong:-

100;
GraphLocation
-1072.23804841165};

= <auto> {3155.80503018046,

}
}

transaction modelChange 'Add point25; change pilarLong'


{
node User.Objects.pilarLong
Bentley.GC.Features.GraphVariable
{

Technique

= 'EvaluateExpression';

Value

= 80;

[196] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

node User.Objects.point25 Bentley.GC.Features.Point


{
Technique

= 'ByFunction';

Function

= function (Line line) {


Point myPoint = {};

//Se declara el punto


myPoint = new
Point(this); //Se le dice al programa que este punto es la
salida de la funcin
int diam =
pilarDiamBar/10 * 15; //Se almacena en la variable diam el
valor de 15 veces el diametro de la barra del pilar
int dimension =
pilarAncho;
int minimo;
int separacion;
if (diam > dimension){
minimo =
dimension;
}
else {
minimo = diam;
}

if (minimo<30) {
separacion =
minimo;
}
else {
separacion = 30;
}

myPoint.ByDistanceAlongCurve(line,Series(0,line.Length*2,separacion)/2);

};
FunctionArguments

= {line06};

Anexos [197]

GraphLocation
-1072.23804841165};

= <auto> {3415.80503018046,

}
}

transaction modelChange 'Add point26'


{
node User.Objects.point26 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point25;

Direction

= baseCS.XDirection;

DistanceFromOrigin
line05.Length+pilarDiamBar/10;

GraphLocation
-918.221381744983};

= <auto> {3415.80503018046,

}
}

transaction modelChange 'Se oculta todo'


{
node User.Objects.baseCS
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'AtModelOrigin';

Visible

= false;

}
node User.Objects.point01 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

[198] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

}
node User.Objects.point15 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point24 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point25 Bentley.GC.Features.Point
{
Technique

= 'ByFunction';

Visible

= false;

}
node User.Objects.point02 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point09 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point04 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point10 Bentley.GC.Features.Point

Anexos [199]

{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.line05 Bentley.GC.Features.Line
{
Technique

= 'ByPoints';

Visible

= false;

}
node User.Objects.point26 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point11 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point17 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point12 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point18 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';

[200] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Visible

= false;

}
node User.Objects.point19 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point20 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point13 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point16 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point21 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point14 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible
}

= false;

Anexos [201]

node User.Objects.point05 Bentley.GC.Features.Point


{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point06 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point07 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point08 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
}

transaction modelChange 'Add bsplineCurve08'


{
node User.Objects.bsplineCurve08
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoints';

Points

= {point25,point26};

MakePeriodic

= false;

GraphLocation
-1072.23804841165};
}
}

= <auto> {3675.80503018046,

[202] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

transaction modelChange 'Change barraCompDiam, Longitud,


pilarDiamBar'
{
node User.Objects.barraCompDiam
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 6.0;

}
node User.Objects.Longitud
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 145.0;

}
node User.Objects.pilarDiamBar
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 11.89;

}
}

transaction modelChange 'Add barraCorrugada04'


{
node User.Objects.barraCorrugada04 User.barraCorrugada
{
Technique

= 'ByDefault';

curvSUP

= bsplineCurve08;

barraCS_T

= 0;

diametro
=
pilarDiamBar/4<6?6:pilarDiamBar/4;
GraphLocation
-1072.23804841165};
}
}

= <auto> {3935.80503018046,

Anexos [203]

transaction modelChange 'Change line05'


{
node User.Objects.line05 Bentley.GC.Features.Line
{
Technique

= 'ByPoints';

Visible

= false;

}
}

transaction modelChange 'Change pilarLong'


{
node User.Objects.pilarLong
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 20;

}
}

transaction modelChange 'Change recubrimiento'


{
node User.Objects.recubrimiento
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 3.0;

}
}

transaction modelChange 'Change pilarLong'


{
node User.Objects.pilarLong
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 40;

[204] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

}
}

transaction modelChange '===== VIGA ============='


{
}

transaction modelChange 'Add point27, vigaDiamBar'


{
node User.Objects.vigaDiamBar
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 12;

LimitValueToRange

= true;

RangeMinimum

= 12.0;

RangeMaximum

= 25.0;

RangeStepSize

= 1.0;

GraphLocation
-918.221381744983};

= <auto> {2115.80503018046,

}
node User.Objects.point27 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= {point03,point04};

Direction

= baseCS.YDirection;

DistanceFromOrigin
recubrimiento+vigaDiamBar/10;

GraphLocation
-931.64804841165};

= <auto> {1855.80503018046,

}
}

transaction modelChange 'Add point28'


{
node User.Objects.point28 Bentley.GC.Features.Point

Anexos [205]

{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point27;

Direction

= baseCS.YDirection;

DistanceFromOrigin
= Espesor-capaCompresionEsp2*(recubrimiento+vigaDiamBar/10);
GraphLocation
-750.77804841165};

= <auto> {2375.80503018046,

}
}

transaction modelChange 'Add polygon01'


{
node User.Objects.polygon01 Bentley.GC.Features.Polygon
{
Technique
Function
p2, Point p3, Point p4) {

= 'ByFunction';
= function (Point p1, Point

Polygon poligono = {};

//Se crea la lnea que


une los dos puntos 27
Line linea = {};
linea = new Line();
linea.ByPoints(point27[0],point27[1]);

//Se divide la lnea


en segmentos en funcion de la longitud de la misma
Point abajo = {};
abajo = new Point();

int numBarras=0;

if (linea.Length >
30 && linea.Length <= 60) {

[206] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

numBarras = 3;
}
if (linea.Length >
60 && linea.Length <= 90) {
numBarras = 4;
}
if (linea.Length >
90 && linea.Length <= 120) {
numBarras = 5;
}
abajo.ByNumberAlongCurve(linea,numBarras,NumberAlongCur
veOption.ArcLength,false,false);

//Se crea la replica


del punto arriba
Point arriba = {};
arriba = new Point();

arriba.ByDirectionAndDistanceFromOrigin(abajo,baseCS.YDirectio
n,Distance(point27[0],point28[0]));
Print(abajo);
if
(Distance(p1,p4)<=30){
poligono = new
Polygon(this);
poligono.ByVertices({p1,p2,p3,p4});
}
if (Distance(p1,p4)>30
&& Distance(p1,p4)<=60){
poligono[0] = new
Polygon(this);
poligono[0].ByVertices({p1,p2,arriba[0],abajo[0]});
poligono[1] = new
Polygon(this);
poligono[1].ByVertices({p4,p3,arriba[0],abajo[0]});
}

Anexos [207]

if (Distance(p1,p4)>60
&& Distance(p1,p4)<=90){
poligono[0] = new
Polygon(this);
poligono[0].ByVertices({p1,p2,arriba[0],abajo[0]});
poligono[1] = new
Polygon(this);
poligono[1].ByVertices({abajo[1],arriba[1],arriba[0],abajo[0]}
);
poligono[2] = new
Polygon(this);
poligono[2].ByVertices({p4,p3,arriba[1],abajo[1]});
}
if (Distance(p1,p4)>90
&& Distance(p1,p4)<=120){
poligono[0] = new
Polygon(this);
poligono[0].ByVertices({p1,p2,arriba[0],abajo[0]});
poligono[1] = new
Polygon(this);
poligono[1].ByVertices({abajo[1],arriba[1],arriba[0],abajo[0]}
);
poligono[2] = new
Polygon(this);
poligono[2].ByVertices({abajo[2],arriba[2],arriba[1],abajo[1]}
);
poligono[3] = new
Polygon(this);
poligono[3].ByVertices({p4,p3,arriba[2],abajo[2]});
}
};
FunctionArguments
=
{point27[0],point28[0],point28[1],point27[1]};
GraphLocation
-764.204715078316};
}

= <auto> {1595.80503018046,

[208] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

transaction modelChange 'Se ocultan los elementos'


{
node User.Objects.point22 Bentley.GC.Features.Point
{
Technique

= 'ByFunction';

Visible

= false;

}
node User.Objects.point23 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point27 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point28 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.line04 Bentley.GC.Features.Line
{
Technique

= 'ByPoints';

Visible

= false;

}
node User.Objects.point29 Bentley.GC.Features.Point
{
Technique

= 'ByFunction';

Visible

= false;

Anexos [209]

}
node User.Objects.point30 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.polygon01 Bentley.GC.Features.Polygon
{
Technique

= 'ByFunction';

Visible

= false;

}
}

transaction modelChange 'Add viga01'


{
node User.Objects.viga01 User.viga
{
Technique

= 'ByDefault';

polygon01

= polygon01;

diaBar

= 18;

GraphLocation
-764.204715078317};

= <auto> {1855.80503018046,

}
}

transaction modelChange 'Change pilarAncho'


{
node User.Objects.pilarAncho
Bentley.GC.Features.GraphVariable
{

}
}

Technique

= 'EvaluateExpression';

Value

= 25;

[210] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

transaction modelChange 'Change polygon01'


{
node User.Objects.polygon01 Bentley.GC.Features.Polygon
{
Technique

= 'ByFunction';

Visible

= false;

}
}

transaction modelChange '=====Zuncho============'


{
}

transaction modelChange 'Add point31, point32'


{
node User.Objects.point31 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point01;

Direction

= baseCS.XDirection;

DistanceFromOrigin
=
{recubrimiento+vigaDiamBar/10,25};
GraphLocation
-777.631381744983};

= <auto> {2115.80503018046,

}
node User.Objects.point32 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point31;

Direction

= baseCS.YDirection;

DistanceFromOrigin
=
{recubrimiento+vigaDiamBar/10,Espesor-capaCompresionEsprecubrimiento-vigaDiamBar/10};
Replication
=
ReplicationOption.AllCombinations;

Anexos [211]

GraphLocation
-610.18804841165};

= <auto> {2115.80503018046,

}
}

transaction modelChange 'Add point38'


{
node User.Objects.point38 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point32[0][0];

Direction

= baseCS.XDirection;

DistanceFromOrigin
=
SeriesByCount(0,Distance(point32[0][0],point27[0]),Distance(po
int32[0][0],point27[0])/70+2);
GraphLocation
-442.744715078317};

= <auto> {2115.80503018046,

}
}

transaction modelChange 'Add point39'


{
node User.Objects.point39 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point38;

Direction

= baseCS.YDirection;

DistanceFromOrigin
= Espesor-capaCompresionEsp2*(recubrimiento+vigaDiamBar/10);
GraphLocation
-275.301381744984};

= <auto> {2115.80503018046,

}
}

transaction modelChange 'Add polygon02'


{

[212] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

node User.Objects.polygon02 Bentley.GC.Features.Polygon


{
Technique

= 'ByFunction';

Function

= function (Point p1, Point

p2) {
Polygon poligono = {};

if
(Distance(point32[0][0],point27[0])<=5) {
//No tiene que
ocurrir nada, ya que no es necesario un zuncho
}
if
(Distance(point32[0][0],point27[0])>5 &&
Distance(point32[0][0],point27[0])<=20){
poligono[0] = new
Polygon(this);
poligono[0].ByVertices({point32[0][0],point32[1][0],point32[1]
[1],point32[0][1]});
}

if
(Distance(point32[0][0],point27[0])>20 &&
Distance(point32[0][0],point27[0])<=80){
Print("Point38.Count = " + p1.Count);
for (int
i=0;i<p1.Count-1;i++) {
poligono[i] = new Polygon(this);
poligono[i].ByVertices({p1[i],p1[i+1],p2[i+1],p2[i]});
}
}

if
(Distance(point32[0][0],point27[0])>80){ //Se define la
situacin en que el zuncho est exento de la viga

Anexos [213]

poligono = new
Polygon(this);
poligono.ByVertices({point32[0][0],point32[1][0],point32[1][1]
,point32[0][1]});
}
};
FunctionArguments
GraphLocation
-583.334715078317};

= {point38,point39};
= <auto> {2375.80503018046,

}
}

transaction modelChange 'Se ocultan point38, point39'


{
node User.Objects.point38 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point39 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
}

transaction modelChange 'Add viga02; change polygon02'


{
node User.Objects.polygon02 Bentley.GC.Features.Polygon
{
GraphLocation
583.334715078317};

= {2602.8156708202, -

}
node User.Objects.viga02 User.viga
{

[214] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Technique

= 'ByDefault';

polygon01
=
polygon02.Count==0?null:polygon02;
diaBar
GraphLocation
-931.64804841165};

= 16;
= <auto> {2635.80503018046,

}
}

transaction modelChange 'Change polygon02'


{
node User.Objects.polygon02 Bentley.GC.Features.Polygon
{
Technique

= 'ByFunction';

Visible

= false;

}
}

transaction modelChange 'Change point31, point32'


{
node User.Objects.point31 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point32 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
}

transaction modelChange '=====Viguetas


Transversales=============='
{

Anexos [215]

transaction modelChange 'Add point33'


{
node User.Objects.point33 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point04;

Direction

= baseCS.XDirection;

DistanceFromOrigin

= 10;

GraphLocation
-904.794715078317};

= <auto> {2895.80503018046,

}
}

transaction modelChange 'Add entrevigado; change vigaDiamBar'


{
node User.Objects.vigaDiamBar
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 12.0;

}
node User.Objects.entrevigado
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 70;

LimitValueToRange

= true;

RangeMinimum

= 60.0;

RangeMaximum

= 90.0;

RangeStepSize

= 5.0;

GraphLocation
-904.794715078317};
}
}

= <auto> {3155.80503018046,

[216] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

transaction modelChange 'Change Longitud, point33'


{
node User.Objects.Longitud
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 200;

}
node User.Objects.point33 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
DistanceFromOrigin
= Series(10,LongitudpilarPos-pilarAncho,entrevigado);
}
}

transaction modelChange 'Add point34, point35'


{
node User.Objects.point34 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point33;

Direction

= baseCS.XDirection;

DistanceFromOrigin

= 12;

GraphLocation
-750.77804841165};

= <auto> {3415.80503018046,

}
node User.Objects.point35 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point33;

Direction

= baseCS.YDirection;

DistanceFromOrigin

= 19;

Anexos [217]

GraphLocation
-596.761381744983};

= <auto> {3415.80503018046,

}
node User.Objects.point35b Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point34;

Direction

= baseCS.YDirection;

DistanceFromOrigin

= 19;

GraphLocation
-596.761381744983};

= <auto> {3415.80503018046,

}
}

transaction modelChange 'Add polygon03'


{
node User.Objects.polygon03 Bentley.GC.Features.Polygon
{
Technique

= 'ByVertices';

VertexPoints
=
{point33,point34,point35b,point35};
Fill

= false;

ForcePlanar

= false;

PlaneIndex

= 1;

TextStyle

= null;

Key

= "";

GraphLocation
-931.64804841165};

= <auto> {3675.80503018046,

}
}

transaction modelChange 'Add vigueta01'


{
node User.Objects.vigueta01 User.Vigueta
{
Technique

= 'ByDefault';

[218] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

polygon01
GraphLocation
-918.221381744983};

= polygon03;
= <auto> {3935.80503018046,

}
}

transaction modelChange 'Change point35, point35b, polygon03'


{
node User.Objects.point35 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point35b Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.polygon03 Bentley.GC.Features.Polygon
{
Technique

= 'ByVertices';

Visible

= false;

}
}

transaction modelChange 'Add coordinateSystem01'


{
node User.Objects.coordinateSystem01
Bentley.GC.Features.CoordinateSystem
{
Technique
'ByOriginCoordinateSystem';

Origin

= point34;

CoordinateSystem

= baseCS;

GraphLocation
-764.204715078317};

= <auto> {3155.80503018046,

Anexos [219]

}
}

transaction modelChange 'Add bovedilla01; change entrevigado'


{
node User.Objects.entrevigado
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 65;

}
node User.Objects.bovedilla01 User.Bovedilla
{
Technique

= 'ByDefault';

frontalCS

= Rest(coordinateSystem01);

Entrevigado

= entrevigado;

Altura

= 22;

bsplineCurve01_Order

= 2;

GraphLocation
-1072.23804841165};

= <auto> {4195.80503018046,

}
}

transaction modelChange 'Change Longitud'


{
node User.Objects.Longitud
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 250;

}
}

transaction modelChange '======Vigueta


Longitudinal==============='
{
}

[220] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

transaction modelChange 'Add point36'


{
node User.Objects.point36 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point03;

Direction

= baseCS.XDirection;

DistanceFromOrigin

= {-10,-pilarPos+35};

GraphLocation
-442.744715078316};

= <auto> {3415.80503018046,

}
}

transaction modelChange 'Add point37'


{
node User.Objects.point37 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point36;

Direction

= baseCS.YDirection;

DistanceFromOrigin

= 4;

GraphLocation
-275.301381744983};

= <auto> {3415.80503018046,

}
}

transaction modelChange 'Change capaCompresionEsp, Espesor,


pilarPos', suppressed
{
node User.Objects.Espesor
Bentley.GC.Features.GraphVariable
{

Technique

= 'EvaluateExpression';

Value

= 35;

Anexos [221]

node User.Objects.pilarPos
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 5;

}
node User.Objects.capaCompresionEsp
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 10;

}
}

transaction modelChange 'Change pilarLong, pilarPos'


{
node User.Objects.pilarPos
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 100;

}
node User.Objects.pilarLong
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 60;

}
}

transaction modelChange 'Change capaCompresionEsp,


entrevigado, Espesor, Longitud'
{
node User.Objects.Espesor
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 35.0;

[222] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

}
node User.Objects.Longitud
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 244.0;

}
node User.Objects.capaCompresionEsp
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 10.0;

}
node User.Objects.entrevigado
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 65.0;

}
}

transaction modelChange 'Add polygon05'


{
node User.Objects.polygon05 Bentley.GC.Features.Polygon
{
Technique

= 'ByFunction';

Function

= function () {
Polygon contorno = {};

if
(Distance(point32[0][0],point27[0])>80) {
contorno = new
Polygon(this);
contorno.ByVertices({point36[1],point36[0],point37[0],point37[
1]});
Print("Se dibuja
la vigueta");
}

Anexos [223]

else {
Print("No se dibuja la
vigueta");
//No se dibuja nada
}

};
FunctionArguments
GraphLocation
-791.05804841165};

= {};
= <auto> {3675.80503018046,

}
}

transaction modelChange 'Change pilarPos', suppressed


{
node User.Objects.pilarPos
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 5;

}
}

transaction modelChange 'Change pilarPos', suppressed


{
node User.Objects.pilarPos
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 30;

}
}

transaction modelChange 'Add point40, point41'


{
node User.Objects.point40 Bentley.GC.Features.Point
{

[224] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point36[0];

Direction

= baseCS.YDirection;

DistanceFromOrigin
=
Distance(point36[0],point37[0])/2;
GraphLocation
-777.631381744983};

= <auto> {3935.80503018046,

}
node User.Objects.point41 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin
=
viga01[0].circle02[0].CenterPoint;
Direction

= baseCS.YDirection;

DistanceFromOrigin

= 3;

GraphLocation
-610.18804841165};

= <auto> {3935.80503018046,

}
}

transaction modelChange 'Add point42'


{
node User.Objects.point42 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point36[1];

Direction

= baseCS.YDirection;

DistanceFromOrigin
=
Distance(point36[0],point37[0])/2;
GraphLocation
-456.171381744983};

= <auto> {3935.80503018046,

}
}

transaction modelChange 'Add bsplineCurve12, point43'


{

Anexos [225]

node User.Objects.point43 Bentley.GC.Features.Point


{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin
=
viga02[0].circle02[1].CenterPoint;
Direction

= baseCS.YDirection;

DistanceFromOrigin
=
Distance(point36[0],point37[0])/2;
GraphLocation
-288.72804841165};

= <auto> {3935.80503018046,

}
node User.Objects.bsplineCurve12
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoints';

Points

= {point43,point42};

MakePeriodic

= false;

GraphLocation
-904.794715078317};

= <auto> {4195.80503018046,

}
}

transaction modelChange 'Add bsplineCurve11'


{
node User.Objects.bsplineCurve11
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoints';

Points

= {point41,point40};

MakePeriodic

= false;

GraphLocation
-904.794715078317};

= <auto> {4195.80503018046,

}
}

transaction modelChange 'Add barraCorrugada05'


{

[226] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

node User.Objects.barraCorrugada05 User.barraCorrugada


{
Technique

= 'ByDefault';

curvSUP

= bsplineCurve11;

barraCS_T

= 0;

diametro

= 6;

Visible
=
Distance(point32[0][0],point27[0])<80?false:true;
GraphLocation
-1072.23804841165};

= <auto> {4455.80503018046,

}
}

transaction modelChange 'Add barraCorrugada06'


{
node User.Objects.barraCorrugada06 User.barraCorrugada
{
Technique

= 'ByDefault';

curvSUP

= bsplineCurve12;

barraCS_T

= 0;

diametro

= 6;

Visible
=
Distance(point32[0][0],point27[0])<80?false:true;
GraphLocation
-918.221381744983};

= <auto> {4455.80503018046,

}
}

transaction modelChange 'Add point44'


{
node User.Objects.point44 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point37[0];

Direction

= baseCS.XDirection;

DistanceFromOrigin

= -3;

Anexos [227]

GraphLocation
-1072.23804841165};

= <auto> {4715.80503018046,

}
}

transaction modelChange 'Add point45'


{
node User.Objects.point45 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point44;

Direction

= baseCS.XDirection;

DistanceFromOrigin
= Series(0,Distance(point37[1],point37[0])-6,20);
GraphLocation
-918.221381744983};

= <auto> {4715.80503018046,

}
}

transaction modelChange 'Add point46'


{
node User.Objects.point46 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point45;

Direction

= baseCS.XDirection;

DistanceFromOrigin

= -17;

GraphLocation
-750.77804841165};

= <auto> {4715.80503018046,

}
}

transaction modelChange 'Add point47, point48'


{
node User.Objects.point47 Bentley.GC.Features.Point
{

[228] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point45;

Direction

= baseCS.XDirection;

DistanceFromOrigin

= -17/2;

GraphLocation
-596.761381744983};

= <auto> {4715.80503018046,

}
node User.Objects.point48 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point47;

Direction

= baseCS.YDirection;

DistanceFromOrigin

= 15;

GraphLocation
-442.744715078317};

= <auto> {4715.80503018046,

}
}

transaction modelChange 'Add bsplineCurve13'


{
node User.Objects.bsplineCurve13
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoints';

Points

= {point45,point48,point46};

MakePeriodic

= false;

GraphLocation
-1072.23804841165};

= <auto> {4975.80503018046,

}
}

transaction modelChange 'Add barraCorrugada07'


{
node User.Objects.barraCorrugada07 User.barraCorrugada
{
Technique

= 'ByDefault';

Anexos [229]

curvSUP

= bsplineCurve13;

barraCS_T

= 0;

diametro

= 4;

Visible
=
Distance(point32[0][0],point27[0])<80?false:true;
GraphLocation
-1072.23804841165};

= <auto> {5235.80503018046,

}
}

transaction modelChange 'Change pilarPos', suppressed


{
node User.Objects.pilarPos
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 20;

}
}

transaction modelChange 'Add point49, point50'


{
node User.Objects.point49 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= Last(point48);

Direction

= baseCS.XDirection;

DistanceFromOrigin

= -20;

GraphLocation
-1072.23804841165};

= <auto> {5495.80503018046,

}
node User.Objects.point50 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= First(point48);

Direction

= baseCS.XDirection;

[230] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

DistanceFromOrigin
GraphLocation
-918.221381744983};

= 30;
= <auto> {5495.80503018046,

}
}

transaction modelChange 'Add bsplineCurve14'


{
node User.Objects.bsplineCurve14
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoints';

Points

= {point49,point50};

MakePeriodic

= false;

GraphLocation
-1072.23804841165};

= <auto> {5755.80503018046,

}
}

transaction modelChange 'Add barraCorrugada08'


{
node User.Objects.barraCorrugada08 User.barraCorrugada
{
Technique

= 'ByDefault';

curvSUP

= bsplineCurve14;

barraCS_T

= 0;

diametro

= 6;

Visible
=
Distance(point32[0][0],point27[0])<80?false:true;
GraphLocation
-1072.23804841165};

= <auto> {6015.80503018046,

}
}

transaction modelChange '=====Bovedilla==================='


{
}

Anexos [231]

transaction modelChange 'Add point51'


{
node User.Objects.point51 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin
=
Sublist(point47,0,point47.Count-1);
Direction

= baseCS.XDirection;

DistanceFromOrigin

= -20;

GraphLocation
-1072.23804841165};

= <auto> {6275.80503018046,

}
}

transaction modelChange 'Add point52,53'


{
node User.Objects.point52 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin
=
Sublist(point47,0,point47.Count-1);
Direction

= baseCS.YDirection;

DistanceFromOrigin

= 18;

GraphLocation
-918.221381744983};

= <auto> {6275.80503018046,

}
node User.Objects.point53 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point51;

Direction

= baseCS.YDirection;

DistanceFromOrigin
GraphLocation
-918.221381744983};

= 18;
= <auto> {6275.80503018046,

[232] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

}
}

transaction modelChange 'Add polyLine01'


{
node User.Objects.polyLine01 Bentley.GC.Features.PolyLine
{
Technique

= 'ByVertices';

Vertices
=
{point52,Sublist(point47,0,point47.Count1),point51,point53,point52};
GraphLocation
1072.23804841165};

= {6535.80503018046, -

Visible
=
Distance(point32[0][0],point27[0])>80?true:false;
}
}

transaction modelChange 'Change pilarPos', suppressed


{
node User.Objects.pilarPos
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 5;

}
}

transaction modelChange 'Change Longitud, pilarPos',


suppressed
{
node User.Objects.Longitud
Bentley.GC.Features.GraphVariable
{

Technique

= 'EvaluateExpression';

Value

= 300;

Anexos [233]

node User.Objects.pilarPos
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 120;

}
}

transaction modelChange 'Change barraCorrugada07, point32,


point36, point37, point40, point41, point42, point43, point44,
point45, point46, point47, point48, point49, point50'
{
node User.Objects.point32 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point36 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point37 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point40 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point41 Bentley.GC.Features.Point
{

[234] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point42 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point43 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point44 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point45 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point46 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point47 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';

Anexos [235]

Visible

= false;

}
node User.Objects.point48 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point49 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point50 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
}

transaction modelChange 'Change pilarPos', suppressed


{
node User.Objects.pilarPos
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 10;

}
}

transaction script '=====Negativo======================='


{

[236] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

transaction modelChange 'Add bsplineCurve15, point54, point55,


point56; change point51, point52, point53'
{
node User.Objects.point51 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point52 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point53 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point54 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 12.1430265917765;

YTranslation

= <free> 18.4207938523651;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation
-1072.23804841165};

= <auto> {6795.80503018046,

}
node User.Objects.point55 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 14.4596443437569;

Anexos [237]

YTranslation

= <free> 27.968319328625;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation
-891.36804841165};

= <auto> {6795.80503018046,

}
node User.Objects.point56 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 17.0185861283712;

YTranslation

= 28;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation
-710.49804841165};

= <auto> {6795.80503018046,

}
node User.Objects.bsplineCurve15
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoints';

Points

= {point54,point55,point56};

MakePeriodic

= false;

GraphLocation
-1072.23804841165};

= <auto> {7055.80503018046,

}
}

transaction modelChange 'Add bsplineCurve16, point57'


{
node User.Objects.point57 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point56;

Direction

= baseCS.XDirection;

DistanceFromOrigin

= Longitud-15;

[238] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

GraphLocation
-1072.23804841165};

= <auto> {7315.80503018046,

}
node User.Objects.bsplineCurve16
Bentley.GC.Features.BSplineCurve
{
Technique

= 'ByPoints';

Points

= {point56,point57};

MakePeriodic

= false;

GraphLocation
-1072.23804841165};

= <auto> {7575.80503018046,

}
}

transaction modelChange 'Add curve03'


{
node User.Objects.curve03 Bentley.GC.Features.Curve
{
Technique
Curves
{bsplineCurve15,bsplineCurve16};
AutoHideInputs
GraphLocation
-1072.23804841165};

= 'CompositeCurves';
=
= true;
= <auto> {7835.80503018046,

}
}

transaction modelChange 'Add bsplineCurve17'


{
node User.Objects.bsplineCurve17
Bentley.GC.Features.BSplineCurve
{
Technique
=
'ExtractRegionUsingParameterSpan';
OriginalCurve

= curve03;

ParameterSpanToExtract

= {0,1};

AutoHideInputs

= true;

Anexos [239]

GraphLocation
-1072.23804841165};

= <auto> {8095.80503018046,

}
}

transaction modelChange 'Add barraCorrugada09; change point54,


point55, point56'
{
node User.Objects.point54 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

XTranslation

= <free> 14.6631965311694;

}
node User.Objects.point55 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

XTranslation

= <free> 16.9410424379284;

YTranslation

= <free> 27.8130750119378;

}
node User.Objects.point56 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

XTranslation

= <free> 19.6938434486498;

}
node User.Objects.barraCorrugada09 User.barraCorrugada
{
Technique

= 'ByDefault';

curvSUP

= bsplineCurve17;

barraCS_T

= 0;

diametro

= 12;

GraphLocation
-1072.23804841165};

= <auto> {8355.80503018045,

}
}

transaction modelChange 'Change point54, point55, point56'

[240] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

{
node User.Objects.point54 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
node User.Objects.point55 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
node User.Objects.point56 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
}

transaction modelChange
'=====Texto============================'
{
}

transaction modelChange 'Add coordinateSystem02, point58'


{
node User.Objects.coordinateSystem02
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 17.2439283759215;

YTranslation

= <free> -48.1484151089707;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation
-402.464715078317};

= <auto> {1075.80503018046,

Anexos [241]

}
node User.Objects.point58 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= coordinateSystem02;

XTranslation

= 0;

YTranslation

= SeriesByCount(0,45,11);

ZTranslation

= 0;

Origin

= null;

GraphLocation
-569.90804841165};

= <auto> {1335.80503018046,

}
}

transaction modelChange 'Add textStyle01'


{
node User.Objects.textStyle01
Bentley.GC.Features.TextStyle
{
Technique

= 'DefinedFormat';

Height

= 2.5;

Width

= 2.5;

OffsetX

= 0.0;

OffsetY

= 0.0;

Font

= null;

JustificationSingleLine
=
JustificationSingleLine.LeftBottom;
LineSpacing

= 1.0;

TextColor

= Colors.White;

GraphLocation
-610.188048411649};

= <auto> {1595.80503018046,

}
}

transaction modelChange 'Add text01'


{
node User.Objects.text01 Bentley.GC.Features.Text

[242] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

{
Technique
=
'ByPointOrPlaneOrCoordinateSystem';
Placement

= point58[10];

TextValue
= "Diametro de la barra de
la capa de compresion: "+barraCompDiam.Value+"mm";
TextStyle

= textStyle01;

Vertical

= false;

GraphLocation
-610.18804841165};

= <auto> {1855.80503018046,

}
node User.Objects.text02 Bentley.GC.Features.Text
{
Technique
=
'ByPointOrPlaneOrCoordinateSystem';
Placement

= point58[9];

TextValue
= "Espesor de la capa de
compresion: "+capaCompresionEsp.Value+"mm";
TextStyle

= textStyle01;

Vertical

= false;

GraphLocation
-610.18804841165};

= <auto> {1855.80503018046,

}
node User.Objects.text03 Bentley.GC.Features.Text
{
Technique
=
'ByPointOrPlaneOrCoordinateSystem';
Placement
TextValue
"+entrevigado.Value+"mm";

= point58[8];
= "Entrevigado:

TextStyle

= textStyle01;

Vertical

= false;

GraphLocation
-610.18804841165};

= <auto> {1855.80503018046,

}
node User.Objects.text04 Bentley.GC.Features.Text
{
Technique
=
'ByPointOrPlaneOrCoordinateSystem';

Anexos [243]

Placement
TextValue
"+Longitud.Value/100+"m";

= point58[7];
= "Longitud del detalle:

TextStyle

= textStyle01;

Vertical

= false;

GraphLocation
-610.18804841165};

= <auto> {1855.80503018046,

}
node User.Objects.text05 Bentley.GC.Features.Text
{
Technique
=
'ByPointOrPlaneOrCoordinateSystem';
Placement
TextValue
"+pilarAncho.Value+"cm";

= point58[6];
= "Ancho del pilar:

TextStyle

= textStyle01;

Vertical

= false;

GraphLocation
-610.18804841165};

= <auto> {1855.80503018046,

}
node User.Objects.text06 Bentley.GC.Features.Text
{
Technique
=
'ByPointOrPlaneOrCoordinateSystem';
Placement

= point58[5];

TextValue
= "Diametro de la barra
comprimida del pilar: "+pilarDiamBar.Value+"mm";
TextStyle

= textStyle01;

Vertical

= false;

GraphLocation
-610.18804841165};

= <auto> {1855.80503018046,

}
node User.Objects.text07 Bentley.GC.Features.Text
{
Technique
=
'ByPointOrPlaneOrCoordinateSystem';
Placement
TextValue
"+pilarAncho.Value+"cm";

= point58[4];
= "Longitud del pilar:

[244] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

TextStyle

= textStyle01;

Vertical

= false;

GraphLocation
-610.18804841165};

= <auto> {1855.80503018046,

}
node User.Objects.text08 Bentley.GC.Features.Text
{
Technique
=
'ByPointOrPlaneOrCoordinateSystem';
Placement

= point58[3];

TextValue
= "Posicion del pilar desde
el voladizo: "+pilarPos.Value+"cm";
TextStyle

= textStyle01;

Vertical

= false;

GraphLocation
-610.18804841165};

= <auto> {1855.80503018046,

}
node User.Objects.text09 Bentley.GC.Features.Text
{
Technique
=
'ByPointOrPlaneOrCoordinateSystem';
Placement
TextValue
"+recubrimiento+"cm";

= point58[2];
= "Recubrimiento:

TextStyle

= textStyle01;

Vertical

= false;

GraphLocation
-610.18804841165};

= <auto> {1855.80503018046,

}
node User.Objects.text10 Bentley.GC.Features.Text
{
Technique
=
'ByPointOrPlaneOrCoordinateSystem';
Placement

= point58[1];

TextValue
= "Diametro de la barra de
la viga: "+vigaDiamBar.Value+"mm";
TextStyle

= textStyle01;

Vertical

= false;

Anexos [245]

GraphLocation
-610.18804841165};

= <auto> {1855.80503018046,

}
}

transaction modelChange 'Change point58'


{
node User.Objects.point58 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
}

transaction modelChange 'Change coordinateSystem02'


{
node User.Objects.coordinateSystem02
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'ByCartesianCoordinates';

XTranslation

= <free> 9.92907569887918;

YTranslation

= <free> 43.5541081931703;

}
}

transaction modelChange 'Change coordinateSystem02'


{
node User.Objects.coordinateSystem02
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
}

transaction modelChange
'=====Animaciones========================'

[246] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

{
}

transaction modelChange 'Change pilarPos', suppressed


{
node User.Objects.pilarPos
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 120;

}
}

transaction modelChange 'Change pilarPos', suppressed


{
node User.Objects.pilarPos
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 30;

}
}

transaction modelChange 'Change pilarPos'


{
node User.Objects.pilarPos
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 5;

}
}

transaction modelChange 'Change Longitud'


{
node User.Objects.Longitud
Bentley.GC.Features.GraphVariable

Anexos [247]

{
Technique

= 'EvaluateExpression';

Value

= 280.0;

}
}

transaction script 'New script transaction'


{
int segundos = 15;
double img = 25;
int frames = segundos*img;

//Se define la variable


string variable = pilarPos;
double min = pilarPos.RangeMinimum;
double max = pilarPos.RangeMaximum;
double step = pilarPos.RangeStepSize;

//Se opera
double rango = max-min;
pilarPos.Value=min;
UpdateGraph();
for (int i = 0; i< frames; i++) {
pilarPos.Value = min + i*rango/frames;
SaveViewToImageFile(1, 1080,
"C:/Users/usuario/Dropbox/dcp/capturas/"+variable+"/"+variable
+"-" + i + ".jpg");
UpdateGraph();
}
}

[248] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Anexo 3. Generacin de la portada


Definicin del entorno
Variables

altura: altura del modelo en el eje Y.


o

Inicio: 0 mm

Final: 100 mm

Paso: 0 mm

giro: giro de los cuadrados


o

Inicio: 0 mm

Final: 100 mm

Paso: 0 mm

apertura: tamao de los cuadrados


o

Inicio: 0 mm

Final: 100 mm

Paso: 0 mm

Desarrollo del modelo generativo


En primer lugar se hace una matriz de puntos de 20x10 puntos a partir de
una serie de puntos en diagonal al que se le aplica una replicacin.
A partir de esta matriz de puntos se crea un conjunto de polgonos que
usa los puntos como vrtices.
Se calcula el centroide de cada polgono y usandolo como comienzo se
traza una lnea en la direccin del eje Z cuya longitud depende de la
distancia a otro punto que se usar como atractor que se llama "point02",
es la lnea "line01".
En cada centroide se coloca, adems, un sistema de coordenadas que
toma como base el sistema de coordenadas principal y le aplica un giro
definido con la frmula:
line01.Length*giro

Anexos [249]

Por lo que el giro depender, adems de la variable giro, de la longitud de


la lnea 01.
Se trazan cuatro puntos a partir del centroide basados en el sistema de
coordenadas girado que formarn los vrtices de un nuevo polgono. La
distancia entre estos puntos est determinada por la variable apertura que
divide a la longitud de la lnea 01:
line01.Length/apertura

Luego se crea una superficie usando los polgonos finales.

Ilustracin 36. Imagen final del resultado del diseo de la portada


usando GC. Elaboracin propia.

Cdigo del modelo


// Bentley GenerativeComponents Transaction File -- File
structure version 1.21. (Please do not delete or change this
line.)

environment
{
GCVersion

= '08.11.09.157';

MSVersion

= '08.11.09.357';

MSProject

= 'GC_Default';

[250] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

MSDesignFile
= 'C:\Users\usuario\Google
Drive\Arquitectura Tcnica\Formacin\Ingenieria de
Edificacin\PFG Rafa\Portada\portadaPFG.dgn';
}

transaction modelChange 'Add point01'


{
node User.Objects.point01 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= Series(0,80,4);

YTranslation

= Series(0,40,4);

ZTranslation

= 0;

Origin

= null;

Replication
=
ReplicationOption.AllCombinations;
GraphLocation

= <auto> {300.0, 40.0};

}
}

transaction modelChange 'Add polygon01'


{
node User.Objects.polygon01 Bentley.GC.Features.Polygon
{

Technique

= 'ByPointGrid';

Points

= point01;

Fill

= false;

SkipAlternates

= false;

FacetOption

= FacetOption.Quads;

PlaneIndex

= 1;

TextStyle

= null;

UClosed

= false;

VClosed

= false;

GraphLocation

= <auto> {560.0, 40.0};

Anexos [251]

transaction modelChange 'Add point02'


{
node User.Objects.point02 Bentley.GC.Features.Point
{
Technique

= 'CentroidOfSet';

SetToFindCentroidFrom

= polygon01.Vertices;

GraphLocation

= <auto> {820.0, 40.0};

}
}

transaction modelChange 'Add point03'


{
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 12.0569421656741;

YTranslation

= <free> 16.1699104640786;

ZTranslation

= <free> -9.03728241466236;

Origin

= null;

GraphLocation

= <auto> {820.0, 180.59};

}
}

transaction modelChange 'Add altura'


{
node User.Objects.altura Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 25;

LimitValueToRange

= true;

RangeMinimum

= 0.0;

RangeMaximum

= 100.0;

[252] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

RangeStepSize

= 0.0;

GraphLocation

= <auto> {1080.0, 40.0};

}
}

transaction modelChange 'Add line01'


{
node User.Objects.line01 Bentley.GC.Features.Line
{
Technique
'ByStartPointDirectionLength';

StartPoint

= point02;

Direction

= baseCS.ZDirection;

Length
=
Distance(point02,point03)/4-altura;
GraphLocation

= <auto> {1080.0, 40.0};

}
}

transaction modelChange 'Change point01, point03'


{
node User.Objects.point01 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

XTranslation

= <free> 29.7264659719429;

YTranslation

= <free> 30.2194354367153;

ZTranslation

= <free> 18.7028809701038;

}
}

transaction modelChange 'Change altura'

Anexos [253]

{
node User.Objects.altura Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 17.0;

}
}

transaction modelChange 'Change altura'


{
node User.Objects.altura Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 7.0;

}
}

transaction modelChange 'Change altura'


{
node User.Objects.altura Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 4.0;

}
}

transaction modelChange 'Recent model changes'


{
node User.Objects.baseCS
Bentley.GC.Features.CoordinateSystem
{

}
}

Technique

= 'AtModelOrigin';

Visible

= false;

[254] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

transaction modelChange 'Change baseCS'


{
node User.Objects.baseCS
Bentley.GC.Features.CoordinateSystem
{
Technique

= 'AtModelOrigin';

Visible

= false;

}
}

transaction modelChange 'Add coordinateSystem01, giro'


{
node User.Objects.giro Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 27.0;

LimitValueToRange

= true;

RangeMinimum

= 0.0;

RangeMaximum

= 100.0;

RangeStepSize

= 0.0;

GraphLocation

= <auto> {1340.0, 40.0};

}
node User.Objects.coordinateSystem01
Bentley.GC.Features.CoordinateSystem
{
Technique
=
'ByOriginRotationAboutCoordinateSystem';

}
}

Origin

= point02;

CoordinateSystem

= baseCS;

RotationAngle

= line01.Length*giro;

Axis

= AxisOption.Z;

GuideRadius

= 1.0;

GraphLocation

= <auto> {1600.0, 40.0};

Anexos [255]

transaction modelChange 'Add apertura, point04, point05'


{
node User.Objects.point04 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin
Direction
coordinateSystem01.XDirection;

= point02;
=

DistanceFromOrigin

= line01.Length/apertura;

GraphLocation

= <auto> {1860.0, 40.0};

}
node User.Objects.apertura
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 5;

LimitValueToRange

= true;

RangeMinimum

= 0.0;

RangeMaximum

= 100.0;

RangeStepSize

= 0.0;

GraphLocation

= <auto> {2120.0, 40.0};

}
node User.Objects.point05 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin
Direction
coordinateSystem01.YDirection;

= point02;
=

DistanceFromOrigin

= line01.Length/apertura;

GraphLocation

= <auto> {2380.0, 40.0};

}
node User.Objects.point06 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin

= point02;

[256] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Direction
coordinateSystem01.XDirection;

DistanceFromOrigin

= -line01.Length/apertura;

GraphLocation

= <auto> {2380.0, 40.0};

}
node User.Objects.point07 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Origin
Direction
coordinateSystem01.YDirection;

= point02;
=

DistanceFromOrigin

= -line01.Length/apertura;

GraphLocation

= <auto> {2380.0, 40.0};

}
}

transaction modelChange 'Add polygon02'


{
node User.Objects.polygon02 Bentley.GC.Features.Polygon
{
Technique
VertexPoints
point07,point04, point05};

= 'ByVertices';
= { point06,

Fill

= false;

ForcePlanar

= false;

PlaneIndex

= 1;

TextStyle

= null;

Key

= "";

GraphLocation

= <auto> {2640.0, 40.0};

}
}

transaction modelChange 'Change apertura, coordinateSystem01,


giro, line01, point02, point03, point04, point05, point06,
point07'
{
node User.Objects.point02 Bentley.GC.Features.Point

Anexos [257]

{
Technique

= 'CentroidOfSet';

Visible

= false;

}
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= true;

}
node User.Objects.line01 Bentley.GC.Features.Line
{
Technique
'ByStartPointDirectionLength';
Visible

=
= false;

}
node User.Objects.giro Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 9.0;

}
node User.Objects.coordinateSystem01
Bentley.GC.Features.CoordinateSystem
{
Technique
=
'ByOriginRotationAboutCoordinateSystem';
Visible

= false;

}
node User.Objects.apertura
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 3.9;

RangeMaximum

= 10.0;

}
node User.Objects.point05 Bentley.GC.Features.Point
{

[258] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point04 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point06 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
node User.Objects.point07 Bentley.GC.Features.Point
{
Technique
=
'ByDirectionAndDistanceFromOrigin';
Visible

= false;

}
}

transaction modelChange 'Change point03'


{
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

ZTranslation

= <free> -5.53108623508088;

}
}

transaction modelChange 'Add bsplineSurface01'


{
node User.Objects.bsplineSurface01
Bentley.GC.Features.BSplineSurface

Anexos [259]

{
Technique

= 'Ruled';

StartCurve

= polygon01;

EndCurve

= polygon02;

UCurveDisplay

= 4;

VCurveDisplay

= 4;

GraphLocation

= <auto> {2900.0, 40.0};

}
}

transaction modelChange 'Change polygon01, polygon02'


{
node User.Objects.polygon01 Bentley.GC.Features.Polygon
{
Technique

= 'ByPointGrid';

Visible

= false;

}
node User.Objects.polygon02 Bentley.GC.Features.Polygon
{
Technique

= 'ByVertices';

Visible

= false;

}
}

transaction modelChange 'Change point03'


{
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

ZTranslation

= <free> 24.0406935329581;

}
}

transaction modelChange 'Change apertura, giro'


{

[260] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

node User.Objects.giro Bentley.GC.Features.GraphVariable


{
Technique

= 'EvaluateExpression';

Value

= 8.0;

}
node User.Objects.apertura
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 3.7;

}
}

transaction modelChange 'Change apertura, giro'


{
node User.Objects.giro Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 9.0;

}
node User.Objects.apertura
Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 3.0;

}
}

transaction modelChange 'Change bsplineSurface01'


{
node User.Objects.bsplineSurface01
Bentley.GC.Features.BSplineSurface
{

Technique

= 'Ruled';

Visible

= false;

Anexos [261]

transaction modelChange 'Change polygon02'


{
node User.Objects.polygon02 Bentley.GC.Features.Polygon
{
Technique

= 'ByVertices';

Visible

= true;

}
}

transaction modelChange 'Change apertura, giro, point03'


{
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

Visible

= false;

}
node User.Objects.giro Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 17.0;

}
node User.Objects.apertura
Bentley.GC.Features.GraphVariable
{

}
}

Technique

= 'EvaluateExpression';

Value

= 3.4;

[262] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Anexo 4. Generacin del documento


Debido a la singularidad del flujo de trabajo seguido para escribir este
documento, hemos creido conveniente aadir un anexo en el que se
explica cmo se ha generado.
Todo el software usado durante el proceso de escritura son herramientas
gratuitas o de cdigo abierto:

SublimeText: editor de texto gratuito muy potente y verstil.


http://www.sublimetext.com

Markdown: es un lenguaje de marcado ligero tipo LATEX creado


por John Grubber y Aaron Swartz que facilita la escritura de texto
usando caracteres reservados sencillos que mejora la legibilidad y
la marcabilidad del texto.

CSS: es un lenguaje de hojas de estilo que describe el aspecto de


un documento escrito en un lenguaje de marcado como html o
markdown.

Pandoc: herramienta de cdigo abierto que se encarga de


traducir desde cualquier lenguaje de marcado: html, markdown,
latex, mediawiki; a casi cualquier tipo de archivo: docx, pdf, html,
epub,... Pandoc es una herramienta de ventana de comandos con
multidud de opciones por lo que se hizo necesario escribir un
comando de "bash" que ayudara en la exportacin sencilla de los
borradores.

Bash: es un intrprete de comandos creado para GNU que viene


por defecto en las distrubuciones Linux y en Mac OS X. Su funcin
es interpretar rdendes. stas se pueden automatizar mediante un
script de bash.

Wkhtmltopdf: es una herramienta de cdigo libre que renderiza


cualquier pgina html en PDF usando el motor webkit con algunas
opciones extras como numeracin de pginas, cabecera y pi de
pgina...

Sejda: es un programa de lnea de comandos basado en JAVA,


gratuito, que es capaz de unir varios pdf en uno solo.

La estructura de archivos y directorios del documento es la siguiente:

Anexos [263]

exportar.sh: el script que genera el documento.

PFG.sublime-project: el archivo de SublimeText que abre todo el


proyecto para tenerlo organizado dentro del programa.

manuscript
o

0.Agradecimientos.txt

0.Cita.txt

00.configuracion.txt

1.Introduccion.txt

2.Objetivos.txt

3.Estado_de_la_cuestion.txt

4.Metodologia.txt

5.Resultados.txt

6.Conclusiones_y_recomendaciones.txt

7.Bibliografia.txt

8.Glosario.txt

9.Anexos.txt

assets
o

count.txt: archivo con el contador de exportacin.

cover.html: archivo con la portada en formato html

fonts: carpeta con las fuentes usadas en el documento

footer.html: pie de pgina del documento

header.html: cabecera del documento

portadaPFG.jpg

style.css: hoja de estilos del documento

toc-style.xsl: hoja de estilos del ndice del documento.

borradores: carpeta de exportacin de las versiones del borrador.

images: todas las imagenes usadas en el documento

El "Script de bash" que es el siguiente:


#!/bin/bash

Se obtiene la fecha desde el reloj del sistema y se almacena en la variable


`now`:
now=$(date +"%Y%m%d")

Para que cada archivo lleve un nmero de versin incremental se guarda


en un archivo `count.txt` en la ruta `manuscript/assets/`. Antes de comenzar

[264] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

a procesar el documento se recupera el valor del archivo y se almacena en


la variable `count`:
file="manuscript/assets/count.txt"
count=$(< $file)
cd manuscript

Se genera el archivo en extensin docx de MS Word para las correcciones


con el tutor. En esta cadena de texto encadena los archivos con extensin
txt que componente todo el documento y lo exporta a un archivo de word
con el siguiente nombre 093M-FECHA-Rafael_Roa-vVERSIN.docx:
echo "Generando el archivo de word"
pandoc -f markdown+implicit_figures \
00.configuracion.txt \
0.Agradecimientos.txt \
0.Cita.txt \
1.introduccion.txt \
2.Objetivos.txt \
3.Estado_de_la_cuestion.txt \
4.Metodologia.txt \
5.Resultados.txt \
6.Conclusiones_y_recomendaciones.txt \
7.Bibliografia.txt \
8.Glosario.txt \
9.Anexos.txt \
-o borradores/093M-$now-Rafael_Roa-v$count.docx -N -c
assets/style.css

Luego se exporta el documento a formato libro electrnico usando la


msma frmula:
echo "Generando el epub"
pandoc -f markdown+implicit_figures --epub-coverimage=assets/portadaPFG_red.jpg \
00.configuracion.txt \
0.Agradecimientos.txt \
0.Cita.txt \

Anexos [265]

1.introduccion.txt \
2.Objetivos.txt \
3.Estado_de_la_cuestion.txt \
4.Metodologia.txt \
5.Resultados.txt \
6.Conclusiones_y_recomendaciones.txt \
7.Bibliografia.txt \
8.Glosario.txt \
9.Anexos.txt \
-o borradores/093M-$now-Rafael_Roa-v$count.epub -N -c
assets/style.css

Y por ltimo se comienza la creacin del PDF para impresin y revisin del
formato final. Para ello en primer lugar se exporta todo el documento a
una pgina web html que contiene el formato de estilo definido en la hoja
de estilos css que he creado para la ocasin:
echo "Generando el pdf"
pandoc -f markdown_strict+implicit_figures \
0.Agradecimientos.txt \
0.Cita.txt \
1.introduccion.txt \
2.Objetivos.txt \
3.Estado_de_la_cuestion.txt \
4.Metodologia.txt \
5.Resultados.txt \
6.Conclusiones_y_recomendaciones.txt \
7.Bibliografia.txt \
8.Glosario.txt \
9.Anexos.txt \
-o 093M-Rafael_Roa.html -c assets/style.css

Una vez creada la pgina web se exporta a PDF usando `wkhtmltopdf` en


formato B5 con unos mrgenes de 3cm. En la cabecera se insertar el
documento html `header.html` y en el pie de pgina el documento
`footer.html`. En estos documentos mediante `javascript` se obtiene el

[266] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

nmero de pgina y se pasa por una funcin que devuelve `TRUE` si es


impar. En caso de que sea impar coloca los datos de la cabecera a la
derecha, y si es par a la izquierda para obtener un mejor resultado de
impresin:

wkhtmltopdf -L 24mm -R 24mm -B 30mm -T 30mm \


--page-height 250mm --page-width 176mm \
--header-html assets/header.html \
--header-spacing 10 \
--footer-html assets/footer.html \
--footer-spacing 5 \
toc --xsl-style-sheet assets/toc-style.xsl --disabledotted-lines
--toc-level-indentation 10mm 093M-Rafael_Roa.html
borradores/093M-$now-Rafael_Roa-v$count-sp.pdf

Usando Sejda se une la portada al documento pdf generado por


wkhtmltopdf

sh sejda-console/bin/sejda-console merge -f portadaPFG.pdf


borradores/093M-$now-Rafael_Roa-v$count-sp-agra.pdf
borradores/093M-$now-Rafael_Roa-v$count-sp.pdf -o
borradores/093M-$now-Rafael_Roa-v$count.pdf

Una vez terminado el proceso se borran los archivos temporales y se suma


una unidad al valor `count` del archivo en el que se lleva la cuenta de las
versiones de este documento:
rm -f 093M-Rafael_Roa.html
rm -f borradores/093M-$now-Rafael_Roa-v$count-sp.pdf
cd ..
echo $(($count + 1)) > $file

Anexos [267]

Anexo

5.

Generacin

del

componente

de

ejemplo pirmide
Se pretende crear un ejemplo sencillo que ayude a explicar el concepto de
"componente" en el mbito del diseo paramtrico. Para ello se crea en
primer lugar un componente con forma de pirmide cuya altura variar en
funcin de un parmetro "altura" y la base, poligonal, se adaptar a los
distintos polgonos planos de una superficie de doble curvatura.
Anexo 5.1. Componente pirmide
Definicin del entorno
Variables

altura: altura de la pirmide en el eje Z.


o

Inicio: 0 mm

Final: 100 mm

Paso: 0 mm

Desarrollo del modelo generativo


Para preparar el componente pirmide se situan cuatro puntos sobre el
plano XY del sistema de coordenadas y se usan como vrtices del
polgono que formar la base.
A partir de aqui, se ocultarn los cuatro puntos y se usar la referencia a
los vrtices del polgono mediante su ndice para referirse a estos en lugar
de a los puntos iniciales con los que se gener de cara a que el
componente funcione correctamente.
Se escoge el nodo punto por el mtido "centroidOfSet" y se dibuja el
centroide del polgono de la base. A partir del centroide si dibuja una
recta cuya altura es la variable "altura" y la direccin es el eje Z del sistema
de coordenadas.
Uniendo el final de dicha lnea con los vertices de la base secuencialmente
usando polgonos triangulares se obtiene una pirmide con todas sus
caras.
Se crea el componente usando como "input" el polgono de la base.

[268] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Ilustracin 37. Componente pirmide de base cuadrada para el


ejemplo. Elaboracin propia.

Cdigo del modelo


transaction modelChange 'Add bsplineSurface01, line01,
point01, point02, point03, point04, point05, polyLine01'
{
node User.Objects.point01 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 8.59452554603834;

YTranslation

= <free> 9.94389904041402;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 40.0};

}
node User.Objects.point02 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 8.80020852731908;

Anexos [269]

YTranslation

= <free> 0.107775350136013;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 220.87};

}
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 19.5368601501945;

YTranslation

= <free> 0.0666200208879808;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 401.74};

}
node User.Objects.point04 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 19.5368601501945;

YTranslation

= <free> 10.067365028158;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 582.61};

}
}

transaction modelChange 'Add altura'


{
node User.Objects.altura Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 3;

LimitValueToRange

= false;

RangeMinimum

= 0.0;

[270] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

RangeMaximum

= 100.0;

RangeStepSize

= 0.0;

GraphLocation

= <auto> {560.0, 40.0};

}
}

transaction modelChange 'Add polygon01'


{
node User.Objects.polygon01 Bentley.GC.Features.Polygon
{
Technique
VertexPoints
point04};

= 'ByVertices';
= {point01,point02, point03,

Fill

= false;

ForcePlanar

= false;

PlaneIndex

= 1;

TextStyle

= null;

Key

= "";

GraphLocation

= <auto> {560.0, 40.0};

}
node User.Objects.point05 Bentley.GC.Features.Point
{
Technique

= 'CentroidOfSet';

SetToFindCentroidFrom

= polygon01.Vertices;

GraphLocation

= <auto> {820.0, 40.0};

}
node User.Objects.line01 Bentley.GC.Features.Line
{
Technique
'ByStartPointDirectionLength';

}
}

StartPoint

= point05;

Direction

= baseCS.ZDirection;

Length

= altura;

GraphLocation

= <auto> {1080.0, 40.0};

Anexos [271]

transaction modelChange 'Add polygon02, polygon03, polygon04,


polygon05'
{
node User.Objects.polygon02 Bentley.GC.Features.Polygon
{
Technique

= 'ByVertices';

VertexPoints
=
{polygon01.Vertices[0],polygon01.Vertices[1],line01.EndPoint};
Fill

= false;

ForcePlanar

= false;

PlaneIndex

= 1;

TextStyle

= null;

Key

= "";

GraphLocation

= <auto> {1340.0, 40.0};

}
node User.Objects.polygon03 Bentley.GC.Features.Polygon
{
Technique

= 'ByVertices';

VertexPoints
=
{polygon01.Vertices[1],polygon01.Vertices[2],line01.EndPoint};
Fill

= false;

ForcePlanar

= false;

PlaneIndex

= 1;

TextStyle

= null;

Key

= "";

GraphLocation

= <auto> {1340.0, 180.59};

}
node User.Objects.polygon04 Bentley.GC.Features.Polygon
{
Technique

= 'ByVertices';

VertexPoints
=
{polygon01.Vertices[2],polygon01.Vertices[3],line01.EndPoint};
Fill

= false;

ForcePlanar

= false;

PlaneIndex

= 1;

TextStyle

= null;

[272] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Key

= "";

GraphLocation

= <auto> {1340.0, 321.18};

}
node User.Objects.polygon05 Bentley.GC.Features.Polygon
{
Technique

= 'ByVertices';

VertexPoints
=
{polygon01.Vertices[3],polygon01.Vertices[0],line01.EndPoint};
Fill

= false;

ForcePlanar

= false;

PlaneIndex

= 1;

TextStyle

= null;

Key

= "";

GraphLocation

= <auto> {1340.0, 461.77};

}
}

transaction modelChange 'Add bsplineSurface02'


{
node User.Objects.bsplineSurface02
Bentley.GC.Features.BSplineSurface
{
Technique

= 'FromClosedCurve';

ClosedCurve
=
{polygon02,polygon03,polygon04,polygon05};
UCurveDisplay

= 4;

VCurveDisplay

= 4;

AutoHideInputs

= true;

GraphLocation

= <auto> {1600.0, 40.0};

}
}

transaction modelChange 'Change altura'


{
node User.Objects.altura Bentley.GC.Features.GraphVariable
{

Anexos [273]

Technique

= 'EvaluateExpression';

Value

= 5.25;

LimitValueToRange

= true;

RangeMaximum

= 15.0;

}
}

transaction modelChange 'Change bsplineSurface02', suppressed


{
node User.Objects.bsplineSurface02
Bentley.GC.Features.BSplineSurface
{
Technique

= 'FromClosedCurve';

Visible

= false;

}
}

transaction modelChange 'Change line01'


{
node User.Objects.line01 Bentley.GC.Features.Line
{
Technique
'ByStartPointDirectionLength';
Visible

=
= false;

}
}

transaction modelChange 'Change point05'


{
node User.Objects.point05 Bentley.GC.Features.Point
{

}
}

Technique

= 'CentroidOfSet';

Visible

= false;

[274] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

transaction generateFeatureType 'Generate feature type


Z_piramide'
{
type

= User.Z_piramide;

addAssemblyToDesignFile

= true;

addAssemblyToUserLibrary

= true;

inputProperties

= {

property
Bentley.GC.Features.CoordinateSystem baseCS
{
feature
= User.Objects.baseCS;
isReplicatable
= true;
isParentNodeScope
= true;
}
property
Bentley.GC.Features.Polygon polygon01
{
feature
= User.Objects.polygon01;
isReplicatable
= true;
}
property double altura
{
feature
= User.Objects.altura;
isReplicatable
= true;
}
};
outputProperties

= {

property
Bentley.GC.Features.BSplineSurface bsplineSurface02
{
feature
= User.Objects.bsplineSurface02;

Anexos [275]

isDynamic
= true;
}
};
internalProperties

= {
property

Bentley.GC.Features.Point point05
{
feature
= User.Objects.point05;
isDynamic
= true;
}
property
Bentley.GC.Features.Line line01
{
feature
= User.Objects.line01;
isDynamic
= true;
}
property
Bentley.GC.Features.Polygon polygon05
{
feature
= User.Objects.polygon05;
isDynamic
= true;
}
property
Bentley.GC.Features.Polygon polygon04
{
feature
= User.Objects.polygon04;
isDynamic
= true;
}
property
Bentley.GC.Features.Polygon polygon03
{

[276] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

feature
= User.Objects.polygon03;
isDynamic
= true;
}
property
Bentley.GC.Features.Polygon polygon02
{
feature
= User.Objects.polygon02;
isDynamic
= true;
}
};
}

transaction modelChange 'Change altura'


{
node User.Objects.altura Bentley.GC.Features.GraphVariable
{
Technique

= 'EvaluateExpression';

Value

= 8.1;

}
}

transaction generateFeatureType 'Generate feature type


Z_piramide', suppressed
{
type

= User.Z_piramide1;

addAssemblyToDesignFile

= false;

inputProperties

= {

property
Bentley.GC.Features.CoordinateSystem baseCS
{
feature
= User.Objects.baseCS;
isReplicatable
= true;

Anexos [277]

isParentNodeScope
= true;
}
property
Bentley.GC.Features.Polygon polygon01
{
feature
= User.Objects.polygon01;
isReplicatable
= true;
}
property double altura
{
feature
= User.Objects.altura;
isReplicatable
= true;
}
};
outputProperties

= {

property
Bentley.GC.Features.BSplineSurface bsplineSurface02
{
feature
= User.Objects.bsplineSurface02;
isDynamic
= true;
}
property
Bentley.GC.Features.Point point05
{
feature
= User.Objects.point05;
isConstruction
= true;
isDynamic
= true;
}
property
Bentley.GC.Features.Line line01
{

[278] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

feature
= User.Objects.line01;
isConstruction
= true;
isDynamic
= true;
}
};
internalProperties

= {

property
Bentley.GC.Features.Polygon polygon05
{
feature
= User.Objects.polygon05;
isDynamic
= true;
}
property
Bentley.GC.Features.Polygon polygon04
{
feature
= User.Objects.polygon04;
isDynamic
= true;
}
property
Bentley.GC.Features.Polygon polygon03
{
feature
= User.Objects.polygon03;
isDynamic
= true;
}
property
Bentley.GC.Features.Polygon polygon02
{
feature
= User.Objects.polygon02;
isDynamic
= true;
}

Anexos [279]

};
}

transaction modelChange 'Add bsplineSurface01', suppressed


{
node User.Objects.bsplineSurface01
Bentley.GC.Features.BSplineSurface
{
Technique

= 'ByPoints';

Points
=
{polygon01.Vertices[0],polygon01.Vertices[1],line01.EndPoint};
UCurveDisplay

= 4;

VCurveDisplay

= 4;

UClosed

= false;

VClosed

= false;

GraphLocation

= <auto> {1340.0, 40.0};

}
}

Anexo

5.2.

Superficie

para

la

inserccin

del

componente

pirmide
Definicin del entorno
No es necesario para este ejemplo definir ninguna variable.
Desarrollo del modelo generativo
Se crean tres "bsplineCurves" a partir de tres puntos por cada una. Estos
puntos tendrn sus coordenadas libres para poder moverlos a voluntad.
A partir de estas lneas se crea una "bsplineSurface". Sobre esta superficie
se colocan una serie de puntos en diagonal usando las coordenadas U y V
de la superficie y se replicarn para crear una matriz de puntos que cubra
el total de la superficie.
Esta matriz de puntos se usa para crear una serie de polgonos de base
cuadrada que los use como vrtices.

[280] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Sobre estos polgonos se insertar el componente pirmide.

Ilustracin 38. Superficie de doble curvatura con el componente


pirmide insertado. Elaboracin propia.

Cdigo del modelo


transaction modelChange 'Add bsplineCurve01, bsplineCurve02,
bsplineCurve03, point01, point02, point03, point04, point05,
point06, point07, point08, point09'
{
node User.Objects.point01 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 9.78748683746885;

YTranslation

= <free> -4.87201948887492;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 40.0};

}
node User.Objects.point02 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

Anexos [281]

XTranslation

= <free> 10.063316625264;

YTranslation

= <free> 2.62794612164328;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 220.87};

}
node User.Objects.point03 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 9.58861426378644;

YTranslation

= <free> 13.1624909992104;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 401.74};

}
node User.Objects.point04 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 19.2552805338737;

YTranslation

= <free> -5.01391635101811;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 582.61};

}
node User.Objects.point05 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 19.1689710136053;

YTranslation

= <free> 2.10985375061536;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 763.48};

[282] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

}
node User.Objects.point06 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 18.9531972129336;

YTranslation

= <free> 12.8170960851918;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 944.35};

}
node User.Objects.point07 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 28.6198634830209;

YTranslation

= <free> -5.18661380802746;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 1125.22};

}
node User.Objects.point08 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

XTranslation

= <free> 28.4040896823492;

YTranslation

= <free> 6.8590338183711;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 1306.09};

}
node User.Objects.point09 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

CoordinateSystem

= baseCS;

Anexos [283]

XTranslation

= <free> 27.8430778006032;

YTranslation

= <free> 13.2488397277151;

ZTranslation

= <free> 0.0;

Origin

= null;

GraphLocation

= <auto> {300.0, 1486.96};

}
node User.Objects.bsplineCurve01
Bentley.GC.Features.BSplineCurve
{
Technique
Points
point03};

= 'ByPoints';
= {point01, point02,

MakePeriodic

= false;

GraphLocation

= <auto> {560.0, 40.0};

}
node User.Objects.bsplineCurve02
Bentley.GC.Features.BSplineCurve
{
Technique
Points
point06};

= 'ByPoints';
= {point04, point05,

MakePeriodic

= false;

GraphLocation

= <auto> {560.0, 180.59};

}
node User.Objects.bsplineCurve03
Bentley.GC.Features.BSplineCurve
{
Technique
Points
point09};

= 'ByPoints';
= {point07, point08,

MakePeriodic

= false;

GraphLocation

= <auto> {560.0, 321.18};

}
}

transaction modelChange 'Add bsplineSurface01'


{

[284] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

node User.Objects.bsplineSurface01
Bentley.GC.Features.BSplineSurface
{
Technique
Curves
bsplineCurve02, bsplineCurve03};

= 'LoftCurves';
= {bsplineCurve01,

Order

= 3;

UCurveDisplay

= 4;

VCurveDisplay

= 4;

StartPointOfClosedCurves

= null;

GraphLocation

= <auto> {820.0, 40.0};

}
}

transaction modelChange 'Add point10'


{
node User.Objects.point10 Bentley.GC.Features.Point
{
Technique

= 'ByUVParametersOnSurface';

Surface

= bsplineSurface01;

= SeriesByCount(0,1,10);

= SeriesByCount(0,1,10);

= 0.0;

WithinSurfaceBoundaries

= true;

Replication
=
ReplicationOption.AllCombinations;
GraphLocation

= <auto> {1080.0, 40.0};

}
}

transaction modelChange 'Add polygon01; change


bsplineSurface01, point05'
{
node User.Objects.point05 Bentley.GC.Features.Point
{
Technique

= 'ByCartesianCoordinates';

ZTranslation

= <free> 5.99945139569696;

Anexos [285]

}
node User.Objects.bsplineSurface01
Bentley.GC.Features.BSplineSurface
{
Technique

= 'LoftCurves';

Visible

= false;

}
}

transaction modelChange 'Add point11, polygon01'


{
node User.Objects.polygon01 Bentley.GC.Features.Polygon
{
Technique

= 'ByPointGrid';

Points

= point10;

Fill

= false;

SkipAlternates

= false;

FacetOption

= FacetOption.Quads;

PlaneIndex

= 1;

TextStyle

= null;

UClosed

= false;

VClosed

= false;

GraphLocation

= <auto> {1340.0, 40.0};

}
node User.Objects.point11 Bentley.GC.Features.Point
{
Technique

= 'CentroidOfSet';

SetToFindCentroidFrom

= polygon01.Vertices;

GraphLocation

= <auto> {1600.0, 40.0};

}
}

transaction modelChange 'Add z_piramide02; change point01'


{
node User.Objects.point01 Bentley.GC.Features.Point
{

[286] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Technique

= 'ByCartesianCoordinates';

YTranslation

= <free> -7.75709286634546;

}
node User.Objects.z_piramide02 User.Z_piramide
{
Technique

= 'ByDefault';

baseCS

= baseCS;

polygon01

= polygon01;

altura

= 2.5;

GraphLocation

= <auto> {1860.0, 40.0};

}
}

transaction modelChange 'Add z_piramide101', suppressed


{
node User.Objects.z_piramide101 User.Z_piramide1
{
Technique

= 'ByDefault';

baseCS

= baseCS;

polygon01

= polygon01;

altura

= 3;

GraphLocation

= <auto> {1860.0, 40.0};

}
}

transaction modelChange 'Add z_piramide01', suppressed


{
node User.Objects.z_piramide01 User.Z_piramide
{

Technique

= 'ByDefault';

baseCS

= baseCS;

polygon01

= polygon01;

altura

= 2;

GraphLocation

= <auto> {1860.0, 40.0};

Anexos [287]

[288] EL DISEO PARAMTRICO APLICADO A LAS SOLUCIONES Y DETALLES CONSTRUCTIVOS

Rafael Antonio Roa Hernndez


Octubre, 2014