To prepare a file for the online viewer, first get an access token with the data:read
and data:write
scopes.
resp <- getToken(id = Sys.getenv("client_id"), secret = Sys.getenv("client_secret"), scope = "data:read data:write") myToken <- resp$content$access_token
Nex, encode the urn using the jsonlite::base64_enc()
function.
myEncodedUrn <- jsonlite::base64_enc(myUrn)
Then, translate the file into SVF format:
resp <- translateSvf(urn = myEncodedUrn, token = myToken)
To check the status of the translation process:
resp <- checkFile(urn = myEncodedUrn, token = myToken) resp
Finally, embed the urn of the file in the viewer, which is described in the Viewer section.
To extract data from a file, follow the steps in the previous section for getting a token with the data:read
and data:write
scopes, encoding the urn
of the file using the jsonlite::base64_enc()
function, and translating the file into SVF format using the translateSvf()
function. Next, retrieve metadata for a file using the getMetadata()
function, which returns an object with the type
, name
, and guid
of the file. Note the guid
and store it in .Renviron
.
resp <- getMetadata(urn = myEncodedUrn, token = myToken) myGuid <- resp$content$data$metadata[[1]]$guid
To get the object tree of a model, use the getObjectTree()
function.
resp <- getObjectTree(guid = myGuid, urn = myEncodedUrn, token = myToken) resp
To extract data from the model, use the getData()
function.
resp <- getData(guid = myGuid, urn = myEncodedUrn, token = myToken)
AutoDesk provides a WebGL-based viewer for rendering 2D and 3D models. To use the viewer, make sure to first follow the instructions in Prepare a File for the Viewer above. Then simply pass the urn
of the file and the token
to the viewer3D()
function:
viewer3D(urn = myEncodedUrn, token = myToken)
The viewer can also be embedded in Shiny applications, interactive R markdown documents, and other web pages thanks to the Shiny Modules framework. Here is a simple example of a Shiny app and the viewerUI()
function:
ui <- function(request) { shiny::fluidPage( viewerUI("pg", myEncodedUrn, myToken) ) } server <- function(input, output, session) { } shiny::shinyApp(ui, server)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.