Torna al Blog
RevitDynamoAutomazioneParametri CondivisiExcel

Automatizzare i Parametri Condivisi in Revit con Dynamo ed Excel

Paulo Giavoni

Paulo Giavoni

Ingegnere & Specialista BIM

4 gennaio 20268 min read
Automatizzare i Parametri Condivisi in Revit con Dynamo ed Excel

La Sfida: Creare Parametri Condivisi su Scala#

Creare parametri condivisi in Revit è semplice — quando ne hai bisogno solo uno o due. Ma cosa succede quando devi creare 50 parametri per un progetto MEP complesso? O standardizzare più di 100 parametri nel template della tua organizzazione?

Il processo manuale diventa un incubo:

  • Aprire il file dei Parametri Condivisi
  • Creare ogni parametro uno per uno
  • Selezionare la categoria, il gruppo e il tipo di dati corretti
  • Ripetere... 50, 100 o 200 volte

È qui che Dynamo brilla. Ma ecco il dettaglio che confonde la maggior parte degli sviluppatori: l'API di Revit non accetta testo semplice per i tipi di parametri. Non puoi semplicemente digitare "Length" o "Text" — hai bisogno di oggetti Forge TypeId specifici.

Comprendere i Tipi di Parametri#

Prima di immergerci nella soluzione, capiamo le due specifiche di tipo critiche:

Spec Type (Tipo di Dati)#

Lo Spec Type definisce che tipo di dati il parametro memorizzerà — testo, numeri, misure, valori elettrici, ecc.

Opzioni Spec Type in Revit
Opzioni Spec Type in Revit

Esempi:

  • autodesk.spec:spec.string-2.0.0 → Testo
  • autodesk.spec.aec:length-2.0.0 → Misura di lunghezza
  • autodesk.spec.aec.electrical:power-2.0.0 → Potenza elettrica

Group Type (Posizionamento UI)#

Il Group Type determina in quale sezione il parametro appare nel pannello Proprietà di Revit — Dimensioni, Dati di Identità, Elettrico, Meccanico, ecc.

Opzioni Group Type in Revit
Opzioni Group Type in Revit

Esempi:

  • autodesk.parameter.group:identityData-1.0.0 → Sezione Dati di Identità
  • autodesk.parameter.group:dimensions-1.0.0 → Sezione Dimensioni
  • autodesk.parameter.group:electrical-1.0.0 → Sezione Elettrico

La Soluzione Dynamo#

L'intuizione chiave è che Excel memorizza tutto come testo, ma l'API di Revit richiede tipi di oggetto specifici. Il nostro script Dynamo fa da ponte convertendo stringhe di testo in oggetti API Revit appropriati.

Script Dynamo completo per creare parametri condivisi
Script Dynamo completo per creare parametri condivisi

Flusso di Lavoro dello Script#

Il flusso di lavoro si divide in 5 passaggi chiari:

1. Input Dati (Percorso File)

  • Localizza il tuo file Excel contenente le definizioni dei parametri
  • Semplicemente incolla il percorso completo del file Excel
  • Importante: Assicurati che il file Excel sia chiuso prima di eseguire lo script
Nodo input percorso file in Dynamo
Nodo input percorso file in Dynamo

2. Lettura Excel (Data.ImportExcel)

  • Legge tutte le righe e colonne dal tuo foglio di calcolo Excel
  • Tutti i dati escono come testo semplice (stringhe)
  • Questi dati grezzi devono essere convertiti in formati compatibili con Revit

3. Conversione Dati (List.Deconstruct + List.Transpose)

  • Separa ogni colonna Excel in liste individuali per l'elaborazione
  • Risulta in 6 liste separate: nome, categoria, gruppo, istanza/tipo, grouptype, spectype
  • Dynamo elabora le liste in modo più efficiente delle tabelle
Nodi conversione dati in Dynamo
Nodi conversione dati in Dynamo

4. Conversione Forge (Nodi TypeId)

  • Converte le stringhe di testo Excel in tipi di oggetto Revit appropriati
  • SpecType.ByTypeId: Converte stringhe spec type in oggetti SpecTypeId
  • GroupType.ByTypeId: Converte stringhe group type in oggetti GroupTypeId
  • Category.ByName: Converte nomi di categorie (come "Walls") in oggetti Category
Nodi conversione Forge TypeId
Nodi conversione Forge TypeId

5. Creazione Parametri (Parameter.CreateSharedParameter)

  • Crea i Parametri Condivisi effettivi nel tuo progetto Revit
  • Riceve tutti i dati convertiti dai passaggi precedenti
  • I parametri appaiono immediatamente nel tuo progetto Revit
Nodo creazione parametri con tutti gli input connessi
Nodo creazione parametri con tutti gli input connessi

Struttura del Template Excel#

Il tuo file Excel deve avere esattamente queste 6 colonne in questo ordine esatto:

Colonna

Scopo

Esempi

parameter_Name

Il nome che appare nelle Proprietà

ELEC_PANEL_RATING, STRUCT_BEAM_CAPACITY

category

Quali elementi Revit ricevono questo parametro

Walls, Doors, Electrical Equipment

groupName

Cartella personalizzata nella palette Proprietà

Electrical Analysis, Custom Dimensions

instance/Type

Parametro di Istanza (TRUE) o Tipo (FALSE)

TRUE, FALSE

grouptype

Sezione proprietà predefinita Revit

autodesk.parameter.group:electrical-1.0.0

spectype

Tipo di dati che il parametro memorizza

autodesk.spec:spec.string-2.0.0

Esempio Funzionante#

Ecco un esempio pronto all'uso per parametri di attrezzature ascensori:

Text
1parameter_Name category groupName instance/Type grouptype spectype
2SRE_ELEVATOR_TYPE Specialty Equipment Specialty Equipment_SRE FALSE autodesk.parameter.group:identityData-1.0.0 autodesk.spec:spec.string-2.0.0
3SRE_ELEVATOR_STOPS Specialty Equipment Specialty Equipment_SRE TRUE autodesk.parameter.group:identityData-1.0.0 autodesk.spec.aec:number-2.0.0
4SRE_ELEVATOR_LOAD Specialty Equipment Specialty Equipment_SRE FALSE autodesk.parameter.group:identityData-1.0.0 autodesk.spec.aec:number-2.0.0

Cosa crea:

  • 3 parametri per la categoria Specialty Equipment
  • Gruppo personalizzato chiamato "Specialty Equipment_SRE" nel pannello Proprietà
  • Mix di parametri testo (TYPE) e numerici (STOPS, LOAD)
  • Alcuni a livello di istanza (STOPS) e alcuni a livello di tipo (TYPE, LOAD)

Riferimento Rapido: Tipi Comuni di Parametri#

Tipo di Parametro

SpecType

GroupType

Descrizione Testo

autodesk.spec:spec.string-2.0.0

autodesk.parameter.group:identityData-1.0.0

Conteggio Numerico

autodesk.spec.aec:number-2.0.0

autodesk.parameter.group:identityData-1.0.0

Scelta Sì/No

autodesk.spec:spec.bool-1.0.0

autodesk.parameter.group:identityData-1.0.0

Lunghezza/Distanza

autodesk.spec.aec:length-2.0.0

autodesk.parameter.group:dimensions-1.0.0

Area

autodesk.spec.aec:area-2.0.0

autodesk.parameter.group:dimensions-1.0.0

Volume

autodesk.spec.aec:volume-2.0.0

autodesk.parameter.group:dimensions-1.0.0

Potenza Elettrica

autodesk.spec.aec.electrical:power-2.0.0

autodesk.parameter.group:electrical-1.0.0

Temperatura

autodesk.spec.aec.hvac:temperature-2.0.0

autodesk.parameter.group:mechanical-1.0.0

Forza Strutturale

autodesk.spec.aec.structural:force-2.0.0

autodesk.parameter.group:identityData-1.0.0

Checklist Pre-Esecuzione#

  • File Excel salvato e chiuso
  • Percorso file corretto nel nodo "File Path"
  • Dati compilati seguendo esattamente il template
  • Revit aperto con un progetto attivo

Errori Comuni e Soluzioni#

Errore

Soluzione

"Cannot find file"

Controlla se il percorso è corretto

"Invalid SpecType"

Usa esattamente i codici dalla lista Forge

"Parameter already exists"

Il parametro è già stato creato in precedenza

"Invalid Category"

Il nome della categoria deve essere in inglese

  • Categorie multiple: Separa con punto e virgola: "Walls;Doors;Windows"
  • Nomenclatura unica: Usa prefissi per evitare conflitti: "SRE_", "MEP_", "STRUCT_"
  • Testa incrementalmente: Inizia con 1-2 parametri prima di creare batch grandi
  • Sempre backup: Salva il tuo progetto Revit prima di eseguire lo script
  • Chiudi Excel: Assicurati che il tuo file Excel sia chiuso quando esegui Dynamo

Conclusione#

Automatizzare la creazione di parametri condivisi risparmia ore di lavoro manuale tedioso. L'intuizione chiave è capire che Revit richiede oggetti Forge TypeId appropriati, non semplici stringhe di testo. Con il template Excel e lo script Dynamo giusti, puoi creare centinaia di parametri standardizzati in secondi.

Lo script Dynamo completo e i template Excel sono disponibili nel nostro repository DynaGuide.

Hai domande sull'automazione dei parametri? Lascia un commento qui sotto o contatta il nostro team di supporto a support@unibim.io

Share:

Questions or Feedback?

I'd love to hear your thoughts on this article. Reach out directly and let's start a conversation.

Follow me on LinkedIn for more BIM tips and updates