Skip to content

Scripting API

IEternity

Returned by EternityApi — an eternity ring: a band with gems all around. Multiple gems, so no single mother gem. Adds to IParametricObject:

MemberMeaning
RingSizeLabelRing size label, e.g. "6", "M"
RingSizeRegionRing size region, e.g. "US", "EU"
RingDiameterMmInner diameter, mm
GemsThe stones around the band — IEternityGems
ProngsThe prongs holding them — IEternityProngs
BezelsThe bezel rails — IEternityBezels
ShankThe two band halves — IEternityShank

All four sections are live views over the ring’s stored parameters: their getters read the current values and every setter regenerates the ring in place (same Guid), re-baking its stones.

from ArtisanPlugin.Scripting import EternityApi as eternity, Transaction

ring = eternity.All()[0]
with Transaction.Begin("Half eternity in emerald cut"):
    ring.Gems.SetShape("EMERALD")
    ring.Gems.SetDistribution("HALF")
    ring.Prongs.SetMode("CURVED")

Stones (IEternityGems)

MemberMeaning
Shape"ROUND", "PRINCESS", …
Material"Diamond", "Ruby", …
CaratWeightCarat weight of one stone
SizeX / SizeY / SizeZStone dimensions, mm
Distribution"FULL", "HALF", "THREEQUARTERS", "FIVESTONES", "SEVENSTONES" or "NINESTONES"
Orientation"NATURAL" or "ROTATED"
MinDistanceMinimum distance between stones, mm
MoveInZRadial displacement of the stone row, mm
SetShape / SetMaterial / SetCaratWeightThe stone template
SetSize(x, y, z)Explicit dimensions in one call, mm
SetDistribution / SetOrientationHow the row runs around the band
SetMinDistance / SetMoveInZPlacement, mm

Prongs (IEternityProngs)

MemberMeaning
Distribution"SHARED" or "INDIVIDUAL_FOR_EACH_GEM"
Mode"STRAIGHT" or "CURVED"
TopDistance / BottomDistancemm
TopDiameter / BottomDiametermm
HeightOverGirdlemm
IndividualTopDistance / IndividualBottomDistancemm — used with the individual distribution
ExpansionManufacturingmm
SetDistribution / SetMode
SetTopDistance / SetBottomDistance / SetTopDiameter / SetBottomDiameter / SetHeightOverGirdlemm
SetIndividualTopDistance / SetIndividualBottomDistance / SetExpansionManufacturingmm

Bezel rails (IEternityBezels)

MemberMeaning
RailMode"SINGLE" or "DOUBLE"
RailShape"ROUND", "RECTANGLE" or "OVAL"
ProfileShape"ROUND" or "SQUARE"
RemoveFingerWhether the finger volume is removed
TopRail / BottomRailThe two rails — IEternityRail each
SetRailMode / SetRailShape / SetProfileShape / SetRemoveFinger

A rail (IEternityRail)

MemberMeaning
Diameter / Width / Height / MoveInZRail section and placement, mm
ThreadDiameter / ThreadX / ThreadYThread, mm
SetDiameter / SetWidth / SetHeight / SetMoveInZ / SetThreadDiametermm
SetThread(x, y)Both thread axes in one call, mm

Band (IEternityShank)

MemberMeaning
StartingCap / EndingCapCaps where the two halves meet, mm
Upper / LowerThe two band halves — IEternityShankParams each
SetStartingCap / SetEndingCapmm

A band half (IEternityShankParams)

MemberMeaning
ProfileNameRING_PROFILE asset name, "" when unset
Type"SOLID", "COMFORT" or "THICKNESS"
Width / HeightBand section, mm
ProfileThickness / HeightComfortmm
ProfileTypeProfile type selector
ProfileOrientation0 = Natural, 1 = Reverse
SetProfile(assetName)RING_PROFILE asset by name
SetType / SetWidth / SetHeight / SetProfileThickness / SetHeightComfort
SetProfileType / SetProfileOrientation

String parameters are case-insensitive and tolerate dashes/spaces; an unknown value raises a clear error listing the valid ones.