Skip to content

bastto/FragmentsUnreal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

82 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FragmentUnreal

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!


πŸš€ Features

  • πŸ— Import BIM models in Fragment 2.0 format
  • 🧱 Translate model hierarchy, geometry, and metadata into Unreal-native assets

πŸ“¦ Installation

1. Clone the Plugin

git clone https://github.com/bastto/FragmentsUnreal.git

Or add it as a submodule (recommended for multi-repo projects):

git submodule add https://github.com/bastto/FragmentsUnreal.git

2. Enable in Your Project

  1. Open your Unreal project
  2. Go to Edit > Plugins
  3. Search for "FragmentUnreal" and enable it
  4. Restart the editor

πŸ›  Usage Runtime - (Blueprints)

🧩 Fragment Model Import Workflow

βœ… ProcessFragment

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 = true to save the generated geometry for future reuse.

  • Set UseDynamicMesh = true to generate a fast preview using DynamicMesh.

    ⚠️ When using DynamicMesh, SaveMeshes is ignored.

ProcessFragment Example

πŸ“₯ LoadFragment

Use LoadFragment to import and store a Fragment model in memory for later use during the session.

LoadFragment Example

🧠 ProcessLoadedFragment

Call ProcessLoadedFragment to spawn a previously loaded Fragment model using its ModelGuid.

  • Can optionally enable SaveMeshes or UseDynamicMesh just like in ProcessFragment.
ProcessLoadedFragment Example

🧱 SpawnItemsFromModel

Use this to spawn individual items and their children from a loaded model using:

  • ModelGuid – to identify the loaded model
  • Element LocalId – to specify the starting node

Supports both SaveMeshes and UseDynamicMesh.

SpawnItemsFromModel Example

πŸ›  Usage Runtime - (C++)

  1. Prepare a model in Fragment 2.0 format
  2. Add FragmentsUnreal as dependency in your Module
  3. Using the UFragmentsImporterSubsystem. Runtime Subsystem
  4. Same functions as in the blueprint example above.
  5. The plugin will generate actors, meshes, and materials in-scene
  6. Hierarchies, transforms, and metadata will be applied based on the input

πŸ›  Usage FragmentsEditor

⚠️ FragmentEditor, is an editor only module.

🧩 Fragment Model Import Workflow

  1. Prepare a model in Fragment 2.0 format
  2. Add FragmentsUnreal as dependency in your Module
  3. Using the UFragmentsImporterEditorSubsystem. Editor Subsystem
  4. Same functions as in the blueprint example above.

πŸ“ Repository Structure

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

🧩 Compatibility

  • Unreal Engine: > 5.3
  • Platforms: Windows, Android (runtime)
  • Dependencies: FlatBuffers (included)
  • Dependencies: libtess2 (included)

🀝 Contributing

We welcome pull requests and feature ideas!

πŸ“Œ Contribution Guidelines

  • 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 dev and must be merged via PR

πŸ›‘ License

This project is licensed under the MIT License. You are free to use, modify, and distribute it with attribution.


πŸ™‹β€β™‚οΈ Maintainer

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!


🌍 Join the Community

If you're integrating Fragment BIM data into Unreal, let’s connect and collaborate! Contributions, issues, or even just stars are appreciated. 🌟


πŸ’– Support the Project

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.

Even a small monthly donation goes a long way!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors