Modificare una superficie topografica con Dynamo

La superficie topografica non è di certo lo strumento più user friendly tra quelli disponibili in Revit, particolarmente quando ci si trova di fronte all’esigenza di creare manufatti su di un terreno articolato. Un’ottimo alleato è sicuramente dynamo, il miglior “coltellino svizzero” si possa desiderare durante il lavoro con Revit. Vediamo come attraverso la creazione di alcuni semplici nodi, è possibile automatizzare l’adattamento di una superficie topografica ad un altro elemento del modello; nel esempio che segue si tratta di un solido utilizzato per simulare un percorso pedonale.

Il flusso di lavoro prende spunto da alcune idee di Marcello Sgambelluri esposte nella class di Autodesk University “AB3340: Make Hardscape Follow Site Topography and Site Topography Follow Hardscape in Revit”.

Elementi revit

Gli elementi di cui abbiamo bisogno sono (Fig. 1):

  • una superficie topografica
  • elementi di modello, da utilizzare come riferimenti per l’estrapolazione dei punti da passare alla nuova superficie topografica
  • il pacchetto di definizioni Spring Nodes sviluppato da Dimitar Venkov (scaricabile tramite il gestore pacchetti di Dynamo), per trasformare una superficie topografica di revit in una polysurface di dynamo

La struttura di questa definizione prevede i seguenti passaggi logici:  selezione delle primitive di riferimento (curve), suddivisione delle stesse per la creazione di un elenco di punti, creazione della superficie topografica.

Operazioni preliminari da compiere in revit:

  1. Creazione della superficie topografica, in questo esempio è stata realizzata direttamente dal file dei punti fornito dal topografo.
  2. Creazione di un elemento che funga da “hardscape”, qui un modello locale a simulare un percorso pedonale con pendenza costante.
  3. Creazione di linee di modello finalizzate ad individuare la base della topografia di raccordo tra l’elemento hardscape e la superficie topografica.

riferimenti_2

Iniziamo ora a sviluppare la definizione di dynamo,

Per prima cosa, procediamo con la creazione della polysurface a partire dalla topografia nativa di revit (Fig. 2), quindi un nodo per la selezione (Select Model Element) ed un nodo per la creazione della geometria (Topograpy.ToPolysurface), che come anticipato fa parte di un pacchetto aggiuntivo da installare tramite Gestore dei pacchetti. Scopo di questo elemento “nativo” è quello di poterlo utilizzare per calcolare le intersezioni con altre geometrie.

Fig.2

Fig. 2

Ora utilizziamo le linee di modello disegnate in revit per poter ottenere delle superfici tramite una loro estrusione lungo la verticale. Anche qui, il primo step è la selezione delle geometrie native di revit, con il nodo Select Elements (notate il plurale, a riprova della possibilità di effettuare una selezione multipla). Tramite il successivo nodo Element Curves, vengono individuate le curve presenti nella selezione precedente, che vengono trasformate in una sequenza di polycurves con il nodo successivo. A questo punto è possibile inserire il nodo Curve Extrude per la generazione di due superfici verticali che vandano ad intersecare la polysurface ottenuta dalla topografia (Fig. 3).

Fig.3

Fig. 3

Fig.3a - Risultato grafico delle operazioni del nodo

Fig.3a – Risultato grafico delle operazioni del nodo

La valutazione delle geometrie di intersezione è quindi affindata al nodo Geometry.Intersect, i cui input saranno le superfici appena create e la polysurface, il risultato sono una serie di curve nurbs. Il nostro obbiettivo è però quello di ottenere dei punti per la generazione di una topografia, quindi è necessario suddividere queste curve con il nodo Curve.DivideEqually in grado di generare “sotto curve” dotate di punto d’inizio e punto di fine (Fig. 4).

Fig.4

Fig. 4

Questi punti possono essere interrogati con il nodo Curve.StartPoint, che può poi passare il suo output ad un nodo List.Create, in modo da ottenere l’elenco dei punti d’intersezione desiderato. Questa lista viene poi unita tramite il nodo List.Join alle liste di punti provenienti dalla selezione dei bordi della famiglia locale, descritte di seguito (Fig.5).

Fig.5

Fig. 5

Stessa logica viene applicata per ottenere i punti corrispondenti al ciglio del percorso, basandoci sulla selezione dei bordi della famiglia locale creata in revit, attraverso il nodo Select.Edge (Fig. 6).

Fig.6

Fig. 6

Fig.6a

Fig. 6a – Anteprima grafica delle operazioni del nodo

Terminata l’estrapolazione dei punti dai nostri riferimenti, non rimane altro da fare che collegare la lista che li contiene con il nodo Topography.ByPoints (Fig. 7)

Fig. 7

Fig. 7

A questo punto non rimane che lanciare l’esecuzione della definizione ed ammirare il risultato in revit (Fig. 8)

Risultato finale

Fig. 8

Definizione completa

Fig. 9

Buon revit+dynamo a tutti!

No Comments

Leave a Comment


Time limit is exhausted. Please reload CAPTCHA.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.