Att exportera modelldata ska inte kännas som ett veckovis vågspel. Men om du någon gång har kört batch-exporter i Revit eller IFC bara för att upptäcka saknade filer, pyttesmå nollbytesutdata eller fel exportläge, vet du hur snabbt “snabbt” blir en halvdags sanering.
Den här Revit Excel-automationen drabbar BIM-ansvariga hårdast, om vi ska vara ärliga. VDC-leads och projektingenjörer känner också av det, eftersom det är de som jagar “var är kalkylbladet?” mellan mappar och mejltrådar. Vinsten är enkel: verifierade XLSX-exporter i batch, plus en tydlig HTML-rapport du kan dela utan att behöva be om ursäkt.
Nedan ser du hur workflowet körs, vad det producerar, var det sparar verklig tid och vad du ska tänka på när du sätter upp det på en Windows-maskin.
Så fungerar den här automationen
Hela n8n-workflowet, från trigger till slutresultat:
n8n Workflow Template: Revit till Excel – verifierade exporter med HTML-rapport
flowchart LR
subgraph sg0["Manual Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Manual Trigger", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Capture Pipeline Start Time1"]
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge Pipeline Start with Co.."]
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Configuration Parameters1", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Find CAD Files1", pos: "b", h: 48 }
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge Config with Search Res.."]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Process File List1"]
n7@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check if Files Exist1", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Files for Processing1", pos: "b", h: 48 }
n9@{ icon: "mdi:cog", form: "rounded", label: "Create Output Directory1", pos: "b", h: 48 }
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge File Data1"]
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Capture Start Time1"]
n12@{ icon: "mdi:cog", form: "rounded", label: "Small Delay", pos: "b", h: 48 }
n13@{ icon: "mdi:cog", form: "rounded", label: "Execute Conversion1", pos: "b", h: 48 }
n14["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Calculate Conversion Time1"]
n15["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge Data Before Verificati.."]
n16@{ icon: "mdi:cog", form: "rounded", label: "Verify Output Files and Get ..", pos: "b", h: 48 }
n17["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Complete File Verification1"]
n18["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Generate HTML Report1"]
n19["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Prepare Binary Data1"]
n20@{ icon: "mdi:cog", form: "rounded", label: "Save HTML File1", pos: "b", h: 48 }
n21["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Verify and Prepare Path1"]
n22@{ icon: "mdi:cog", form: "rounded", label: "Open HTML Report1", pos: "b", h: 48 }
n23@{ icon: "mdi:cog", form: "rounded", label: "Final Completion Notice1", pos: "b", h: 48 }
n24@{ icon: "mdi:swap-vertical", form: "rounded", label: "No Files Found Response1", pos: "b", h: 48 }
n12 --> n13
n0 --> n1
n4 --> n5
n20 --> n21
n10 --> n11
n22 --> n23
n6 --> n7
n11 --> n12
n11 --> n15
n13 --> n14
n19 --> n20
n7 --> n8
n7 --> n24
n18 --> n19
n9 --> n10
n21 --> n22
n14 --> n15
n17 --> n18
n8 --> n9
n8 --> n10
n1 --> n3
n1 --> n2
n3 --> n2
n15 --> n16
n5 --> n6
n2 --> n4
n2 --> n5
n16 --> n17
end
subgraph sg1["Schedule Flow"]
direction LR
n25@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger1", pos: "b", h: 48 }
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0,n25 trigger
class n7 decision
class n1,n6,n11,n14,n17,n18,n19,n21 code
classDef customIcon fill:none,stroke:none
class n1,n2,n5,n6,n10,n11,n14,n15,n17,n18,n19,n21 customIcon
Problemet: batch-exporter misslyckas i det tysta
Att batch-konvertera CAD/BIM-filer låter rakt på sak tills du gör det i skala. En projektmapp har nästlade undermappar, en annan har konstiga tecken i en sökväg och en tredje innehåller blandade filtyper du inte planerade för. Du startar exporterna, väntar och manuellt stickprovar utdata en och en. Det är där tiden försvinner. Det värsta är osäkerheten: du vet inte vad som fallerade förrän någon försöker använda datan (ofta precis innan en deadline).
Friktionen bygger på. Här är var det faller isär.
- Manuella exporter tvingar dig att öppna filer, välja alternativ och upprepa samma val hela eftermiddagen.
- Misslyckade konverteringar kan fortfarande “se” lyckade ut tills du ser att XLSX saknas eller är misstänkt liten.
- Team slutar med att exportera med inkonsekventa lägen (basic vs. complete), vilket gör efterföljande analys rörig.
- Det finns ingen samlad rapport att dela, så statusuppdateringar blir skärmdumpar och Slack-meddelanden.
Lösningen: batch-konvertera och verifiera Revit/IFC/DWG/DGN till Excel
Det här workflowet skannar en mapp efter dina modellfiler (.rvt, .ifc, .dwg, .dgn), kör en lokal Windows-konverterare för varje fil och verifierar sedan utdata automatiskt. Du väljer hur “djupt” exporten ska gå (basic, standard, complete eller custom) och om du vill ha extra som bounding boxes, Revit-scheman eller sheet-PDF:er. Efter varje körning kontrollerar workflowet att förväntade utdatafiler finns och har en meningsfull storlek, och sammanställer därefter resultatet i en strukturerad HTML-sammanfattning. När det är klart skriver det rapporten till disk och öppnar den åt dig, så att du kan granska fel direkt i stället för att upptäcka dem flera dagar senare.
Workflowet startar från en manuell körning (eller ett valfritt tidsschema), läser in din konfiguration och inventerar filer i källmappen. Sedan konverterar det varje fil med RvtExporter.exe och verifierar den resulterande XLSX-filen (och valfri DAE) innan en delbar HTML-rapport byggs.
Det du får: automation vs. resultat
| Det här workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du behöver exportera 20 Revit-modeller för en veckovis mängdgranskning. Manuellt, även med cirka 10 minuter per fil för att öppna, exportera, namnge utdata och stickprova, hamnar du på ungefär 3 timmar (och det är innan du hanterar de två som misslyckas). Med det här workflowet ställer du in käll- och utdatakataloger en gång, kör batchen och granskar HTML-rapporten på slutet. Realistiskt är det cirka 10 minuter för uppsättning plus den konverteringstid din dator behöver medan du gör annat arbete.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Windows-värd för att köra PowerShell och den lokala konverteraren
- DDC Revit toolkit (RvtExporter.exe) för själva modellkonverteringen
- Google Drive om du vill lagra eller flytta utdata centralt
- Google Sheets om du vill logga resultat för uppföljning
- OpenAI API-nyckel (hämta den i inställningarna i ditt OpenAI-konto)
Kunskapsnivå: Medel. Du klistrar in sökvägar, ställer in alternativ och bekräftar Windows-behörigheter, men du skriver inte kod från grunden.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Du startar det manuellt (eller via timer). Workflowet innehåller en manuell trigger för körningar på beställning, plus en schematrigger som du kan aktivera om du vill ha nattliga eller veckovisa batch-exporter.
Det läser in din konfiguration och söker i dina mappar. Du ställer in sökvägen till konverteraren, källmappen, utdatamappen, filändelsen och flaggor som include_subfolders. Sedan använder n8n ett Windows-kommando (PowerShell Get-ChildItem) för att bygga en filinventering.
Varje fil konverteras och verifieras direkt. För varje .rvt/.ifc/.dwg/.dgn som hittas kör n8n RvtExporter.exe med ditt valda exportläge (basic, standard, complete eller custom) och valfria flaggor som bbox, schedule eller sheets2pdf. Efter konverteringen kontrollerar ett annat kommando om XLSX (och DAE, om du inte använde -no-collada) finns och har en rimlig storlek.
En strukturerad HTML-rapport skrivs och öppnas. Workflowet sammanställer lyckade/misslyckade körningar, filsökvägar, in-/utdatastorlekar och processtider i en tidsstämplad HTML-rapport, sparar den, normaliserar sökvägen och öppnar den automatiskt på Windows-värden.
Du kan enkelt ändra exportläge och flaggor för att matcha olika leveranser (till exempel endast XLSX med -no-collada, eller complete + schedules för QTO-tungt arbete). Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera den manuella triggern
Starta arbetsflödet med en manuell trigger och fånga metadata för pipeline-start.
- Lägg till noden Manual Execution Start som trigger.
- Koppla Manual Execution Start till Record Pipeline Start.
- Behåll standardinställningarna i Record Pipeline Start för att logga tidsstämplar för pipeline-start från den medföljande JavaScript-koden.
Steg 2: anslut inställningar för lokalt filsystem
Definiera konverterarens binär, källmapp och utdatamapp som används av kommandoradsbaserade konverteringspipelinen.
- I Configure Runtime Options, ställ in converter_path till
C:\Path\To\Converter\RvtExporter.exe. - Ställ in source_folder till
C:\Path\To\Sourceoch output_folder tillC:\Path\To\Output. - Ställ in include_subfolders till
falseoch file_extension till.rvt. - Ställ in options till
basic schedule -no-collada(notera att det dubbla mellanslaget matchar arbetsflödet). - Säkerställ att Record Pipeline Start skickar utdata parallellt till både Configure Runtime Options och Combine Start and Config.
- Konfigurera Combine Start and Config med Mode satt till
combineoch Combine By satt tillcombineByPosition.
Steg 3: konfigurera filupptäckt och validering
Sök i källkatalogen efter CAD-filer, bearbeta inventeringen och styr arbetsflödet baserat på om filer hittas.
- I Search CAD Assets, ställ in Command till
=powershell -Command "Get-ChildItem -LiteralPath '{{ $json.source_folder }}' -Filter '*{{ $json.file_extension }}' {{ $json.include_subfolders ? '-Recurse' : '' }} | Select-Object -ExpandProperty FullName". - Säkerställ att Combine Start and Config skickar utdata parallellt till både Search CAD Assets och Join Config and Search.
- Ställ in Join Config and Search till att kombinera efter position (Mode
combine, Combine BycombineByPosition). - Koppla Join Config and Search till Process File Inventory för att normalisera och berika fillistan.
- I Validate File Presence, bekräfta att villkoret kontrollerar filer med
{{ $json.files && $json.files.length || 0 }}större än0. - Routa “false”-utgången från Validate File Presence till No Files Found Message för fallback-svaret.
Steg 4: konfigurera batchkonvertering och verifiering
Dela upp filer för batchbearbetning, skapa utdatamappar, kör konverteraren och verifiera utdata parallellt.
- I Split Files for Batch, ställ in Field To Split Out till
files. - Split Files for Batch skickar utdata parallellt till både Create Output Folder och Merge File Context.
- Ställ in Create Output Folder Command till
=mkdir "{{ $json.config.output_folder }}" 2>nul || echo Output directory ready. - Ställ in Merge File Context till Mode
combineoch Combine BycombineByPosition, och koppla sedan till Capture Conversion Start. - Capture Conversion Start skickar utdata parallellt till både Brief Execution Pause och Assemble Verification Data.
- I Run Conversion Command, ställ in Command till
="{{ $json.converter_path }}" "{{ $json.file_path }}" "{{ $json.expected_output }}" "{{ $json.expected_output_dae }}" {{ $json.options }}. - Koppla Brief Execution Pause till Run Conversion Command, och sedan till Compute Conversion Duration.
- Koppla Compute Conversion Duration till Assemble Verification Data, och därefter till Check Outputs and Sizes och Finalize Verification Results.
Steg 5: konfigurera rapportgenerering och utdataåtgärder
Bygg HTML-rapporten, skriv den till disk och öppna den automatiskt.
- Koppla Finalize Verification Results till Build HTML Summary för att generera rapportdata.
- Koppla Build HTML Summary till Prepare Report Binary, och sedan till Write HTML Report.
- I Write HTML Report, ställ in File Name till
{{ $json.full_path }}och Data Property Name tillreport. - Koppla Write HTML Report till Normalize Report Path, och sedan till Launch HTML Report.
- I Launch HTML Report, ställ in Command till
=cmd /c start "" "{{ $json.windows_path }}". - Koppla Launch HTML Report till Publish Completion Notice för att logga sammanfattningsmeddelandet.
no-collada för att justera framgångskriterier och rapportmeddelanden.Steg 6: testa och aktivera ert arbetsflöde
Testa pipelinen manuellt för att verifiera kommandokörning, utdatafiler och rapportgenerering, och aktivera sedan för produktionsanvändning.
- Klicka Execute Workflow från Manual Execution Start för att köra ett fullständigt test.
- Bekräfta att Run Conversion Command skapar utdatafiler i den sökväg som konfigurerats i Configure Runtime Options.
- Verifiera att Write HTML Report skapar en HTML-fil och att Launch HTML Report öppnar den.
- Kontrollera konsolutdata från Publish Completion Notice för sammanfattningsmeddelandet.
- När ni är nöjda, växla arbetsflödet till Active för produktionsanvändning.
Vanliga fallgropar
- Google Drive-inloggningar kan gå ut eller kräva specifika behörigheter. Om något skapar fel, kontrollera först n8n-testet för inloggningsuppgifterna och åtkomsten till Drive-mappen.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du redigera utdata för alltid.
Vanliga frågor
Cirka 30–60 minuter när du har konverteraren installerad och dina mappar förberedda.
Nej. Du klistrar främst in filsökvägar, väljer exportalternativ och kopplar inloggningar om du använder Google Drive eller Sheets.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis testperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna med OpenAI API-användning (oftast några ören per körning om du håller AI-stegen lätta).
Två alternativ: n8n Cloud (hanterat, enklast att sätta upp) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det är en vanlig justering. I konfigurationsnoden där du sätter “options” lägger du till flaggan -no-collada så att workflowet hoppar över att skapa DAE-filer. Du kan också byta exportläge (basic/standard/complete/custom) och aktivera extra som bbox, schedule eller sheets2pdf beroende på vad efterföljande team faktiskt använder.
Oftast beror det på utgången auktorisering eller fel Google-konto. Återanslut Google Drive-inloggningen i n8n och bekräfta sedan att målmappen är åtkomlig för samma konto. Om workflowet körs på en låst Windows-värd, kontrollera också att maskinen kan nå Google (proxy-/brandväggsregler kan blockera). Till sist, säkerställ att du inte slår i Drive-kvoter om du laddar upp stora utdata hela dagen.
En typisk körning klarar utan problem tiotals filer, och hundratals om din Windows-värd är dimensionerad för det.
För lokal Windows-konvertering är n8n oftast det praktiska valet eftersom det kan köra Execute Command-steg och hantera grenad verifiering utan att tvinga in dig i dyr task-prissättning. Zapier och Make är bra för moln-till-moln-automationer, men de är inte byggda för att på ett tillförlitligt sätt anropa lokala körbara filer som RvtExporter.exe. Dessutom vinner det här workflowet på “riktig” logik: hantering av inga-filer-hittades, tidtagning per fil och verifiering innan rapportering. Om du redan har en Zapier-tung stack kan du fortfarande behålla den för notifieringar medan n8n gör konverteringsjobbet. Prata med en automationsexpert om du vill ha hjälp att välja den mest rena uppsättningen.
När detta väl rullar slutar export och verifiering av modelldata att vara en veckovis brandkårsutryckning. Du får XLSX-utdata, en rapport du kan lita på och utrymme att fokusera på vad datan faktiskt säger dig.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.