I pacchetti rappresentano un modo comodo per memorizzare e condividere i nodi con la comunità di Dynamo. Un pacchetto può contenere tutti gli elementi, dai nodi personalizzati creati nell'area di lavoro di Dynamo ai nodi derivati NodeModel. I pacchetti vengono pubblicati e installati utilizzando Package Manager. Oltre a questa pagina, la Guida introduttiva include una guida generale sui pacchetti.
Dynamo Package Manager è un Registro di sistema del software (simile a npm) accessibile da Dynamo o in un browser Web. Package Manager include l'installazione, la pubblicazione, l'aggiornamento e la visualizzazione di pacchetti. Come npm, mantiene diverse versioni dei pacchetti. Inoltre, consente di gestire le dipendenze del progetto.
Nel browser, cercare i pacchetti e visualizzare le statistiche: https://dynamopackages.com/.
In Dynamo, Package Manager include i pacchetti di installazione, pubblicazione e aggiornamento.
Cercare i pacchetti in linea:
Pacchetti > Ricerca pacchetti
.Visualizzare/Modificare i pacchetti installati:
Pacchetti > Gestisci pacchetti
.Pubblicare un nuovo pacchetto:
Pacchetti > Pubblica nuovo pacchetto
.
I pacchetti vengono pubblicati da Package Manager all'interno di Dynamo. Il processo consigliato consiste nel pubblicare localmente, verificare il pacchetto e quindi pubblicarlo in linea per condividerlo con la comunità. Utilizzando il case study NodeModel, verranno eseguiti i passaggi necessari per pubblicare il nodo RectangularGrid come pacchetto localmente e quindi in linea.
Avviare Dynamo e selezionare Pacchetti > Pubblica nuovo pacchetto...
per aprire la finestra Pubblica un pacchetto
.
Selezionare
Aggiungi file
per cercare i file da aggiungere al pacchetto.Selezionare i due file
.dll
dal case study NodeModel.Selezionare
Ok
.
Con i file aggiunti al contenuto del pacchetto, assegnare al pacchetto un nome, una descrizione e una versione. La pubblicazione di un pacchetto utilizzando Dynamo crea automaticamente un file pkg.json
.
Un pacchetto pronto per essere pubblicato.
Fornire le informazioni richieste per nome, descrizione e versione.
Pubblicare facendo clic su Pubblica localmente e selezionare la cartella del pacchetto di Dynamo:
AppData\Roaming\Dynamo\Dynamo Core\1.3\packages
per rendere disponibile il nodo in Core. Pubblicare sempre localmente il pacchetto fino a quando non è pronto per la condivisione.
Dopo la pubblicazione di un pacchetto, i nodi saranno disponibili nella libreria di Dynamo nella categoria CustomNodeModel
.
Il pacchetto appena creato nella libreria di Dynamo
Quando il pacchetto è pronto per la pubblicazione in linea, aprire Package Manager e scegliere Pubblica
, quindi Pubblica in linea
.
Per vedere come Dynamo ha formattato il pacchetto, fare clic sui tre punti verticali a destra di CustomNodeModel e scegliere Mostra directory principale.
Selezionare
Pubblica
, quindiPubblica in linea
nella finestra Pubblica un pacchetto di Dynamo.Per eliminare un pacchetto, selezionare
Elimina
.
L'aggiornamento di un pacchetto è un processo simile alla pubblicazione. Aprire Package Manager, selezionare Pubblica versione...
nel pacchetto che deve essere aggiornato e immettere una versione successiva.
Selezionare
Pubblica versione...
per aggiornare un pacchetto esistente con nuovi file nella directory principale, quindi scegliere se deve essere pubblicato localmente o in linea.
Il client Web di Package Manager viene utilizzato esclusivamente per la ricerca e la visualizzazione dei dati relativi ai pacchetti, come ad esempio le versioni e le statistiche di download.
Il client Web di Package Manager è accessibile tramite il seguente collegamento: https://dynamopackages.com/.
Se si stanno sviluppando assiemi da pubblicare come pacchetto per Dynamo, il progetto può essere configurato per raggruppare tutti i componenti di progetto necessari e inserirli in una struttura di directory compatibile con il pacchetto. Ciò consentirà di testare rapidamente il progetto come pacchetto e di simulare l'esperienza dell'utente.
In Visual Studio sono disponibili due metodi per la creazione di un pacchetto:
Aggiungere eventi post-compilazione tramite la finestra di dialogo Project Settings che utilizzano script xcopy o Python per copiare i file necessari
Utilizzare la destinazione della build "AfterBuild" nel file .csproj
per creare le operazioni di copia di file e directory.
"AfterBuild" è il metodo preferito per questi tipi di operazioni (e quello descritto in questo manuale), poiché non si basa sulla copia di file che potrebbe non essere disponibile nel computer di compilazione.
Impostare la struttura delle directory nel repository in modo che i file di origine siano separati dai file di pacchetto. Utilizzando il case study CustomNodeModel, posizionare il progetto di Visual Studio e tutti i file associati in una nuova cartella src
. Verranno memorizzati tutti i pacchetti generati dal progetto in questa cartella. La struttura delle cartelle dovrebbe ora essere simile alla seguente:
Spostare i file di progetto nella nuova cartella
src
Sarà necessario verificare che la destinazione sia stata aggiunta al file
CustomNodeModel.csproj
(non ad un altro file di progetto) e che per il progetto non siano state definite impostazioni post-compilazione esistenti.
Posizionare la destinazione AfterBuild prima del tag
</Project>
finale.
Nella sezione <ItemGroup>
, vengono definite diverse variabili per rappresentare tipi di file specifici. Ad esempio, la variabile Dll
rappresenta tutti i file nella directory di output con estensione .dll
.
L'operazione Copy
consiste nel copiare tutti i file .dll
in una directory, in particolare nella cartella del pacchetto in cui si sta eseguendo la compilazione.
I pacchetti di Dynamo in genere dispongono di una cartella dyf
e extra
per i nodi personalizzati di Dynamo e altri componenti di progetto, ad esempio le immagini. Per creare queste cartelle, è necessario utilizzare un'attività MakeDir
. Questa operazione creerà una cartella se non esiste. È possibile aggiungere i file manualmente a questa cartella.
Se si crea il progetto, la cartella di progetto dovrebbe ora avere una cartella packages
accanto alla cartella src
creata in precedenza. All'interno della directory packages
è presente una cartella contenente tutti gli elementi necessari per il pacchetto. È inoltre necessario copiare il file pkg.json
nella cartella del pacchetto in modo che Dynamo sappia di caricare il pacchetto.
La nuova cartella del pacchetto creata dalla destinazione AfterBuild
La cartella src esistente con il progetto
Le cartelle
dyf
eextra
create dalla destinazione AfterBuildCopiare manualmente il file
pkg.json
.
Ora è possibile pubblicare il pacchetto utilizzando il gestore di pacchetti di Dynamo o copiarlo direttamente nella directory del pacchetto di Dynamo: <user>\AppData\Roaming\Dynamo\1.3\packages
.
Ora che i file di origine si trovano in una cartella separata, aggiungere una destinazione AfterBuild
al file CustomNodeModel.csproj
in Visual Studio. In questo modo, i file necessari dovrebbero essere copiati in una nuova cartella del pacchetto. Aprire il file CustomNodeModel.csproj
in un editor di testo (è stato utilizzato ) e posizionare la destinazione della build prima del tag </Project>
di chiusura. Questa destinazione AfterBuild copierà tutti i file .dll, .pbd, .xml e .config in una nuova cartella bin e creerà una cartella dyf e cartelle extra.
È possibile eseguire l'installazione client delle estensioni di Dynamo nel gestore di pacchetti come le normali librerie di nodi di Dynamo. Quando un pacchetto installato contiene un'estensione della vista, l'estensione viene caricata in fase di esecuzione al caricamento di Dynamo. È possibile controllare la console di Dynamo per verificare che l'estensione sia stata caricata correttamente.
La struttura di un pacchetto di estensione è la stessa di un normale pacchetto contenente...
Si supponga di aver già creato l'estensione; si avrà (almeno) un assieme .NET e un file manifesto. L'assieme deve contenere una classe che implementa IViewExtension
o IExtension
. Il file .XML manifesto indica a Dynamo la classe di cui creare un'istanza per avviare l'estensione. Affinché il gestore di pacchetti possa individuare correttamente l'estensione, il file manifesto deve corrispondere in modo preciso alla posizione e alla denominazione dell'assieme.
Posizionare eventuali file di assiemi nella cartella bin
e il file manifesto nella cartella extra
. In questa cartella è possibile inserire anche eventuali risorse aggiuntive.
Esempio di file .XML manifesto:
Una volta creata una cartella contenente le sottodirectory descritte in precedenza, è possibile eseguire il push (caricamento) nel gestore di pacchetti. Una cosa di cui tenere conto è che attualmente non è possibile pubblicare pacchetti da Dynamo Sandbox. Ciò significa che è necessario utilizzare DynamoRevit. Una volta all'interno di DynamoRevit, accedere a Pacchetti => Pubblica nuovo pacchetto. In questo modo, l'utente dovrà accedere all'Autodesk Account a cui desidera associare il pacchetto.
A questo punto dovrebbe comparire la normale finestra di pubblicazione del pacchetto, dove verranno compilati tutti i campi obbligatori relativi al pacchetto/all'estensione. Esiste un passaggio aggiuntivo molto importante che richiede di assicurarsi che nessuno dei file di assiemi sia contrassegnato come libreria di nodi. A tale scopo, fare clic con il pulsante destro del mouse sui file importati (la cartella del pacchetto creata in precedenza). Verrà visualizzato un menu contestuale che consente di selezionare (o deselezionare) questa opzione. Tutti gli assiemi dell'estensione dovrebbero essere deselezionati.
Prima di pubblicare in linea, si dovrebbe sempre pubblicare localmente per assicurarsi che tutto funzioni come previsto. Una volta verificato questo aspetto, si è pronti per l'attivazione selezionando Pubblica in linea.
Per verificare che il pacchetto sia stato caricato con successo, si dovrebbe essere in grado di cercarlo in base alla denominazione e alle parole chiave specificate nel passaggio di pubblicazione. Infine, è importante notare che le stesse estensioni richiederanno un riavvio di Dynamo prima di funzionare. In genere, queste estensioni richiedono parametri specificati all'avvio di Dynamo.