Scripting API
Shanks
The ring bodies. Each has its own page: what its facade can create, and what its handle can edit afterwards.
ClassicThe comfort-fit band, with an optional row of stones.
CathedralArms rising toward the setting.
Advanced cathedralA cathedral shaped by editable stations along the arm.
EternityBand plus stones all around, standalone.
BypassTwo arms that cross past each other.
Split shankA band that opens into two arms toward the setting.
GraduatedStones stepping down from the centre stone to the band.
Pave shankA band carrying longitudinal rows of stones.
Two rowsTwo parallel rows of stones, one on each face.
Matching shankA band fitted against an existing ring.
SignetA flat face carried on a band - classic and advanced.
WeddingHis-and-hers sets and single bands.
Conventions
Everything follows the house rules: millimetres, 0 keeps the tool default (or your saved defaults), fingerDiameter = 0 uses the document’s configured ring size, profile picks a RING_PROFILE asset by name, and mutations belong inside a Transaction.
What each one can do
Three shanks can be built from scratch. The rest are query + edit: run their command in the UI once, then script every variant from the handle it leaves behind.
| Shank | Facade | Create | Edit |
|---|---|---|---|
| Classic | ClassicApi | yes | full |
| Cathedral | CathedralApi | yes | full |
| Eternity | EternityApi | yes | full |
| Advanced cathedral | AdvancedCathedralApi | - | full |
| Bypass | BypassApi | - | full |
| Split shank | SplitShankApi | - | full |
| Graduated | GraduatedApi | - | full |
| Pave shank | PaveShankApi | - | full |
| Two rows | TwoRowsShankApi | - | full |
| Matching shank | MatchingShankApi | - | full |
| Signet | SignetRingApi | - | full |
| Advanced signet | AdvancedSignetRingApi | - | full |
| Wedding set | WeddingApi | - | full |
| Wedding band | WeddingBandApi | - | full |
The shared surface
Every shank handle builds on IParametricObject:
| Member | Meaning |
|---|---|
Id | The object’s Guid - stable across parametric edits |
ObjectType | "Classic", "Cathedral", "Bypass", … |
LayerName | Full layer path |
Position | The shank’s placement point |
RingSizeLabel / RingSizeRegion / RingDiameterMm | The ring size, e.g. "54" / "EUROPE" / 17.2 |
Move(vector) / Delete() | Translate, or remove the whole group |
MotherGemId is empty by design - shanks are multi-gem objects, not children of one stone.
Every facade shares the same query surface - All(), Find(id), Count(), Selected(), ByLayer(name).
from ArtisanPlugin.Scripting import CathedralApi as cathedral
for s in cathedral.All():
print(s.RingSizeLabel, s.RingSizeRegion, s.RingDiameterMm)
Not scriptable yet
| Tool | Why |
|---|---|
| Ring by sections | The advanced ring driven by arbitrary section curves - no scripting surface |
| Class ring | No scripting surface |
| Ring extrude | No scripting surface |
| Scoop ring | The tool bakes plain Breps and stores no parameters, so there is nothing to re-edit - not even in the UI |