Forge Viewer: getExternalIdMapping() to return only certain dbIds from certain externalIds

A few ways depending on what exactly you need. Here’s what I’ve done.

function getDbIdFromExternalId(externalIds) {
    return new Promise((resolve) => {
      viewer.model.getExternalIdMapping((d) => {
        //console.log("getDbIdFromExternalId Executed");
        let responseArr = [];
        externalIds.forEach(externalId => {
            if(d[externalId]) responseArr.push([d[externalId], externalId]);
        });
        resolve(responseArr);
      });
    });
}
/*Your external IDs in here*/
var externalIds = ['23287','23292','23291'];
/*response is set here*/
var response = await getDbIdFromExternalId(externalIds);

Expected value of response (with my autocad viewer): [[39675,"23292"],[39674,"23291"]]

That way you can see the pair. Notice I threw in a value that didn’t map to anything, so the array was only populated with what it found.

Read more here: Source link