Skip to content

Scripting API

Shanks

The ring bodies. Each has its own page: what its facade can create, and what its handle can edit afterwards.

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.

ShankFacadeCreateEdit
ClassicClassicApiyesfull
CathedralCathedralApiyesfull
EternityEternityApiyesfull
Advanced cathedralAdvancedCathedralApi-full
BypassBypassApi-full
Split shankSplitShankApi-full
GraduatedGraduatedApi-full
Pave shankPaveShankApi-full
Two rowsTwoRowsShankApi-full
Matching shankMatchingShankApi-full
SignetSignetRingApi-full
Advanced signetAdvancedSignetRingApi-full
Wedding setWeddingApi-full
Wedding bandWeddingBandApi-full

The shared surface

Every shank handle builds on IParametricObject:

MemberMeaning
IdThe object’s Guid - stable across parametric edits
ObjectType"Classic", "Cathedral", "Bypass", …
LayerNameFull layer path
PositionThe shank’s placement point
RingSizeLabel / RingSizeRegion / RingDiameterMmThe 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

ToolWhy
Ring by sectionsThe advanced ring driven by arbitrary section curves - no scripting surface
Class ringNo scripting surface
Ring extrudeNo scripting surface
Scoop ringThe tool bakes plain Breps and stores no parameters, so there is nothing to re-edit - not even in the UI