GithubHelp home page GithubHelp logo

Comments (4)

AlexanderMelde avatar AlexanderMelde commented on June 25, 2024 1

Thank you, this helps us a lot!

from xeokit-sdk.

xeolabs avatar xeolabs commented on June 25, 2024

Hi Alexander,

Note that glTF/GLB does not contain IFC semantic data (metadata), it only contains model geometry and materials.

To load IFC semantic data, you need to also load a JSON file alongside the glTF/glb that supplies the element hierarchy and property sets to xeokit, eg:

    const sceneModel = gltfLoader.load({
        id: "myModel",
        src: "../../assets/models/gltf/Schependomlaan/glTF-Embedded/Schependomlaan.gltf",
        metaModelSrc: "../../assets/models/gltf/Schependomlaan/Schependomlaan.json",
        edges: true
    });

Note also that we usually convert the glTF/glb to XKT for best results. Loading glTF/glb is possible, but XKT does some pre-conditioning to the data that makes it load a lot faster for large models.

We offer a couple of flavors of IFC->glTF/XKT conversion, but only one of them supports property sets at this time.

More information on IFC conversion here: https://xeokit.github.io/xeokit-model-conversion-tests/ifc-tests.html

If your enterprise needs prioritised support while evaluating xeokit, we'd be happy to help - if so, please get in touch here: https://creoox.com/en/contact/

thanks
Lindsay

from xeokit-sdk.

AlexanderMelde avatar AlexanderMelde commented on June 25, 2024

Hello Lindsay,

thank you for these explanations!
The links provided are useful as well for understanding the different file types.

I now have two follow-up questions:

  1. Does the GLTFLoaderPlugin use convert2xkt.js internally?
  2. Does the metamodel JSON file follow a certain standard, or is this a xeokit-specific format? I found a repo called xeokit-metadata, does this schema contain the structure for these JSON files? And I assume it is not ifcJSON?

Thank you for your help!

from xeokit-sdk.

xeolabs avatar xeolabs commented on June 25, 2024

Hi no problem -

  1. Does the GLTFLoaderPlugin use convert2xkt.js internally?

No, that just loads the glTF/glb directly into the xeokit Viewer. Note that as it does this, it will do a couple of things to the geometry on-the-fly ( 1. convert vertex coordinates to tiled coordinate system for precise double-precision rendering, and 2. quantize the vertex positions to integers for lower memory usage), that convert2xkt does offline when creating XKT. This is one reason we often pre-convert to XKT first, so those two things don't have to happen at loading time.

FYI we use the loaders.gl library internally within that plugin, to parse the glTF/glb.

Also FYI: although XKT is what we recommend for IFC models, that plugin is actually the best option for loading triangulated LiDAR comprised of textured triangle meshes. It handles the big textures more smoothly than XKT does.

  1. Does the metamodel JSON file follow a certain standard, or is this a xeokit-specific format? I found a repo called xeokit-metadata, does this schema contain the structure for these JSON files? And I assume it is not ifcJSON?

Yes, xeokit metamodel JSON conforms to the schema described here: https://github.com/xeokit/xeokit-convert/blob/main/specs/index.md

Currently we're at v10. It's not ifcJSON - it's more optimized for loading into xeokit.

The BIMSpot tool is not something we're collaborators on, so I'm not sure what the conformance of that is with our latest spec.

from xeokit-sdk.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.