API en MCP
Van een model naar een tekening, via HTTP
De volledige workflow van de REST-API — een sessie, de bestanden, de configuratie, een voorbeeld, de export, de download — en hetzelfde programma in cURL, JavaScript, TypeScript en Python.
Voordat u begint
- Een Occlusia-account en een API-sleutel, gemaakt onder API-sleutels in uw account. Bewaar de sleutel in een omgevingsvariabele: de voorbeelden lezen
OCCLUSIA_API_KEY. - Een model: een
.skp-bestand opgeslagen met SketchUp 2021 of later, een.ifc-, een.fbx- of een.occs-bestand, hoogstens 512 MB. - Uw grafische standaard als configuratie, geëxporteerd uit Occlusia Studio met Export › Configuration (.occc) — of geen, en het model wordt getekend met de standaardinstellingen.
- Credits, of een account met vroege toegang: het openen van het model en elke export kosten credits (API en MCP, What it costs).
De zes stappen
- 01
Een sessie openen
POST /sessionsstart een eigen engine, aangemeld bij uw account, en antwoordt met zijnid. Een account heeft 3 sessies tegelijk; een sessie eindigt na 15 minuten zonder gebruik, of na 8 uur. - 02
De bestanden uploaden
PUT /sessions/{id}/files/{name}, met het bestand als ruwe body: het model en zijn configuratie. Een naam is de naam van het bestand in de sessie, nooit een pad op de server. - 03
Openen en configureren
De opdracht
model.openmet{"path": "house.skp"}opent het model en antwoordt met zijn weergaven, insections.config.setmet{"path": "standard.occc"}past de configuratie toe; een configuratie die het formaat schendt, wordt in zijn geheel geweigerd, met elke fout. - 04
Bekijken, als u wilt
preview.renderantwoordt met een weergave als PNG, JPEG of de SVG zelf, tot 2048 pixels op de langste zijde. Een export heeft dit niet nodig. - 05
Exporteer
exportmet eenformat—svg,dxf,pdf,pngofjpg—, desectionsom te tekenen — de naam van een weergave, of een lijst ervan — enout: een bestand voor één tekening, een map voor meerdere.mergedmaakt er één pdf van. - 06
Downloaden, dan de sessie afsluiten
GET /sessions/{id}/files/{name}downloadt wat de export schreef;DELETE /sessions/{id}sluit de sessie af, en haar bestanden worden ermee verwijderd.
Hetzelfde programma in vier talen
Eén model erin, zijn eerste weergave eruit als DXF, en de sessie afgesloten, ook als een stap mislukt. Elke taal stopt bij een weigering met haar status en de body van de fout.
KEY=occ_sk_… # Account › API keys
API=https://api.occlusia.app/v1/engine
AUTH="Authorization: Bearer $KEY"
JSON="Content-Type: application/json"
# 1. A session: an engine of your own, with its own files
S=$(curl -s -X POST $API/sessions -H "$AUTH" | jq -r .id)
# 2. The model and your graphic standard
curl -T house.skp $API/sessions/$S/files/house.skp -H "$AUTH"
curl -T standard.occc $API/sessions/$S/files/standard.occc -H "$AUTH"
# 3. Open the model (1 credit), apply the configuration (free)
curl $API/sessions/$S/commands/model.open -H "$AUTH" -H "$JSON" -d '{"path":"house.skp"}'
curl $API/sessions/$S/commands/config.set -H "$AUTH" -H "$JSON" -d '{"path":"standard.occc"}'
# 4. Export one view as DXF (1 credit per drawing)
curl $API/sessions/$S/commands/export -H "$AUTH" -H "$JSON" \
-d '{"format":"dxf","sections":"Section A-A","out":"section-a.dxf"}'
# 5. Download it, then end the session: its files are deleted with it
curl -o section-a.dxf $API/sessions/$S/files/section-a.dxf -H "$AUTH"
curl -X DELETE $API/sessions/$S -H "$AUTH"De voorbeelden exporteren de eerste weergave van het model. sections.list somt ze allemaal op en zegt welke actief is; objects.list, annotations.list en levels.list sommen de rest van het model op.
Weergaven en formaten kiezen
"sections": "Section A-A"exporteert één weergave;["Section A-A", "Ground floor plan"]meerdere, elk als eigen bestand in de mapout— of als één pdf met"merged": true.pagestelt de pdf-pagina van elke weergave in —format,orientation,scale_modefitofcustommet zijnscale_denominator(1:N),margins_mm—,pageséén weergave per keer;imagestelt het formaat of de schaal, de resolutie, de achtergrond en de kwaliteit van een PNG of JPEG in.export.configleest de pagina-instelling van elke weergave, enexport.setupwijzigt ze zonder te exporteren, zoals het exportvenster doet.- Een export antwoordt met de bestanden die hij schreef en wat hij kostte;
GET /sessions/{id}/filessomt de bestanden van de sessie op.
Opmaken zonder configuratiebestand
Elke instelling die een configuratie bevat, kan ook opdracht per opdracht worden ingesteld: object.set voor een object, object.apply_preset voor een arceringspreset, layers.create en layers.update voor de DXF-lagen, section.set voor een weergave, annotation.set en level.set voor notities en peilmaten. engine.schema somt elke instelling en haar waarden op; config.get antwoordt met de hele configuratie, om te bewaren als .occc-bestand.
Lange exports: jobs en events
Een pdf-reeks kan minuten duren. Stuur haar opdracht met Prefer: respond-async: ze antwoordt meteen met 202 en een job, en GET /sessions/{id}/jobs/{job} zegt of de job loopt, klaar is met zijn resultaat, of mislukt is met zijn fout. GET /sessions/{id}/events streamt wat de engine doet als server-sent events: progress, message, export, job, ended.
Fouten en nieuwe pogingen
- Elke weigering is
{"error": {"code", "message"}}, met een vaste code en de HTTP-status die erbij hoort. 429metcloud_limitofrate_limited, en503metbusy, dragenRetry-After: wacht zo lang en stuur dan hetzelfde verzoek opnieuw.- Stuur een
Idempotency-Keymee met een opdracht: een nieuwe poging na een verloren antwoord wordt beantwoord vanuit de eerste uitvoering — nooit uitgevoerd, nooit tweemaal aangerekend. - Elk antwoord draagt
X-Request-Id: geef hem mee bij elke vraag over een verzoek.
Naslag
- GET /v1/engine
- De versie en build van de engine, zonder sleutel.
- GET /v1/engine/openapi.json
- De hele API in OpenAPI.
- GET /v1/engine/commands
- Elke opdracht, met zijn parameters als JSON Schema.
Elke route, limiet en foutcode staat in API en MCP, onder The REST API.