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
    • Reproductor de Dynamo
    • Paquetes útiles
    • Recursos
  • 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
Edit on GitHub
Export as PDF
  1. Guía de introducción para desarrolladores
  2. Desarrollo para Dynamo

Compilar un paquete desde Visual Studio

PreviousPublicar un paqueteNextExtensiones como paquetes

Last updated 1 month ago

Si está desarrollando montajes para publicarlos como un paquete para Dynamo, el proyecto se puede configurar para agrupar todos los componentes necesarios y colocarlos en una estructura de directorios compatible con paquetes. Esto permitirá probar rápidamente el proyecto como un paquete y simular la experiencia de un usuario.

Cómo compilar directamente en la carpeta de paquetes

Existen dos métodos para compilar un paquete en Visual Studio:

  • Añada eventos posteriores a la compilación a través del cuadro de diálogo Configuración del proyecto que utilizan secuencias de comando de xcopy o Python para copiar los archivos necesarios.

  • Utilice el destino de compilación AfterBuild del archivo .csproj para crear tareas de copia de archivos y directorios.

AfterBuild es el método preferido para estos tipos de operaciones (y el que se describe en esta guía) ya que no se basa en la copia de archivos, que puede no estar disponible en el equipo de compilación.

Copiar archivos de paquetes con el método AfterBuild

Configure la estructura de directorios en el repositorio de forma que los archivos de código fuente sean independientes de los archivos de paquetes. Al trabajar con el caso real CustomNodeModel, incluya el proyecto de Visual Studio y todos los archivos asociados en una nueva carpeta src. Almacenará todos los paquetes generados por el proyecto en esta carpeta. La estructura de carpetas debería presentar el siguiente aspecto:

CustomNodeModel
> src
  > CustomNodeModel
  > CustomNodeModelFunction
  > packages
  > CustomNodeModel.sln
  1. Desplace los archivos de proyecto a la nueva carpeta src.

  <Target Name="AfterBuild">
    <ItemGroup>
      <Dlls Include="$(OutDir)*.dll" />
      <Pdbs Include="$(OutDir)*.pdb" />
      <Xmls Include="$(OutDir)*.xml" />
      <Configs Include="$(OutDir)*.config" />
    </ItemGroup>
    <Copy SourceFiles="@(Dlls)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />
    <Copy SourceFiles="@(Pdbs)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />
    <Copy SourceFiles="@(Xmls)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />
    <Copy SourceFiles="@(Configs)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />
    <MakeDir Directories="$(SolutionDir)..\packages\CustomNodeModel\dyf" />
    <MakeDir Directories="$(SolutionDir)..\packages\CustomNodeModel\extra" />
  </Target>

Deberá asegurarse de que el destino se haya añadido al archivo CustomNodeModel.csproj (no a otro archivo de proyecto) y de que el proyecto no presente ninguna configuración posterior a la compilación.

  1. Coloque el destino AfterBuild antes de la etiqueta </Project> final.

En la sección <ItemGroup>, se definen varias variables para representar tipos de archivo específicos. Por ejemplo, la variable Dll representa todos los archivos del directorio de salida cuya extensión es .dll.

<ItemGroup>
  <Dlls Include="$(OutDir)*.dll" />
</ItemGroup>

La tarea Copy consiste en copiar todos los archivos .dll en un directorio, en concreto, la carpeta de paquetes en la que se está realizando la compilación.

<Copy SourceFiles="@(Dlls)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />

Los paquetes de Dynamo suelen incluir las carpetas dyf y extra para los nodos personalizados de Dynamo y otros componentes como imágenes. Para crear estas carpetas, debemos utilizar una tarea MakeDir. Esta creará una carpeta si no existe. Puede añadir archivos manualmente a esta carpeta.

<MakeDir Directories="$(SolutionDir)..\packages\CustomNodeModel\extra" />

Si compila el proyecto, su carpeta debería incluir ahora una carpeta packages junto a la carpeta src creada anteriormente. En el directorio packages, hay una carpeta que contiene todo lo necesario para el paquete. También es necesario copiar el archivo pkg.json en la carpeta de paquetes para que Dynamo sepa cómo cargar el paquete.

  1. La nueva carpeta de paquetes creada por el destino AfterBuild.

  2. La carpeta src existente con el proyecto.

  3. Las carpetas dyf y extra creadas a partir del destino AfterBuild.

  4. Copie manualmente el archivo pkg.json.

Ahora puede publicar el paquete con la herramienta Package Manager de Dynamo o copiarlo directamente en el directorio de paquetes de Dynamo, <user>\AppData\Roaming\Dynamo\1.3\packages.

Ahora que los archivos de código fuente se encuentran en una carpeta independiente, añada un destino AfterBuild al archivo CustomNodeModel.csproj en Visual Studio. Esta acción debería copiar los archivos necesarios en una nueva carpeta de paquetes. Abra el archivo CustomNodeModel.csproj en un editor de texto (hemos utilizado ) y coloque el destino de compilación antes de la etiqueta </Project> de cierre. Este destino AfterBuild copiará todos los archivos .dll, .pbd, .xml y .config en una nueva carpeta bin y creará una carpeta dyf y otras adicionales.

Atom
Desplazamiento de archivos de proyecto
Colocación del destino AfterBuild
Copiar archivos