FragmentUnreal is an Unreal Engine plugin designed to import and visualize BIM models in the Fragment 2.0 format. It bridges architecture and construction data with immersive 3D visualization in Unreal Engine.
π This plugin is actively developed. Community feedback and contributions are welcome!
- π Import BIM models in Fragment 2.0 format
- π§± Translate model hierarchy, geometry, and metadata into Unreal-native assets
git clone https://github.com/bastto/FragmentsUnreal.gitOr add it as a submodule (recommended for multi-repo projects):
git submodule add https://github.com/bastto/FragmentsUnreal.git- Open your Unreal project
- Go to Edit > Plugins
- Search for "FragmentUnreal" and enable it
- Restart the editor
Use ProcessFragment to import and spawn a Fragment model. The origin point (0,0,0) will be relative to the owning actor's position.
-
Set
SaveMeshes = trueto save the generated geometry for future reuse. -
Set
UseDynamicMesh = trueto generate a fast preview using DynamicMesh.β οΈ When usingDynamicMesh,SaveMeshesis ignored.
Use LoadFragment to import and store a Fragment model in memory for later use during the session.
Call ProcessLoadedFragment to spawn a previously loaded Fragment model using its ModelGuid.
- Can optionally enable
SaveMeshesorUseDynamicMeshjust like inProcessFragment.
Use this to spawn individual items and their children from a loaded model using:
ModelGuidβ to identify the loaded modelElement LocalIdβ to specify the starting node
Supports both SaveMeshes and UseDynamicMesh.
- Prepare a model in Fragment 2.0 format
- Add FragmentsUnreal as dependency in your Module
- Using the UFragmentsImporterSubsystem. Runtime Subsystem
- Same functions as in the blueprint example above.
- The plugin will generate actors, meshes, and materials in-scene
- Hierarchies, transforms, and metadata will be applied based on the input
β οΈ FragmentEditor, is aneditor onlymodule.
- Prepare a model in Fragment 2.0 format
- Add FragmentsUnreal as dependency in your Module
- Using the UFragmentsImporterEditorSubsystem. Editor Subsystem
- Same functions as in the blueprint example above.
FragmentUnreal/
βββ Source/
β βββ FragmentUnreal/ # Core plugin code
| β βββ Fragment/ # Fragment class to store element's data
| β βββ Importer/ # Fragments import logic
| β βββ Index/ # flatbuffers Fragment structure reference
| β βββ Utils/ # Functions library
β βββ FragmentEditor/ # Editor functionalitites
| β βββ EditorSubsystems/ # Editor import logic
βββ ThirdParty/ # ThirdParty dependencies
β βββ FlatBuffers/include/flatbufferss # Flatbuffers structure
β βββ libtess2 # libtess2 for mesh triangulation
| β βββ include/ # tesselator header file
| β βββ Lib/ # Libraries for Android/ARM64 and Win64
| β βββ Source/ # Source files
βββ Content/ # Assets
β βββ Materials # Base Materials
β βββ Resources # Fragments file example
βββ FragmentUnreal.uplugin # Plugin descriptor
- Unreal Engine: > 5.3
- Platforms: Windows, Android (runtime)
- Dependencies: FlatBuffers (included)
- Dependencies: libtess2 (included)
We welcome pull requests and feature ideas!
- Create a fork or work on a feature branch
- Write clean, commented, and modular code
- Follow Unreal Engine C++ standards
- Add a helpful description to your pull request
- All changes go through
devand must be merged via PR
This project is licensed under the MIT License. You are free to use, modify, and distribute it with attribution.
Jairo Basto Picott @jairo-picott. Msc. Civil Engineer | Software developer Feel free to open issues or email if you're using this in a real-world application!
If you're integrating Fragment BIM data into Unreal, letβs connect and collaborate! Contributions, issues, or even just stars are appreciated. π
If FragmentUnreal helps you save development time or adds value to your workflow, consider supporting its development.
Your contribution helps cover maintenance, new features, documentation, and plugin support.