Ridenominazione di strutture
![](https://primer2.dynamobim.org/~gitbook/image?url=https%3A%2F%2F977504712-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FcjugM499QmKp4nEs1EdU%252Fuploads%252Fgit-blob-d72ea215d017c534b76e42228f4cc47d414dc16c%252FUtilities_RenameStructures_Player.gif%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=7b8755ef&sv=1)
Quando si aggiungono tubi e strutture ad una rete di tubazioni, in Civil 3D viene utilizzato un modello per assegnare automaticamente i nomi. In genere, ciò è sufficiente durante il posizionamento iniziale, ma inevitabilmente i nomi dovranno cambiare in futuro man mano che il progetto si evolve. Inoltre, potrebbero essere necessari molti modelli di denominazione diversi, ad esempio nominare in modo sequenziale le strutture all'interno di un ramo a partire dalla struttura più a valle o seguire un modello di denominazione che sia allineato con lo schema di dati di un'agenzia locale. Questo esempio dimostrerà come Dynamo può essere utilizzato per definire qualsiasi tipo di strategia di denominazione che possa essere applicata in modo coerente.
Scopo
🎯 Rinominare le strutture della rete di tubi in ordine in base alla progressiva di un tracciato.
Concetti chiave
Utilizzo delle caselle di delimitazione
Filtraggio dei dati mediante il nodo List.FilterByBoolMask
Ordinamento dei dati mediante il nodo List.SortByKey
Generazione e modifica di stringhe di testo
Compatibilità delle versioni
Questo grafico verrà eseguito su Civil 3D 2020 e versioni successive.
Set di dati
Iniziare scaricando i file di esempio riportati qui sotto, quindi aprendo il file DWG e il grafico di Dynamo.
Soluzione
Ecco una panoramica della logica di questo grafico.
Selezionare le strutture in base al layer
Ottenere le posizioni delle strutture
Filtrare le strutture per offset, quindi ordinarle in base alla progressiva
Generare i nuovi nomi
Rinominare le strutture
Procediamo!
Selezione delle strutture
La prima cosa da fare è selezionare tutte le strutture con cui si intende lavorare. A tale scopo, è sufficiente selezionare tutti gli oggetti su un determinato layer, ovvero le strutture di reti di tubi differenti (supponendo che condividano lo stesso layer).
![](https://primer2.dynamobim.org/~gitbook/image?url=https%3A%2F%2F977504712-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FcjugM499QmKp4nEs1EdU%252Fuploads%252Fgit-blob-ab4a6d13fc990709fe155b5b064f9149a5cf9e4e%252FUtilities_RenameStructures_SelectStructures%2520%281%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=58d0e252&sv=1)
Questo nodo garantisce che non vengano recuperati accidentalmente eventuali tipi di oggetto indesiderati che potrebbero condividere lo stesso layer delle strutture.
Recupero delle posizioni delle strutture
Ora che si hanno le strutture, occorre dove si trovano nello spazio in modo da poterle ordinare in base alla loro posizione. Per eseguire questa operazione, si utilizzerà la casella di delimitazione di ogni oggetto. La casella di delimitazione di un oggetto è il riquadro di dimensioni minime che contiene completamente le estensioni geometriche dell'oggetto. Calcolando il centro della casella di delimitazione, si ottiene un'approssimazione piuttosto buona del punto di inserimento della struttura.
![](https://primer2.dynamobim.org/~gitbook/image?url=https%3A%2F%2F977504712-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FcjugM499QmKp4nEs1EdU%252Fuploads%252Fgit-blob-6759c7ac8c1a1dfe5f07ed9b1b309e1efb8f5861%252FUtilities_RenameStructures_GetPosition.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=cf434ebb&sv=1)
Questi punti verranno utilizzati per ottenere la progressiva e l'offset delle strutture rispetto ad un tracciato selezionato.
![](https://primer2.dynamobim.org/~gitbook/image?url=https%3A%2F%2F977504712-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FcjugM499QmKp4nEs1EdU%252Fuploads%252Fgit-blob-e422ae8ff537297adc0c4fa0820645d705217bbc%252FUtilities_RenameStructures_SelectAlignment.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=6c31af01&sv=1)
![](https://primer2.dynamobim.org/~gitbook/image?url=https%3A%2F%2F977504712-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FcjugM499QmKp4nEs1EdU%252Fuploads%252Fgit-blob-9699dbe41848a1cd669a429e5421a35c5a44afda%252FUtilities_RenameStructures_StationOffset.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=7ddaeec3&sv=1)
Filtraggio e ordinamento
Ecco dove le cose iniziano a diventare un po' complicate. A questo punto, si ha un grande elenco di tutte le strutture sul layer specificato ed è stato scelto un tracciato in base al quale ordinarle. Il problema è che nell'elenco potrebbero essere presenti strutture che non si vuole rinominare. Ad esempio, potrebbero non far parte del tratto specifico a cui si è interessati.
![](https://primer2.dynamobim.org/~gitbook/image?url=https%3A%2F%2F977504712-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FcjugM499QmKp4nEs1EdU%252Fuploads%252Fgit-blob-ead7bdc2785ca1dc4994be8bc184c4fd187313aa%252FUtilities_RenameStructures_StructureIllustration.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=ae84514c&sv=1)
Il tracciato selezionato
Le strutture che si desidera rinominare
Le strutture da ignorare
Pertanto, è necessario filtrare l'elenco di strutture in modo da non considerare quelle che sono maggiori di un determinato offset rispetto al tracciato. Per ottenere questo risultato, è meglio utilizzare il nodo List.FilterByBoolMask. Dopo aver filtrato l'elenco di strutture, è possibile utilizzare il nodo List.SortByKey per ordinarle in base ai valori di progressiva.
Se non si conoscono gli elenchi, consultare la sezione Utilizzo di elenchi.
![](https://primer2.dynamobim.org/~gitbook/image?url=https%3A%2F%2F977504712-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FcjugM499QmKp4nEs1EdU%252Fuploads%252Fgit-blob-4b7e8ff5b333bf19a6d38b48d348888acd9caf9d%252FUtilities_RenameStructures_FilterAndSort.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=7ecc294&sv=1)
Verificare se l'offset della strutture è inferiore al valore di soglia.
Sostituire eventuali valori null con false.
Filtrare l'elenco di strutture e progressive.
Ordinare le strutture in base alle progressive
Generazione di nuovi nomi
L'ultima operazione da eseguire è creare nuovi nomi per le strutture. Il formato che si utilizzerà è <alignment name>-STRC-<number>
. Sono disponibili qui alcuni nodi aggiuntivi per aggiungere nuovi zeri ai numeri, se lo si desidera (ad esempio, "01" anziché "1").
![](https://primer2.dynamobim.org/~gitbook/image?url=https%3A%2F%2F977504712-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FcjugM499QmKp4nEs1EdU%252Fuploads%252Fgit-blob-9141cddf6593de5f5cc8222864b10b9261a1b478%252FUtilities_RenameStructures_GenerateNames.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=48f7b99f&sv=1)
Ridenominazione di strutture
Infine, rinominare le strutture.
![](https://primer2.dynamobim.org/~gitbook/image?url=https%3A%2F%2F977504712-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FcjugM499QmKp4nEs1EdU%252Fuploads%252Fgit-blob-44b278e6f2405432ca702e7f56d3758b0d965faa%252FUtilities_RenameStructures_SetName.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=441f0fc0&sv=1)
Risultato
Di seguito è riportato un esempio di esecuzione del grafico mediante il Lettore Dynamo.
![](https://primer2.dynamobim.org/~gitbook/image?url=https%3A%2F%2F977504712-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FcjugM499QmKp4nEs1EdU%252Fuploads%252Fgit-blob-d72ea215d017c534b76e42228f4cc47d414dc16c%252FUtilities_RenameStructures_Player.gif%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=7b8755ef&sv=1)
Se non si conosce il Lettore Dynamo, consultare la sezione Lettore Dynamo.
🎉 Missione compiuta!
Attività extra: Visualizzazione in Dynamo
Può essere utile sfruttare l'anteprima di sfondo 3D di Dynamo per visualizzare gli output intermedi del grafico anziché solo il risultato finale. Una cosa semplice da fare è mostrare le caselle di delimitazione delle strutture. Inoltre, questo particolare set di dati include un modellatore nel documento, pertanto è possibile importare la geometria della linea caratteristica del modellatore in Dynamo per fornire un contesto per il punto in cui le strutture si trovano nello spazio. Se il grafico viene utilizzato in un set di dati che non dispone di modellatori, questi nodi non avranno alcuna funzione.
![](https://primer2.dynamobim.org/~gitbook/image?url=https%3A%2F%2F977504712-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FcjugM499QmKp4nEs1EdU%252Fuploads%252Fgit-blob-582a7d94fd35573b5a56adbf1bf68d12f09d8743%252FUtilities_RenameStructures_Visualize%2520%282%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=b3c9ff56&sv=1)
Ora è possibile capire meglio come funziona il processo di filtraggio delle strutture per offset.
![](https://primer2.dynamobim.org/~gitbook/image?url=https%3A%2F%2F977504712-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FcjugM499QmKp4nEs1EdU%252Fuploads%252Fgit-blob-9e294f0cf179feeb065327a4037d3f627a00f4cf%252FUtilities_RenameStructures_Dynamo%2520%281%29.gif%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=8abb23f3&sv=1)
Idee
Ecco alcune idee su come espandere le funzionalità di questo grafico.
Rinominare le strutture in base al relativo tracciato più vicino anziché selezionare un tracciato specifico.
Rinominare i tubi oltre alle strutture.
Impostare i layer delle strutture in base al loro tratto.
Last updated