Dynamo
Primer for v2.0
Español
Español
  • Acerca de
  • Introducción
    • ¿Qué es Dynamo y cómo funciona?
    • Manual de introducción, comunidad y plataforma de Dynamo
  • Configuración de Dynamo
  • Interfaz de usuario
    • Espacio de trabajo
    • Biblioteca
  • Nodos y cables
  • Nodos y conceptos básicos
    • Índice de nodos
    • Geometría para el diseño computacional
      • Descripción general de la geometría
      • Vector, plano y sistema de coordenadas
      • Puntos
      • Curvas
      • Superficies
      • Sólidos
      • Mallas
    • Los bloques de construcción de los programas
      • Datos
      • Matemáticas
      • Lógica
      • Cadenas
      • Color
    • Diseño con listas
      • ¿Qué es una lista?
      • Trabajo con listas
      • Listas de listas
      • Listas de n dimensiones
    • Diccionarios en Dynamo
      • ¿Qué es un diccionario?
      • Nodos de diccionario
      • Diccionarios en bloques de código
      • Casos de uso de Revit
  • Nodos y paquetes personalizados
    • Nodos personalizados
      • Introducción a los nodos personalizados
      • Creación de un nodo personalizado
      • Publicación en la biblioteca
    • Paquetes
      • Introducción a los paquetes
      • Caso real de paquete: Kit de herramientas de malla
      • Desarrollo de un paquete
      • Publicación de un paquete
      • Importación de Zero-Touch
  • Dynamo para Revit
    • La conexión de Revit
    • Selección
    • Edición
    • Creación
    • Personalización
    • Documentación
  • Dynamo for Civil 3D
    • La conexión con Civil 3D
    • Introducción
    • Biblioteca de nodos
    • Flujos de trabajo de ejemplo
      • Carreteras
        • Colocación de farolas
      • Land
        • Colocación de servicios
      • Servicios
        • Renombrar estructuras
      • Raíl
        • Envolvente libre
      • Topografía
        • Administración de grupos de puntos
    • Temas avanzados
      • Enlace de objetos
      • Python y Civil 3D
    • Dynamo Player
    • Paquetes útiles
    • Recursos
  • Dynamo en Forma (beta)
    • Configurar Dynamo Player en Forma
    • Añadir y compartir gráficos en Dynamo Player
    • Ejecutar gráficos en Dynamo Player
    • Diferencias en el servicio de cálculo de Dynamo con la versión de escritorio de Dynamo
  • Codificación en Dynamo
    • Bloques de código y DesignScript
      • ¿Qué es un bloque de código?
      • Sintaxis de DesignScript
      • Abreviatura
      • Funciones
    • Geometría con DesignScript
      • Conceptos básicos de geometría con DesignScript
      • Primitivas geométricas
      • Matemáticas vectoriales
      • Curvas: puntos interpolados y de control
      • Traslación, rotación y otras transformaciones
      • Superficies: interpoladas, puntos de control, solevación y revolución
      • Parametrización geométrica
      • Intersección y recorte
      • Operaciones booleanas geométricas
      • Generadores de puntos de Python
    • Python
      • Nodos de Python
      • Python y Revit
      • Configurar su propia plantilla de Python
    • Cambios en el lenguaje
  • Prácticas recomendadas
    • Estrategias gráficas
    • Estrategias de creación de secuencias de comandos
    • Referencia de secuencias de comandos
    • Administración del programa
    • Trabajar de forma eficaz con grandes conjuntos de datos en Dynamo
  • Flujos de trabajo de ejemplo
    • Flujos de trabajo para empezar
      • Jarrón paramétrico
      • Puntos de atractor
    • Índice de conceptos
  • Guía de introducción para desarrolladores
    • Compilar Dynamo a partir del código fuente
      • Compilar DynamoRevit a partir del código fuente
      • Administración y actualización de dependencias en Dynamo
    • Desarrollo para Dynamo
      • Introducción
      • Caso real de Zero-Touch (nodo de rejilla)
      • Ejecución de secuencias de comandos de Python en nodos Zero-Touch (C#)
      • Conceptos avanzados de Zero-Touch
      • Personalización avanzada de nodos de Dynamo
      • Uso de tipos COM (interoperabilidad) en paquetes de Dynamo
      • Caso real de NodeModel (interfaz de usuario personalizada)
      • Actualización de paquetes y bibliotecas de Dynamo para Dynamo 2.x
      • Actualización de paquetes y bibliotecas de Dynamo para Dynamo 3.x
      • Extensiones
      • Definición de la organización de paquetes personalizados para Dynamo 2.0+
      • Interfaz de línea de comandos de Dynamo
      • Integración de Dynamo
      • Desarrollo para Dynamo for Revit
      • Publicar un paquete
      • Compilar un paquete desde Visual Studio
      • Extensiones como paquetes
    • Solicitudes de incorporación de cambios
    • Expectativas de las pruebas
    • Ejemplos
  • Apéndice
    • Preguntas frecuentes
    • Programación visual y Dynamo
    • Recursos
    • Notas de la versión
    • Paquetes útiles
    • Archivos de ejemplo
    • Mapa de integración de anfitriones
    • Descargar PDF
    • Métodos abreviados de teclado de Dynamo
Powered by GitBook
On this page
  • Generación de geometría frente a triangulación
  • Uso de memoria
  • API de Revit
Edit on GitHub
Export as PDF
  1. Prácticas recomendadas

Trabajar de forma eficaz con grandes conjuntos de datos en Dynamo

PreviousAdministración del programaNextFlujos de trabajo de ejemplo

Last updated 2 months ago

En esta página, se presentan algunas reglas generales para trabajar eficazmente con grandes conjuntos de datos en Dynamo. Esperamos que pueda utilizar estos consejos para identificar cuellos de botella en los gráficos y que estos se ejecuten en cuestión de minutos en lugar de horas.

Contenido:

  • Generación de geometría frente a triangulación

  • Uso de memoria

  • API de Revit

Generación de geometría frente a triangulación

En Dynamo, crear una pieza de geometría y dibujarla son dos eventos completamente diferentes. En general, la creación de geometría es mucho más rápida y utiliza menos memoria que el dibujo del objeto. Puede pensar en la geometría como una lista de medidas para confeccionar un traje, mientras que la triangulación es el traje en sí. A partir de sus medidas, se puede saber bastante sobre el traje: cuánto miden los brazos, cuánto cuesta, etc. Sin embargo, casi siempre es necesario verlo y probarse el traje acabado para saber si es el correcto. Del mismo modo, con la geometría no triangulada, puede determinar el cuadro delimitador, el área y el volumen e intersecarla con otra geometría para después exportarla a SAT o Revit. Sin embargo, casi siempre hay que triangular la geometría para hacerse una idea de si es correcta o no.

Si el gráfico de Dynamo contiene una gran cantidad de objetos y se reduce su rendimiento durante la ejecución, podría ser beneficioso considerar la eliminación de los pasos de triangulación del gráfico para optimizar la velocidad de procesamiento.

Los nodos de geometría de Dynamo siempre se triangulan*. Esto le deja dos opciones para trabajar con geometría no triangulada: nodos de Python y ZeroTouch. Mientras no se devuelva un objeto geométrico fuera del nodo de Python o ZeroTouch, la geometría no se triangulará. Por ejemplo, si el gráfico muestra varios nodos de punto, conectados a varios nodos de línea, a su vez conectados a varios nodos de solevación, y estos, a su vez, conectados a varios nodos de engrosamiento, la geometría se triangulará en cada paso. En su lugar, puede agrupar esta lógica en un nodo de Python o ZeroTouch y solo devolver el objeto final fuera del nodo.

Puede encontrar más información sobre el uso de nodos ZeroTouch en la sección de este manual de introducción.

Uso de memoria

Si ya no está triangulando geometría, puede encontrarse con un cuello de botella de memoria debido a la acumulación excesiva de geometría. Los objetos geométricos de Dynamo consumen una cantidad menor, aunque no insignificante, de memoria al crearse. Si trabaja con cientos de miles o millones de objetos, esto puede sumarse y provocar que Dynamo o Revit se bloqueen. En la versión 2.5 de Dynamo y posteriores, esto se gestiona implícitamente deshaciéndose de los objetos no utilizados. Sin embargo, si utiliza una versión anterior a la 2.5, una forma de evitar la creación de mucha geometría es deshacerse de los objetos cuando haya terminado de utilizarlos. Por ejemplo, supongamos que va a crear cientos de miles de NurbsCurves, cada una de las cuales requiere docenas de puntos. Una forma de crearlas es una lista bidimensional en Dynamo para introducirlas a continuación en un nodo NurbsCurve.ByPoints. Sin embargo, eso requiere crear millones de puntos. Otra forma es utilizar un nodo de Python o ZeroTouch. En este nodo, puede crear una docena de puntos, introducirlos en NurbsCurve.ByPoints y, a continuación, eliminarlos con una llamada al método .Dispose(). Puede encontrar más información sobre el uso de nodos ZeroTouch en la sección de este manual de introducción. La eliminación de los objetos geométricos después de crearlos puede reducir considerablemente la cantidad de memoria utilizada en determinadas circunstancias. Aunque esto ya se gestiona para los usuarios de Dynamo 2.5 y versiones posteriores, recomendamos que el usuario siga eliminando la geometría explícitamente si el caso de uso requiere reducir la memoria en un momento determinado. Consulte el artículo sobre para obtener más información sobre las nuevas funciones de estabilidad introducidas en Dynamo 2.5.

API de Revit

Si elimina objetos de forma agresiva en un nodo ZeroTouch o de Python y sigue teniendo problemas de memoria o rendimiento, puede que sea necesario saltarse por completo el uso de Dynamo y crear objetos de Revit directamente a través de la API. Por ejemplo, puede analizar un archivo de Excel para obtener información sobre puntos y utilizarla para crear XYZ y otros de elementos de Revit mediante la API correspondiente. Llegados a este punto, Revit se convertirá en el último cuello de botella, lo que no puede evitarse.

Desarrollo para Dynamo
Desarrollo para Dynamo
mejoras en la estabilidad de la geometría de Dynamo