Autodesk · Arazzo Workflow

Autodesk Extract Model Properties

Version 1.0.0

Confirm a translation, resolve a viewable, walk its object tree, and query filtered properties.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub Fortune 10003D ModelingArchitectureBIMCADConstructionDesignDigital TwinsEngineeringManufacturingMedia and EntertainmentSustainabilityArazzoWorkflows

Provider

autodesk

Workflows

extract-model-properties
Pull filtered object properties out of an already-translated design.
Verifies the manifest reports a successful translation, resolves the first viewable, fetches its object tree, and issues a property query filtered to the fields the caller actually needs.
4 steps inputs: fields, limit, propertyKey, propertyValue, urnBase64 outputs: matchedProperties, objects, viewableGuid
1
confirmTranslation
Confirm the manifest reports a successful translation before attempting to read derived data. Properties do not exist until the property database derivative has finished generating.
2
resolveViewable
List the model views of the design and take the GUID of the first viewable, which addresses the object tree and property database for that view.
3
readObjectTree
Retrieve the object hierarchy for the viewable. A 202 means the tree is still being generated on demand, so the step retries rather than failing.
4
queryMatchingProperties
Query the property database for the objects whose property matches the supplied value, returning only the requested fields. This is the scalable alternative to pulling all properties for large models.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Autodesk Extract Model Properties
  summary: Confirm a translation, resolve a viewable, walk its object tree, and query filtered properties.
  description: >-
    A read-only extraction pass over a design that Model Derivative has already
    translated. Integrators run this to pull a bill of materials, a quantity takeoff,
    or an asset register out of a Revit or AutoCAD model without ever opening the
    desktop product. The workflow confirms the derivative is ready, resolves the
    viewable GUID, retrieves the object hierarchy, and then runs a filtered property
    query rather than downloading every property of every object. Every step spells
    out its request inline so the flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: manifestApi
  url: ../openapi/autodesk-manifest-api-openapi.yml
  type: openapi
- name: metadataApi
  url: ../openapi/autodesk-metadata-api-openapi.yml
  type: openapi
workflows:
- workflowId: extract-model-properties
  summary: Pull filtered object properties out of an already-translated design.
  description: >-
    Verifies the manifest reports a successful translation, resolves the first
    viewable, fetches its object tree, and issues a property query filtered to the
    fields the caller actually needs.
  inputs:
    type: object
    required:
    - urnBase64
    - propertyKey
    - propertyValue
    properties:
      urnBase64:
        type: string
        description: >-
          The URL-safe Base64 encoded URN of the source design.
      propertyKey:
        type: string
        description: >-
          The property path to match on in the query (e.g. "s.props.p20d8441e" or
          a name path exposed by the property database).
      propertyValue:
        type: string
        description: The value the property must equal for the object to be returned.
      fields:
        type: array
        description: >-
          The property names to return for each matched object. Keeps large models
          from returning every property of every object.
        items:
          type: string
      limit:
        type: integer
        description: Maximum number of objects to return in one page.
        default: 100
  steps:
  - stepId: confirmTranslation
    description: >-
      Confirm the manifest reports a successful translation before attempting to read
      derived data. Properties do not exist until the property database derivative has
      finished generating.
    operationId: getManifest
    parameters:
    - name: urn
      in: path
      value: $inputs.urnBase64
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.status == "success"
      type: jsonpath
    outputs:
      status: $response.body#/status
      derivatives: $response.body#/derivatives
  - stepId: resolveViewable
    description: >-
      List the model views of the design and take the GUID of the first viewable,
      which addresses the object tree and property database for that view.
    operationId: getMetadata
    parameters:
    - name: urn
      in: path
      value: $inputs.urnBase64
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      viewableGuid: $response.body#/data/metadata/0/guid
      viewableName: $response.body#/data/metadata/0/name
  - stepId: readObjectTree
    description: >-
      Retrieve the object hierarchy for the viewable. A 202 means the tree is still
      being generated on demand, so the step retries rather than failing.
    operationId: getObjectTree
    parameters:
    - name: urn
      in: path
      value: $inputs.urnBase64
    - name: guid
      in: path
      value: $steps.resolveViewable.outputs.viewableGuid
    - name: forceget
      in: query
      value: true
    successCriteria:
    - condition: $statusCode == 200
    onFailure:
    - name: treeStillGenerating
      type: retry
      retryAfter: 10
      retryLimit: 12
      criteria:
      - condition: $statusCode == 202
    outputs:
      objects: $response.body#/data/objects
      rootObjectId: $response.body#/data/objects/0/objectid
      rootName: $response.body#/data/objects/0/name
  - stepId: queryMatchingProperties
    description: >-
      Query the property database for the objects whose property matches the supplied
      value, returning only the requested fields. This is the scalable alternative to
      pulling all properties for large models.
    operationId: queryProperties
    parameters:
    - name: urn
      in: path
      value: $inputs.urnBase64
    - name: guid
      in: path
      value: $steps.resolveViewable.outputs.viewableGuid
    requestBody:
      contentType: application/json
      payload:
        query:
          $eq:
          - $inputs.propertyKey
          - $inputs.propertyValue
        fields: $inputs.fields
        pagination:
          offset: 0
          limit: $inputs.limit
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      collection: $response.body#/data/collection
      firstObjectId: $response.body#/data/collection/0/objectid
      firstExternalId: $response.body#/data/collection/0/externalId
  outputs:
    viewableGuid: $steps.resolveViewable.outputs.viewableGuid
    objects: $steps.readObjectTree.outputs.objects
    matchedProperties: $steps.queryMatchingProperties.outputs.collection

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/autodesk-model-properties-extraction-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.