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
- 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
- Your TIE service calls AAS Studio /api/v1/extract with the PDF
- AAS Studio returns the AAS structure; your service builds the AASX zip via your preferred AAS library (e.g. BaSyx Java)
- Service uploads the AASX as a new Teamcenter dataset with a "AAS_FILE" relation to the part
- 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.