Search code examples
autodesk-forgevieweraec

How do I convert between 2D paper space coordinates world 3D coordinates for AEC models in a forge viewer?


I'm following a blog post by Petr Broz with my published views from a Revit project in BIM 360, but I was wondering how I would convert between 2D coordinates and 3D world coordinates if my published 2D view is actually just a stand-alone floor plan view without being placed on any sheet.

I was trying to get the viewport but I realized the published view doesn't have any viewport in the model. So I cannot actually use those functions in the extension for viewports. Any advise would be greatly appreciated.


Solution

  • My mistake was manually trying to convert x,y,z coordinates by dividing them with the viewport scale, thus they couldn't align with 3D world coordinates.

    By providing the correct model unitscale, I could get the transform with get3DTo2DMatrix().

        viewport = viewportExt.getViewports(viewer.model)[0];
        viewportXform viewport.get3DTo2DMatrix(viewer.model.getUnitScale());
        
        // From foot to millimeters
        x = x* 0.00328084;
        y = y* 0.00328084;
        z = z* 0.00328084;
        var worldPt = new THREE.Vector3(x,y,z);
        worldPt.applyMatrix4(viewportXform);