Os pacotes são uma forma conveniente de armazenar e compartilhar nós com a comunidade do Dynamo. Um pacote pode conter tudo, desde nós personalizados criados no espaço de trabalho do Dynamo até nós derivados do NodeModel. Os pacotes são publicados e instalados usando o Gerenciador de pacotes. Além desta página, o Manual tem um guia geral sobre os pacotes.
O Gerenciador de pacotes do Dynamo é um Registro de software (semelhante ao npm) que pode ser acessado no Dynamo ou em um navegador da Web. O Gerenciador de pacotes inclui a instalação, publicação, atualização e visualização de pacotes. Como o npm, ele mantém diferentes versões de pacotes. Também ajuda a gerenciar as dependências do projeto.
No navegador, procure pacotes e visualize as estatísticas: https://dynamopackages.com/
No Dynamo, o Gerenciador de pacotes inclui pacotes de instalação, publicação e atualização.
Procurar pacotes on-line:
Packages > Search for a Package...
Visualizar/editar pacotes instalados:
Packages > Manage Packages...
Publicar um novo pacote:
Packages > Publish New Package...
Os pacotes são publicados do Gerenciador de pacotes no Dynamo. O processo recomendado é publicar localmente, testar o pacote e, em seguida, publicar on-line para compartilhar com a comunidade. Usando o estudo de caso NodeModel, vamos passar pelas etapas necessárias para publicar o nó RetangularGrid como um pacote localmente e, em seguida, on-line.
Inicie o Dynamo e selecione Packages > Publish New Package...
para abrir a janela Publish a Package
.
Selecionar
Add file...
para procurar arquivos para adicionar ao pacoteSelecionar os dois arquivos
.dll
no estudo de caso NodeModelSelecionar
Ok
Com os arquivos adicionados ao conteúdo do pacote, atribua um nome, uma descrição e uma versão ao pacote. A publicação de um pacote usando o Dynamo cria automaticamente um arquivo pkg.json
.
Um pacote pronto para ser publicado.
Fornecer as informações necessárias para o nome, a descrição e a versão.
Publicar clicando em “Publicar localmente” e selecionar a pasta de pacotes do Dynamo:
AppData\Roaming\Dynamo\Dynamo Core\1.3\packages
para ter o nó disponível no Core. Sempre publique localmente até que o pacote esteja pronto para compartilhar.
Após a publicação de um pacote, os nós estarão disponíveis na biblioteca do Dynamo na categoria CustomNodeModel
.
O pacote que acabamos de criar na biblioteca do Dynamo
Quando o pacote estiver pronto para publicação on-line, abra o Gerenciador de pacotes, escolha Publish
e, em seguida, Publish Online
.
Para ver como o Dynamo formatou o pacote, clicar nos três pontos verticais à direita de “CustomNodeModel” e escolher “Mostrar diretório raiz”
Selecionar
Publish
e, em seguida,Publish Online
na janela “Publicar um pacote do Dynamo”.Para excluir um pacote, selecionar
Delete
.
A atualização de um pacote é um processo semelhante ao da publicação. Abra o Gerenciador de pacotes e selecione Publish Version...
no pacote que precisa ser atualizado e insira uma versão posterior.
Selecionar
Publish Version
para atualizar um pacote existente com novos arquivos no diretório raiz e, em seguida, escolher se ele deve ser publicado localmente ou on-line.
O cliente Web do Gerenciador de pacotes é usado exclusivamente para pesquisar e visualizar dados de pacotes, como o controle de versão e estatísticas de download.
É possível acessar o cliente Web do Gerenciador de pacotes neste link: https://dynamopackages.com/
As extensões do Dynamo podem ser implantadas no gerenciador de pacotes, como as bibliotecas de nós normais do Dynamo. Quando um pacote instalado contém uma extensão de vista, a extensão é carregada no tempo de execução quando o Dynamo é carregado. É possível verificar o console do Dynamo para verificar se a extensão foi carregada corretamente.
A estrutura de um pacote de extensão é a mesma que um pacote normal contendo...
Presumindo que você já tenha compilado a extensão, terá (no mínimo) uma montagem .NET e um arquivo de manifesto. A montagem deve conter uma classe que implementa IViewExtension
ou IExtension
. O arquivo de manifesto .XML informa ao Dynamo qual classe deve ser instanciada para iniciar a extensão. Para que o gerenciador de pacotes localize corretamente a extensão, o arquivo de manifesto deve corresponder com precisão à localização e à nomenclatura da montagem.
Coloque os arquivos de montagem na pasta bin
e o arquivo de manifesto na pasta extra
. Também é possível colocar todos os recursos adicionais nessa pasta.
Exemplo de arquivo .XML de manifesto:
Depois que você tiver uma pasta contendo os subdiretórios descritos acima, estará pronto para enviar (carregar) para o gerenciador de pacotes. Um ponto a ter em mente é que não é possível publicar pacotes do Dynamo Sandbox. Isso significa que é necessário estar usando o Dynamo Revit. Uma vez dentro do Dynamo Revit, navegue até Pacotes => Publicar novo pacote. Isso solicitará que o usuário faça login na Autodesk Account com a qual deseja associar o pacote.
Neste ponto, você deve estar na janela normal do pacote de publicação, onde será necessário inserir todos os campos obrigatórios relativos ao pacote/extensão. Há uma etapa adicional muito importante que requer que você assegure que nenhum dos arquivos de montagem esteja marcado como uma biblioteca de nós. Isso é feito clicando com o botão direito do mouse nos arquivos importados (a pasta de pacotes criada acima). Um menu de contexto será exibido, o que lhe dá a opção de marcar (ou desmarcar) essa opção. Todas as montagens de extensão devem estar desmarcadas.
Antes de publicar de forma pública, você deve sempre publicar localmente para assegurar que tudo funcione como esperado. Uma vez que isso tenha sido verificado, você estará pronto para entrar em ação selecionando Publicar.
Para verificar se o pacote foi carregado com êxito, você deverá ser capaz de pesquisá-lo com base na nomeação e nas palavras-chave especificadas na etapa de publicação. Por fim, é importante observar que as mesmas extensões exigirão uma reinicialização do Dynamo antes de funcionar. Normalmente, essas extensões exigem parâmetros especificados quando o Dynamo é inicializado.
Se você estiver desenvolvendo montagens a serem publicadas como um pacote do Dynamo, o projeto poderá ser configurado para agrupar todos os recursos necessários e colocá-los em uma estrutura de diretório compatível com o pacote. Isso permitirá que o projeto seja rapidamente testado como um pacote e simulará a experiência do usuário.
Há dois métodos para compilar um pacote no Visual Studio:
Adicionar eventos pós-compilação através da caixa de diálogo Configurações do projeto que usam scripts xcopy ou Python para copiar os arquivos necessários
Usar o destino de compilação “AfterBuild” no arquivo .csproj
para criar tarefas de cópia de arquivos e diretórios
“AfterBuild” é o método preferido para esses tipos de operações (e o que é abordado neste guia), pois não depende da cópia de arquivos que podem não estar disponíveis no computador de compilação.
Configure a estrutura de diretórios no repositório para que os arquivos de origem sejam separados dos arquivos de pacote. Trabalhando com o estudo de caso CustomNodeModel, coloque o projeto do Visual Studio e todos os arquivos associados em uma nova pasta src
. Todos os pacotes gerados pelo projeto serão armazenados nessa pasta. A estrutura de pastas deve ter este aspecto:
Mover os arquivos de projeto para a nova pasta
src
Agora que os arquivos de origem estão em uma pasta separada, adicione um destino AfterBuild
ao arquivo CustomNodeModel.csproj
no Visual Studio. Isso deve copiar os arquivos necessários para uma nova pasta de pacote. Abra o arquivo CustomNodeModel.csproj
em um editor de texto (usamos o Atom) e coloque o destino da compilação antes do identificador de fechamento </Project>
. Esse destino AfterBuild copiará todos os arquivos .dll, .pbd, .xml e .config para uma nova pasta bin e criará as pastas dyf e extras.
Precisamos ter certeza de que o destino foi adicionado ao arquivo
CustomNodeModel.csproj
(não a outro arquivo de projeto) e que o projeto não tem nenhuma configuração Pós-compilação existente.
Colocar o destino AfterBuild antes do identificador
</Project>
final.
Na seção <ItemGroup>
, são definidas um número de variáveis para representar tipos de arquivo específicos. Por exemplo, a variável Dll
representa todos os arquivos no diretório de saída cuja extensão é .dll
.
O objetivo da tarefa Copy
é copiar todos os arquivos .dll
para um diretório, especificamente a pasta de pacotes para a qual estamos compilando.
Os pacotes do Dynamo normalmente têm uma pasta dyf
e extra
para os nós personalizados do Dynamo e outros recursos, como imagens. Para criar essas pastas, é preciso usar uma tarefa MakeDir
. Essa tarefa criará uma pasta se ela não existir. É possível adicionar arquivos manualmente a essa pasta.
Se você compilar o projeto, a pasta do projeto agora deverá ter uma pasta packages
junto com a pasta src
criada anteriormente. Dentro do diretório packages
, há uma pasta que contém tudo o que é necessário para o pacote. Também precisamos copiar o arquivo pkg.json
para a pasta do pacote para que o Dynamo saiba como carregar o pacote.
A nova pasta de pacotes que o destino AfterBuild criou
A pasta src existente com o projeto
As pastas
dyf
eextra
criadas no destino AfterBuildCopiar manualmente o arquivo
pkg.json
.
Agora você pode publicar o pacote usando o gerenciador de pacotes do Dynamo ou copiá-lo diretamente para o diretório de pacotes do Dynamo: <user>\AppData\Roaming\Dynamo\1.3\packages
.