Siemens Teamcenter

Auto-generate an AAS file for every part in Teamcenter using its attached datasheet PDF, attach the AASX as a Teamcenter dataset, and keep both in sync as datasheets are revised.

Audience: Teamcenter PLM admins + manufacturing engineers responsible for AAS-compliant supplier parts.

Topology

  1. Teamcenter's data exchange layer (TC Awc / TIE / Teamcenter Integration Framework) emits a "datasheet attached" event when an engineer attaches a PDF dataset to a part
  2. Your TIE service calls AAS Studio /api/v1/extract with the PDF
  3. AAS Studio returns the AAS structure; your service builds the AASX zip via your preferred AAS library (e.g. BaSyx Java)
  4. Service uploads the AASX as a new Teamcenter dataset with a "AAS_FILE" relation to the part
  5. On datasheet revision, the cycle re-runs and the AASX revision history mirrors the datasheet revision history

TypeScript

import { AasStudioClient } from '@aas-studio/sdk'

const aas = new AasStudioClient({ apiKey: process.env.AAS_STUDIO_KEY! })

export async function onDatasheetAttached(tcPartId: string, pdfBytes: Uint8Array) {
  const { result } = await aas.extract({
    file: pdfBytes,
    fileName: `${tcPartId}.pdf`,
    idPrefix: `urn:acme:tc:${tcPartId}`,
  })

  // Build AASX — placeholder, use your AAS lib of choice (BaSyx, AASX Package Explorer SDK, etc.)
  const aasxBlob = await buildAasxFromExtraction(result, pdfBytes)

  // Upload as new Teamcenter dataset
  await teamcenterClient.createDataset({
    parentItemId: tcPartId,
    type: 'AAS_FILE',
    name: `${result.assetIdShort}.aasx`,
    file: aasxBlob,
  })
}

Install: npm install @aas-studio/sdk

Python

from aas_studio import AasStudioClient

aas = AasStudioClient(api_key=os.environ["AAS_STUDIO_KEY"])

def on_datasheet_attached(tc_part_id: str, pdf_bytes: bytes, tc_client):
    response = aas.extract(pdf_bytes,
                           file_name=f"{tc_part_id}.pdf",
                           id_prefix=f"urn:acme:tc:{tc_part_id}")

    # Build AASX with your library of choice
    aasx_blob = build_aasx_from_extraction(response["result"], pdf_bytes)

    tc_client.create_dataset(
        parent_item_id=tc_part_id,
        dataset_type="AAS_FILE",
        name=f"{response['result']['assetIdShort']}.aasx",
        file_bytes=aasx_blob,
    )

Install: pip install aas-studio

Common pitfalls

  • Teamcenter dataset references can't exceed ~250 chars — make sure your idPrefix + assetIdShort combination stays within that limit. AAS Studio's assetIdShort is sanitised but length isn't guaranteed.
  • TC's AWC custom dataset types need to be defined upfront in BMIDE (Business Modeler IDE) before AAS_FILE references work. Plan a 1-day BMIDE onboarding before integration goes live.
  • For cyclic part-revision flows: the AAS extraction is non-deterministic at the LLM level. Two extractions of the same PDF may produce slightly different field values for low-confidence ("medium" tier) elements. Use the multi-source extraction with the same PDF supplied N times if you need bit-stable output for revision diffs.

References

All integration guidesTry AAS Studio free

Command palette

Navigate + run actions