glTF Exporter+API
glTF Exporter API .NET library export projects to the universal glTF file format which lots of 3D software can handle. If you don't need API to implement glTF export in your app use the glTF Exporter instead.

Ray Trace view of the model in Revit.
Exported and opened in default Windows 10 application.
Using glTF Exporter API in Visual Studio.
Options
Options
- Choose a file format between glTF and packed glb.
- Choose either to export materials or not.
- Select the geometry level of detail.
- Bake meshes by element or by material.
- Compress meshes using Draco compression.
- Export a model with multiple LODs combined into one file.
- Export file in glTF format via API with some statistics and validation results.

How does it work?
Connect the project to the code
To make use of glTF export functionality in your Revit add-in project get GS.Revit.GltfExporterAPI.dll under:
%ProgramData%\Autodesk\

Then:

.png)
1. Add .dll
Reference GS.Revit.GltfExporterAPI.dll from your Revit add-in development C# project (use the library from the corresponding folder for your targeted Revit version).
.png)
2. Validate the license
You need to pass your personal User ID to validate the license before starting the export (you can grab it once and keep in the settings of the add-in): Validate. License(developerId)
3. Create settings
Add the following code after the license validation to run the export:
var outputPath = @"C:\ExportResult.glb";
var settings = new GltfExportSettings(outputPath);
var exporter = new GltfExportSettings(settings);
exporter.Export(document, view);

4. Do the export
Resolve compilation errors using GS.Revit.GltfExporterAPI; execute the command from a 3D view and see results.
Or export a file from Revit
1. Open

Open any 3D view in Revit 2018 or later and run the glTF export command.


2. Save
Select the export settings and click the button. The files in the folder will be available to you.

3. Use
Once you have the glTF file you can send it to your client, share on the internet, preview in many gltf viewers or import into your software development project.



Use it any way you like.
How our solution helps clients
The add-in helps HoloLens and other Mixed Reality developers to get fast tiny files with LODs and all the materials right from Revit - no need to convert a Revit project using numerous software and tools to get the file AR compatible devices can handle. It will take you only a few lines of code to get things done!
glTF Exporter API library features embedded IntelliSense XML documentation and provides flexible export options. Except for those described on settings explained page they include:
- export materials as doublesided;
- limit vertices count for a single mesh;
- either export normals or not;
- format output json file and more.
Settings Explained
Group meshes
- Group meshes by element or by material option influences output file size, 3D model performance and file structure.
- Elements have their Revit Ids and are broken down by Revit category so the output file has nice structure.
- When grouping by material there are as many nodes in the file tree as materials in Revit project.

Model on the left has meshes grouped by element.
Model on the right has meshes grouped by material.

Large projects grouped by element may have less FPS rate. Number of draw calls for this model is 6494.

Gain more FPS grouping by material — only 55 draw calls — the same as number of materials. Though file size for the model has been increased from 18MB to 29MB.
Level of detail



Level of detail determines how many polygons 3D model has. It relates mostly to rounded objects and may dramatically impact the file size.
The same model of torus exported with LOD 1, LOD 3 and LOD 15 (5KB, 15KB and 396KB corresponding). LOD values from 5 to 7 are generally sufficient.
Export materials

glTF Exporter maps Revit materials to PBR materials (and to KHR if you choose export with merged LODs option) so you can get beautifully looking 3D model.
But if you what to experiment or get some statistics you can skip materials and export geometry just by disabling Export materials checkbox. This might be useful for some geometry analysis.
Output format

Output format option determines files you get. The best choice for projects which are going to be send by the Internet is glb format — there will be a single file you can immediately email to a client, for instance.
If you are planning to edit textures or want to see the file structure — choose glTF format. You can open glTF file with any text editor and edit materials from Textures folder.

Draco compression
Draco compression minimizes file size as much as possible. It’s extremely useful for large projects, but remember that not every third party software can handle compressed files. Projects exported with this option can be saved only as glb files. Difference in file size can be seen from the following export results:

Create merged LODs model
Create merged LODs model option improves the quality of detailed Revit models handling. With this checkbox enabled glTF Exporter creates three files: one with specified LOD and two other with degrading LOD, and merges them into single file. This might be specifically useful for Windows Mixed Reality developers.