ARCHICAD: REVELANDO GDL: Programación Para Desafíos únicos De Arquitectos

ARCHICAD: REVELANDO GDL: Programación Para Desafíos únicos De Arquitectos
ARCHICAD: REVELANDO GDL: Programación Para Desafíos únicos De Arquitectos

Video: ARCHICAD: REVELANDO GDL: Programación Para Desafíos únicos De Arquitectos

Video: ARCHICAD: REVELANDO GDL: Programación Para Desafíos únicos De Arquitectos
Video: ARCHICAD GDL Introducción 2024, Abril
Anonim

Este material experto continúa la serie de artículos "ARCHICAD: Redescubriendo", que comenzó en diciembre de 2016 con un artículo de Vladimir Savitsky "Creación de estructuras y extracción de dibujos de trabajo a partir de un modelo", y luego continuó con las publicaciones de Svetlana Kravchenko "ARCHICAD: Redescubriendo. Visualización - nuevas oportunidades para un arquitecto "y Alexander Anishchenko" TRABAJO EN EQUIPO: trabajo en equipo eficaz paso a paso ". El ciclo está diseñado para ayudar a los usuarios a liberar todo el potencial de ARCHICAD®… Les pedimos a los arquitectos que compartieran su experiencia personal al usar el programa usando enfoques no estándar, funciones poco estudiadas y nuevas características que muchos usuarios ni siquiera conocen. Como desarrolladores de la aplicación ARCHICAD, estamos seguros de que solo un conocimiento profundo del producto puede revelar todo su valor e influir de manera decisiva en los resultados, la velocidad y la calidad del trabajo del diseñador. ¿También prefiere "caminos sin andar"? ¿Tiene experiencia en el uso de enfoques no estándar al trabajar con ARCHICAD, y no utiliza regularmente las funciones más famosas de la aplicación? Estaremos encantados de invitar a nuevos autores a cooperar: [email protected]. Svetlana Kravchenko, arquitecta en ejercicio, informa:

zoom
zoom

Seguramente muchos de ustedes han oído hablar de GDL en ARCHICAD, pero aún no todos saben cómo usarlo en el trabajo. Teniendo en cuenta la increíble utilidad de esta función, así como las muchas preguntas después de mi primer seminario web sobre este tema, decidí entrar en más detalles sobre cómo incluso el conocimiento más mínimo de ella puede ayudar mucho en el trabajo diario de un arquitecto.

Empecemos con lo básico GDL (Geometric Description Language) es un lenguaje de programación similar al BASIC diseñado para funcionar en el entorno ARCHICAD. Describe cuerpos sólidos 3D (como puertas, ventanas, muebles) y símbolos 2D en la ventana del plano de planta. Estos objetos se denominan Funciones de biblioteca.

Para aquellos que están al menos un poco familiarizados con la programación, dominar este lenguaje no será difícil. Sin embargo, con suficientes ganas, el estudio de GDL estará bastante al alcance de una persona que esté lejos de este entorno. Cualquier arquitecto ha estudiado geometría y geometría descriptiva en su tiempo, tiene un excelente pensamiento volumétrico, y esto ya es la mitad del éxito. No es necesario que intente escribir objetos complejos de inmediato, vale la pena comenzar con las formas geométricas básicas y las formas; se puede obtener mucha información examinando los guiones de otros elementos de la biblioteca. Bueno, la principal fuente de información es el manual de referencia de GDL, al que se puede acceder a través del menú Ayuda en el propio ARCHICAD. Entonces, ¿por qué un arquitecto puede beneficiarse del conocimiento de GDL? Por ejemplo, a diferencia de Grasshopper, con el que puede crear estructuras complejas, GDL es simplemente indispensable para escribir varios marcadores y llamadas, así como para crear componentes especiales para otras funciones o herramientas de la biblioteca. Una de mis primeras aplicaciones de GDL en mi trabajo fue la creación de una hoja de puerta de panel especial, que, cuando se redimensionó, no se escaló en todas las direcciones, sino que solo cambió las dimensiones del panel. El grosor del marco rizado y el ancho del arnés se mantuvieron sin cambios. Además, los arquitectos a menudo quieren agregar algunas funciones simples a los objetos existentes de las bibliotecas estándar, y esta es la razón principal por la que comienzan a profundizar en GDL. Por supuesto, el conocimiento de GDL no es vital y muchas de estas tareas se pueden realizar con herramientas estándar. Por ejemplo, puede construir rellenos con losas y guardarlos como una hoja de puerta especial. Si solo tiene algunas de estas puertas no estándar, esto será aún más rápido. Pero si en su proyecto hay muchas puertas similares de diferentes tamaños y su ancho cambia en el proceso de trabajo, entonces escribir un panel especial en GDL acelerará y simplificará enormemente el trabajo. La descripción geométrica implica que cualquiera de las formas posibles se puede escribir en texto según dimensiones o coordenadas. Para un script 3D, hay un bloque de comandos para formas espaciales básicas, como: - CUADRA y LADRILLO - un paralelepípedo construido en tres dimensiones con el origen en el punto 0 del sistema de coordenadas BLOQUE a, b, c LADRILLO a, b, c

zoom
zoom

- CILINDRO - cilindro a lo largo del eje Z, con altura hy radio r CILINDRO h, r

- ESFERA - esfera centrada en el origen y radio r ESFERA r

zoom
zoom

Una elipse y un cono se describen de manera similar. El siguiente bloque de figuras ya es más complicado: se trata de varios prismas. Se describen mediante un conjunto de coordenadas de puntos. El prisma más simple se determina por el número de puntos (n), la altura (h) y enumera las coordenadas de todos los puntos en orden. PRISMA n, h, x1, y1, … xn, yn

Hay muchas variedades de prismas. La siguiente vista, PRISMA_, le permite indicar códigos de estado a las coordenadas de puntos, que determinan la visibilidad de caras y aristas, y también le permiten crear prismas curvos y prismas con agujeros (ver la sección Códigos de estado en el libro de referencia). Otro tipo, BPRISM_, crea un prisma retorcido alrededor del eje Y. FPRISM_ construye un prisma con un chaflán o filete en la parte superior.

zoom
zoom

Hay varios comandos que describen formas basadas en polilíneas más complejas: EXTRUSIÓN, PIRÁMIDE, REVOLUCIÓN, REGULADO, BARRIDO, TUBO, COONS, MASA. Su descripción con ejemplos se puede encontrar en la referencia. Para un script 2D, las formas se describen mediante otros comandos: línea, círculo, rectángulo, polilínea, spline. Pero también puede registrar un comando para construir una proyección a partir de un script 3D.

La creación de formas 2D o 3D es solo una parte de la funcionalidad de GDL. Si solo necesita una tabla, entonces es más fácil construirla con las herramientas de ARCHICAD. Se escribe un objeto en el caso en el que se requiere algún tipo de parametricismo: la capacidad de seleccionar diferentes tipos de patas de mesa, el número de patas, redimensionar la mesa manteniendo las dimensiones restantes, calcular la madera para su fabricación, peso y coste. Es posible que el objeto no contenga geometría en absoluto, sino que solo realice cálculos. Para esto, también se utilizan Cláusulas de Control (Operadores de Control), como loops, declaraciones condicionales, que hacen referencia a un lugar específico en el código (subrutina). Es mejor familiarizarse con los ciclos y las condiciones desde el principio; se usan con frecuencia. Entonces, todos los ejemplos a continuación tienen declaraciones condicionales. EJEMPLO # 1 - rotación de objetos Los diseñadores a menudo quieren hacer que un objeto sea giratorio. Usando este ejemplo simple, veremos la estructura del Elemento de la Biblioteca, así como las ventanas principales del Editor de Objetos GDL. Para abrir cualquier objeto ubicado en el espacio del proyecto (si el desarrollador no le ha puesto una contraseña), debe seleccionarlo y presionar la combinación de teclas Ctrl + Shift + O. Otra forma es utilizar el menú Archivo> Bibliotecas y objetos> Abrir objeto. Si en este momento no se ha seleccionado ningún objeto, se abrirá una ventana para seleccionar un objeto. Agreguemos parámetros de rotación, por ejemplo, a una rejilla de persiana (Fig. 1).

zoom
zoom

Entonces, hemos abierto la ventana del Editor de objetos GDL (Fig. 2). En la parte superior izquierda, hay una ventana para ver diferentes vistas, como en la ventana habitual de parámetros de objeto; incluso a la izquierda hay botones para elegir una vista: plano, alzado, ventana 3D y vista previa. Debajo hay botones para abrir tablas de parámetros, listas de datos y scripts. Los scripts se pueden abrir de dos formas: haga clic en el botón con el nombre del script - abrir en la misma ventana, haga clic en el botón a la derecha con el icono de la ventana - el script se abrirá en una ventana separada. Esto puede resultar útil para ver diferentes scripts al mismo tiempo (Figura 3).

zoom
zoom

En la parte superior de la ventana de cualquier secuencia de comandos hay un botón de verificación muy necesario: al hacer clic en él, el editor le preguntará si hay algún error en la secuencia de comandos. El mensaje contendrá el motivo del error y el número de línea donde se encontró el error. En la sección "Detalles", puede seleccionar un subtipo de objeto: hoja de puerta personalizada, pomo de puerta, marco de muro cortina, etc. Entonces, los objetos especiales (bolígrafo, lienzo, marco) aparecerán en la ventana correspondiente para seleccionar estos elementos. Cuando se selecciona un tipo 2D, el objeto no tendrá ventanas para geometría 3D. Allí también puede seleccionar tipos para diferentes marcadores: un nodo, secciones, títulos de líder, zonas; también aparecerán en sus respectivas herramientas. En esta sección, puede completar una descripción del objeto y seleccionar una contraseña. Además - "Parámetros", donde todos los datos que se utilizan en este objeto y que se pueden cambiar mientras se trabaja en el proyecto se presentan en forma de tabla. Aquí necesitamos agregar parámetros para los giros, que usaremos más adelante.

zoom
zoom

Presione el botón Nuevo ubicado sobre la mesa (Fig. 4). Aparecerá una nueva fila en la que debe completar las columnas. La primera de estas columnas es Variable. Aquí escribimos el nombre de la variable, que se utilizará en scripts, en latín y sin espacios. Debe nombrarlo para que sea fácil de recordar y, al mismo tiempo, sea fácil de entender de qué es responsable esta variable. En nuestro caso, necesitamos crear dos variables para el valor de los ángulos de rotación a lo largo de los ejes X e Y (el objeto se puede rotar alrededor del eje Z de todos modos en el plano). Decidí nombrarlos angle_x y angle_y. En la siguiente columna, debe seleccionar el tipo de datos. Las opciones se presentan en la tabla 1.

zoom
zoom

Los dos últimos tipos no se utilizan en la construcción del objeto, pero son necesarios para una mayor claridad y orden de la lista en la ventana de parámetros del objeto. Necesitamos una esquina: este es el segundo ícono de la tabla. La tercera columna es Nombre. Aquí puede escribir sin reglas en cualquier idioma qué es exactamente lo que queremos ver más adelante en la ventana de parámetros del objeto. Y la última columna es Valor. Ahora puedes dejar 0 aquí: este valor cambia en cualquier momento tanto en el script como en los parámetros del propio objeto. La Figura 2 muestra cómo se ven las dos nuevas opciones en la ventana del Editor de objetos GDL. 5. Utilice las flechas al principio de la línea para mover la línea a una ubicación conveniente.

zoom
zoom

Luego, debe guardar el objeto con un nuevo nombre, ya que la biblioteca estándar está codificada en el contenedor y no puede sobrescribir los objetos en ella. La ventana de parámetros del objeto ahora se verá así (Fig. 6).

zoom
zoom

Hay dos nuevos parámetros, cuyo valor se puede cambiar en cualquier momento. Pero ahora no pasará nada, ya que aún no se han escrito comandos con ellos. Ahora necesita abrir la ventana de secuencia de comandos 3D. Aquí hay una descripción completa de cómo construir un modelo 3D basado en los parámetros dados. Además, se pueden anidar varias macros en el objeto. Antes de todas las construcciones, debe rotar el sistema de coordenadas en el que se construirá el objeto. Aquí es importante entender la siguiente lógica: todas las rotaciones, movimientos y escalas ocurren de manera diferente que cuando se trabaja en ARCHICAD. No tomamos un elemento y lo giramos, sino que giramos el sistema de coordenadas global (después de cambiarlo, se vuelve local) parte delantera construyendo un objeto. Mover (comando ADD), Rotar (ROT), Escalar (MUL) son comandos de transformación del sistema de coordenadas. Se pueden eliminar más transformaciones en el script una por una, varias a la vez o eliminar todas a la vez. El libro de referencia describe todo esto con suficiente detalle y con ejemplos. Un ejemplo de mover un sistema de coordenadas en el espacio 3D a lo largo de tres ejes a la vez se muestra en la Fig. 7. AÑADIR a, b, c

zoom
zoom

Entonces, antes de todas las construcciones, rotamos el sistema de coordenadas, primero a lo largo de uno, luego a lo largo del otro eje. La rotación a lo largo del eje X se realiza mediante el comando ROTX alphax, donde alphax es el ángulo de rotación en sentido antihorario; en lugar de alphax, debe ingresar una variable creada previamente. La rotación a lo largo del eje Y se realiza de la misma forma (Fig. 8).

zoom
zoom

Ahora puede establecer diferentes ángulos para la rotación, y los cambios en el modelo 3D se llevarán a cabo en la ventana gráfica ubicada en la parte superior izquierda (Fig. 9).

zoom
zoom

Ahora puede establecer diferentes ángulos para la rotación, y los cambios en el modelo 3D se llevarán a cabo en la ventana gráfica ubicada en la parte superior izquierda (Fig. 9). Pero todavía no pasa nada en 2D. En una secuencia de comandos 2D, un objeto se construye con líneas y polilíneas independientes, por lo que el dibujo de un objeto en planta es muchas veces más rápido. En un sitio, esto es imperceptible, pero si hay cientos de rejillas de este tipo en el proyecto, el frenado será significativo. Puede calcular las coordenadas de los puntos de estas líneas y trazarlas como se verían en la proyección del objeto girado, pero esto no es muy simple ni muy rápido. En esta celosía, propongo la siguiente solución: si los ángulos en X o Y no son iguales a cero, entonces el objeto en el script 2D, es decir, para el plano, se renderizará como una proyección del modelo 3D, y de lo contrario, a la antigua. La proyección del modelo para un script 2D se construye mediante el comando PROJECT2 projection_code, angle, method. Puede leer el significado de projection_code, angle, method en el libro de referencia, pero nos familiarizaremos con el comando más importante de la sección de instrucciones de control IF - THEN - ELSE - ENDIF. Estas son declaraciones condicionales que le ayudarán a construir la cláusula condicional del párrafo anterior. En la Fig. 10 He resaltado los comandos agregados en el script 2D y agregué "traducción" en rojo a la derecha.

zoom
zoom

Ahora solo necesita guardar el objeto y puede usarlo (Fig. 11). La ventaja de este método sobre la conversión a morph es que el objeto permanece paramétrico, se puede leer en las especificaciones, en él se pueden cambiar las dimensiones de las lamas, el tamaño del marco, y todo lo demás que estaba en el objeto original..

zoom
zoom

Entonces, en detalle, usando este ejemplo, examinamos las ventanas principales y los scripts del Editor de objetos GDL. Si el objeto que ha elegido para la rotación tiene parámetros no en forma de lista, como en este enrejado, sino en forma de imágenes y diagramas, esto significa que el desarrollador también ha escrito una interfaz gráfica. Muy a menudo, la lista estándar con parámetros está oculta, como en la Fig. 12: No hay una sección "Todos los parámetros" en la lista desplegable de páginas de parámetros.

zoom
zoom

En este caso, debe ingresar al script de parámetros y encontrar el comando que oculta todos los parámetros (Fig. 13). Este script describe todas las acciones que afectan a los parámetros: - designación de opciones o rangos de valores posibles (VALORES); - cualquier cálculo cuyo resultado se asigne al parámetro (PARÁMETROS); - ocultar o bloquear parámetros (HIDEPARAMETER, LOCK).

zoom
zoom

La línea HIDEPARAMETERS ALL se puede eliminar simplemente o poniendo un "!" Al principio de la línea, hazla ilegible (de acuerdo con la sintaxis GDL, una línea que comienza con un signo de exclamación se considera un comentario. Además, escribiré descripciones y traducciones en las capturas de pantalla después del signo "!"). Después de eso, aparecerá la línea "Todos los parámetros" en la lista de páginas de parámetros, y al seleccionarla, verá una lista estándar con parámetros, entre los cuales habrá nuevas líneas para la rotación. EJEMPLO # 2 - texto en un símbolo Tomo el siguiente ejemplo del proyecto actual. Cuando se trabajaba con el plano de un edificio residencial de varios apartamentos, se requería colocar la letra "K" en las unidades exteriores de los acondicionadores de aire, de modo que siempre estuviera ubicado verticalmente. Por supuesto, la letra podría haber sido simplemente agregada encima con texto o una inscripción-texto externo, pero luego, cuando se encendió el aire acondicionado, el texto también podría haber tenido que ser movido. Para empezar, agregué cuatro nuevos parámetros (Figura 14):

zoom
zoom

1. Mostrar texto: el tipo de parámetro es un valor booleano, lo que implica dos valores posibles: 0 (no) y 1 (sí). Por lo tanto, el texto se puede activar o desactivar.

2. Texto especial: tipo de parámetro - texto. Le permite escribir cualquier texto en el símbolo (pretendo usar una letra para que encaje dentro del rectángulo del bloque del aire acondicionado).

3. Fuente: tipo - texto. Tenga en cuenta que algunos tipos de escritura de esta variable le permiten seleccionar valores de fuente en la columna de la lista de los instalados en la computadora. "Fonttype" llama a esta lista automáticamente, pero si escribo "typefont" o simplemente "font", entonces tengo que escribir el nombre de la fuente manualmente. Noté este momento por casualidad en uno de los objetos estándar.

4. Rotulador de texto: tipo - rotulador. Bueno, aquí todo está claro.

Ahora veamos los íconos en los que hice clic al principio de las líneas. La primera línea tiene un icono presionado

Image
Image

que significa negrita - negrita. Es decir, esta línea en la ventana de parámetros del objeto estará en negrita. Los otros tres tienen un pictograma.

Image
Image

… Significa que estas líneas estarán anidadas en la lista desplegable debajo de la primera línea. En la Fig. 15 es una captura de pantalla que ilustra cómo se ve en los parámetros del objeto. Para empezar, agregué cuatro nuevos parámetros (Figura 15):

Рис. 15. Окно Параметров Объекта
Рис. 15. Окно Параметров Объекта
zoom
zoom

Y en la fig. 16 - lo que agregué en un script 2D (tradicionalmente con traducción y comentarios).

zoom
zoom

Higo. 16. Añadidas líneas en un script 2D En la siguiente captura de pantalla (Fig. 17), para mayor claridad, he teñido diferentes tipos de palabras / comandos / variables.

zoom
zoom

El objeto está listo (fig. 18).

zoom
zoom

Y si no escribiera líneas con rotación y escala, entonces el objeto se vería como en la fig. 19.

zoom
zoom

EJEMPLO # 3 - detallando Para simplificar el trabajo en un proyecto, al escribir un objeto, puede agregar un parámetro de texto con una selección de varias opciones para detallar (simple, medio, detallado). Y en el script 3D, al construir varias piezas pequeñas, agregue una condición del tipo: si el nivel de detalle = "detallado", entonces (descripción de las piezas de construcción) el final de la condición Variables globales merece especial atención. Tienen 40 páginas en el manual de referencia y están agrupadas por tema para facilitar la búsqueda. En el ejemplo anterior, utilicé algunos datos de orientación de objetos en el proyecto. La misma sección del manual de referencia contiene variables globales para las coordenadas de la ubicación del objeto; se utilizan para crear objetos como un líder con coordenadas o elevaciones en una sección / elevación. Muy a menudo se usa GLOB_SCALE: la escala del dibujo (depende de la vista de acuerdo con la ventana actual), a una escala de 1: 100 es igual a 100, a una escala de 1:20 es igual a 20. Es se utiliza con mayor frecuencia para convertir el tamaño de fuente a metros de modelo o viceversa. Además, este parámetro se puede utilizar para "colgar" las opciones de visualización en el plan. Por ejemplo, para un banco, escriba lo siguiente en un script 2D:

SI GLOB_SCALE <100 ENTONCES ! si la escala es mayor que 1: 100, entonces
PROYECTO2 3, 270, 2 ! construir una proyección a partir de un modelo 3D
DEMÁS ! de lo contrario
TERMINARA SI ! fin de condición

Entonces, en el plan maestro a una escala de 1: 500, los bancos se mostrarán como rectángulos, y en un fragmento con una escala más grande, se dibujará una proyección detallada. Una técnica similar, pero para un modelo tridimensional, se usa en árboles estándar, si habilita la casilla de verificación Tipo de corona automático. A cierta distancia de la cámara, el tipo de corona cambia de detallado a simple y de simple a elipse. Es cierto que para volver a leer los scripts del objeto, debe hacer algo con ellos, por ejemplo, después de cambiar la perspectiva, resaltar todos los árboles, abrir la ventana de parámetros del objeto y, sin cambiar nada, simplemente haga clic en Aceptar o haga clic y desmarque la casilla de verificación de reemplazo de la cubierta.

Permítanme mostrarlo usando el ejemplo de aproximación de una esfera. Esto es lo que escribí en un script 3D: discam_x = abs (GLOB_EYEPOS_X-SYMB_POS_X) discam_y = abs (GLOB_EYEPOS_Y-SYMB_POS_Y) discam_h = sqr (discam_x ^ 2 + discam_y ^ 2) discam_z = discam_By ^ 2 + discam_z = 20 entonces res = 50 si discam20 entonces res = 20 si discam30 entonces res = 10 si discam> 40 entonces res = 5 resol res esfera 1 En el script utilicé las Variables Globales GLOB_EYEPOS_X, GLOB_EYEPOS_Y, GLOB_EYEPOS_Z son las coordenadas de la ubicación de la cámara (ojos) en la ventana 3D del proyecto y SYMB_POS_X, SYMB_POS_Y, SYMB_POS_Z son las coordenadas de la ubicación del objeto en el espacio; abs - módulo numérico (elimina "-", si lo hay); sqr - raíz cuadrada; ^ 2: elevar un número al cuadrado.

En la ventana 3D, a diferentes distancias de la cámara, la esfera se dibujará con diferentes aproximaciones. Para mayor claridad, encendí el modo de estructura alámbrica (Fig. 20).

zoom
zoom

A través de las Variables Globales, el objeto puede recibir: - datos sobre la ubicación del proyecto (norte, latitud, longitud, elevación), establecidos en el cuadro de diálogo correspondiente; - piso actual y piso propio; - el tipo de vista actual (por ejemplo, en los puentes GOST se usa la siguiente condición: si el tipo de vista es una lista, entonces cree una vista del puente en una sección con líderes de posición); en el ejemplo con una celosía, puede agregar la siguiente condición: si el tipo de vista es una lista, entonces no gire el sistema de coordenadas, de modo que en cualquier caso habría una vista frontal en la lista de celosías; - visualización incompleta de las construcciones (puede hacer que el objeto no muestre algunas partes si solo se selecciona el núcleo).

Puede arrastrar los datos de la pared a un objeto de ventana o puerta. Las llamadas pueden obtener mucha información diferente sobre el elemento con el que están asociados, por ejemplo, una casilla de verificación con capas de una estructura de varias capas o un líder con un volumen de un elemento. Y así sucesivamente, 40 páginas de Variables Globales diferentes y muy útiles. EJEMPLO 4 - marcador de zona Echemos un vistazo a cómo se crea un marcador de zona personalizado. Si crea un nuevo objeto y selecciona el subtipo Zone Passport para él en la sección Detalles, en la sección Parámetros todos los parámetros específicos que la herramienta Zona pasa al marcador se muestran en azul (Fig. 21).

Рис. 21. Параметры объекта подтипа Паспорт Зоны
Рис. 21. Параметры объекта подтипа Паспорт Зоны
zoom
zoom

Con el comando TEXT2, puede escribir cualquiera de estas variables en un script 2D; así es como obtiene un marcador que consta solo de texto (Fig. 22).

zoom
zoom

Usando los parámetros generales del marcador de zona, puede definir el estilo del texto y la altura de la línea dependiendo de la altura de la fuente: DEFINE STYLE “ROOM” AC_TextFont_1, ROOM_LSIZE, 5.0 STYLE “ROOM” row = ROOM_LSIZE / 1000 * GLOB_SCALE * 1.5 text2 0, row, ROOM_NUMBER text2 0, 0, ROOM_NAME text2 0, -row, ROOM_AREA Puede crear un nuevo parámetro para seleccionar el tipo de marcador (Fig.23), establecer opciones para él en el script Parameters (Fig.24) y en el La secuencia de comandos 2D escribe diferentes tipos de representación de marcadores para diferentes tipos.

zoom
zoom
zoom
zoom

Script 2D: si mt = "marcador con número" entonces text2 0, 0, ROOM_NUMBER CIRCLE2 0,0, fila endif si mt = "número y área" entonces text2 0, fila / 2, ROOM_NUMBER text2 0, -row / 2, AREA_TEXT endif if mt = "title and area" then text2 0, row / 2, ROOM_NAME text2 0, -row / 2, AREA_TEXT endif if mt = "number, title and area" then text2 0, row, ROOM_NUMBER text2 0, 0, ROOM_NAME text2 0, -row, AREA_TEXT endif if mt = "area only" then text2 0, 0, AREA_TEXT endif En este script, no usé la variable de área predefinida como un área, pero convertí el área en texto y agregué a unidades: area = str (ROOM_AREA, 4, 2)! convertir un número en texto con 2 decimales AREA_TEXT = área + "metros cuadrados" ! agregando al valor de la cadena las letras "sq.m." Puede complementar las líneas del marcador con líneas que separen algunas líneas. Para encontrar la longitud de una cadena, use el comando STW. Agreguemos al principio del script: tl1 = stw (ROOM_NUMBER) / 1000 * GLOB_SCALE tl2 = stw (ROOM_NAME) / 1000 * GLOB_SCALE tl3 = stw (AREA_TEXT) / 1000 * GLOB_SCALE if mt = "number and area" then tl = MAX (tl1, tl3) si mt = "número, título y área", entonces tl = MAX (tl1, tl2) si mt = "título y área", entonces tl = MAX (tl2, tl3) si mt = "solo área", entonces tl = tl3 Y en las variantes de marcadores, agregue las líneas con el comando LINE2 (Fig. 25).

Рис. 25. 2D-скрипт
Рис. 25. 2D-скрипт
zoom
zoom

Si el número de zona consta de varios dígitos, para el marcador, puede crear un parámetro para el radio de un círculo, independientemente de la altura de la fuente, o en lugar de un círculo, describir una forma de elipse con una longitud igual a la longitud de la recta numérica de zona que encontramos anteriormente: POLY2_ 5, 1 + 2 + 4, -tl1 / 2, row, 1, tl1 / 2, row, 1, tl1 / 2, -row, 1001, -tl1 / 2, -row, 1, -tl1 / 2, row, 1001 Puede agregar un nuevo parámetro para el tipo de piso (FLOOR_TYPE) y un parámetro que le permite ocultarlo o mostrarlo (ShowFloorType), y en un script 2D agregar un triángulo con un polilínea y texto con un tipo de piso: si ShowFloorType entonces ADD2 0, fila * 3 POLY2_ 4, 1, -row * 1.4, -row * 0.8, 1, row * 2.8,60,201, row * 1.4, -row * 0.8, 1, 0,0,700 text2 0,0, FLOOR_TYPE endif Para el tipo de piso, es conveniente agregar un parámetro separado para el lápiz, así como puntos para la edición gráfica de la ubicación del marcador de piso. Describí en detalle cómo agregar puntos de edición gráfica en mi seminario web, y usando el enlace al final del artículo, puede descargar objetos y ver cómo se implementa esto en este caso particular.

Y finalmente, consideremos otro subtipo muy importante de un objeto que abre grandes posibilidades: los Parámetros Globales de la Biblioteca (Fig. 26).

zoom
zoom

Un objeto con este subtipo no crea ni dibuja nada, define parámetros en las vistas del modelo. Por lo tanto, allí puede eliminar aquellos parámetros que le gustaría ver comunes para el objeto, pero al mismo tiempo, puede establecer diferentes valores para diferentes tipos.

Mostraré esto con un ejemplo de un marcador de zona. Me encontré con proyectos en los que había varios conjuntos de zonas en diferentes capas para diferentes vistas. Si se necesitan diferentes marcadores, los parámetros globales de la biblioteca son la mejor solución.

Tengo un marcador en el que es posible colocar el tipo de suelo en un triángulo y cambiar el tipo de marca (fig. 27). Y estos dos parámetros se mueven a un archivo separado del subtipo de parámetros de biblioteca global (Fig. 28).

zoom
zoom
zoom
zoom

Para que estos parámetros se muestren en el cuadro de diálogo Parámetros de la vista del modelo, debe registrarlos en el script de la interfaz del objeto (Fig. 29). No me detendré en detalles sobre los comandos especiales para este script, se describen con suficiente detalle y con ejemplos en el libro de referencia. Solo diré que aquí describimos dónde se ubicará esta o aquella etiqueta o botón (un campo con una selección de opciones, una marca de verificación, etc.), las imágenes también se pueden insertar en la interfaz de usuario. En la biblioteca estándar, casi todos los objetos tienen una interfaz gráfica; puedes ver todas las posibilidades y ver cómo se escriben estos scripts. Además del botón Verificar, el script también tiene un botón Ver. Al hacer clic en él, puede ver rápidamente lo que sucede.

zoom
zoom

Puede guardar el objeto y verlo en el cuadro de diálogo Opciones de vista de modelo (Figura 30). Aquí podemos cambiar el tipo de marcado a la vez para todas las zonas del proyecto (con este marcador), pero por separado para diferentes tipos.

zoom
zoom

Ahora, en el objeto de marcador de zona, debe consultar al objeto los valores de estos dos parámetros. En el script principal (que es leído por el objeto primero, por lo que todos los cálculos y definiciones de valores que deben usarse en varios scripts, es mejor escribir aquí) escribo dos líneas como esta: success1 = LIBRARYGLOBAL ("LibraryGlobals20 "," ShowFloorType ", ShowFloorType) success2 = LIBRARYGLOBAL (" LibraryGlobals20 "," mt ", mt)" success "será 1 si la solicitud es exitosa; de lo contrario, será 0.

Esto se puede usar para escribir un mensaje de advertencia en lugar de un marcador de zona de que el objeto LibraryGlobals20 no se ha cargado en la biblioteca.

Luego, el objeto funciona como de costumbre, usando dos nuevos valores: si el tipo de marcado es tal o cual, entonces escriba tal y tal, y así sucesivamente. En este artículo, he cubierto solo una pequeña parte de las capacidades de GDL. Con su ayuda, puede crear elementos de diseño muy simples y objetos muy complejos.

Por ejemplo, se trata de casas de paneles SIP pequeñas y sencillas. Tiene una lista específica de opciones para cambiar el proyecto: - la longitud y el ancho de la casa pueden ser de 2,4 a 24 metros con un paso de 1,2 m; - si el ancho excede los 6 m, entonces debería haber otra pared en el medio; - dos opciones para alturas de suelo en función del tamaño del panel; - número de pisos: uno o dos pisos; - las ventanas pueden estar en ciertos lugares de paneles de cierto tamaño; - acabado de fachadas en tres versiones; - techado en tres versiones; - espesor de pared de varios tamaños estándar, etc.

Puede configurar todos estos parámetros para el objeto agregando el costo por metro cuadrado del panel, techo, decoración, etc. Y en scripts 2D y 3D del objeto, construya y dibuje completamente esta casa con variables en lugar de dimensiones estáticas. Para que el usuario no se confunda en una larga lista de parámetros, puede escribir una interfaz gráfica para varias páginas con imágenes y diagramas. En el script principal, calcule todos los volúmenes y muestre el costo. También es posible mostrar una tabla con el diseño de los paneles en un script 2D junto al plano. Escribir un objeto de este tipo llevará mucho tiempo, deberá elaborar una especificación técnica detallada, proporcionar todos los matices, pero luego recibirá no solo un objeto, sino casi un programa en el que, al elegir parámetros, Puede obtener un conjunto de un borrador de diseño con un cálculo de materiales y costo para el cliente. Con suerte, esta descripción general ha despertado el interés de alguien en las capacidades de GDL. Mi historia comenzó con un gran deseo de cambiar algún pequeño detalle en algún marcador de zona estándar, y cuanto más leo la guía, más se revela el potencial de esta herramienta, en mi opinión, muy útil para un arquitecto. Desde el enlace siguiente puede descargar todos los objetos que se consideraron como ejemplos en este artículo: Descargar ejemplos Nota. Se utilizó ARCHICAD 20 para escribir estos objetos, por lo que no se abrirán en versiones anteriores. Sobre GRAPHISOFT Empresa GRAPHISOFT® revolucionó el BIM en 1984 con ARCHICAD® Es la primera solución BIM de la industria para arquitectos en la industria CAD. GRAPHISOFT continúa liderando el mercado de software arquitectónico con productos innovadores como BIMcloud ™, la primera solución de diseño BIM colaborativo en tiempo real del mundo, EcoDesigner ™, el primer modelo energético totalmente integrado y evaluaciones de eficiencia energética de edificios y BIMx.® Es la aplicación móvil líder para mostrar y presentar modelos BIM. Desde 2007, GRAPHISOFT forma parte del Grupo Nemetschek.

Recomendado: