Skip to content

Scripting API

Handles

Every facade that creates or queries returns a handle — IGem, IBezel, ICathedral, … A handle is a live view of one object in the current document: each property read goes back to the document, so it never gets stale. Its Id is stable across parametric edits, which means the handle stays valid after a setter regenerates the object in place. Setters and mutations call the license gate first and belong inside a Transaction; getters are always free.

All handles except IGem build on the two base interfaces below, so each handle page only lists what it adds.

Ring bodies

HandleReturned bySetters
IClassicClassicApifull: profiles (top/mid/bottom), external, opening, gems row
ICathedralCathedralApifull: band, arms, bridge, pavé row
IAdvancedCathedralAdvancedCathedralApifull: stations, arm, bridge, pavé row, stone gradient
IEternityEternityApifull: stones, prongs, bezel rails, both band halves
IBypassBypassApifull: crossing arms, stations, bridge, graded gems row
ISplitShankSplitShankApifull: rail, three swept sections, graded pave run
IGraduatedGraduatedApifull: two morphing profiles, stone run, tapering prongs
IPaveShankPaveShankApifull: band, longitudinal rows, prongs
ITwoRowsShankTwoRowsShankApifull: classic band, channel, prongs, gems
IMatchingShankMatchingShankApifull: fit against the mother, band, section deltas, gems row
ISignetRingSignetRingApifull: face, band sections, recess
IAdvancedSignetRingAdvancedSignetRingApifull: face, lateral profile, bottom cut
IWeddingWeddingApifull: both rings — metal, profile, stones
IWeddingBandWeddingBandApifull: metal, profile, stones

Gems and settings

HandleReturned bySetters
IGemGemApimaterial, carat, size, scale, plane, rotation, flip
IBezelBezelApiheight, width, girdle, gem inside
IAdvancedBezelAdvancedBezelApi
IPegheadPegheadApiprongs, height, thickness, girdle, gem inside
IBasketBasketApiprong count, diameter, height
IAdvancedBasketAdvancedBasketApiprong/rail count, prong diameter, height
IHaloHaloApistone size, stone distance
IHiddenHaloHiddenHaloApistone size, stone distance
IClusterClusterApi
ITulipTulipApipipe diameter, height
IMartiniMartiniApiprong height, side gem size
ITrellisGemsetTrellisGemsetApi
ICutterCutterApi
IMicroSettingMicroSettingApi
IGemsOnCurveGemsOnCurveApi
IGemsByNetworkGemsByNetworkApi
ICabochonCabochonApi
IPearlPearlApi

The bases

IParametricObject is the structural surface shared by every parametric jewelry object exposed to scripting, whether the kernel stores it as a group or as a typed custom object:

MemberMeaning
IdThe object’s Guid — stable across parametric edits
MotherGemIdThe parent gem’s Guid if there is one, Guid.Empty otherwise
ObjectTypeThe type name — "Basket", "Halo", "Bezel", "Cathedral", …
LayerNameFull layer path
PositionThe object’s placement point (Point3d)
Move(translation)Translate the whole object by a Vector3d
Delete()Remove the object (the whole group) from the document

Move and Delete are mutations — both are gated by the license check.

IGemSetting extends IParametricObject for objects that wrap exactly one gem (basket, halo, bezel, peghead, …). Ring-like objects — Classic, Cathedral, Eternity — hold multiple gems and do not implement it:

MemberMeaning
GemShapeThe mother gem’s shape, e.g. "ROUND"
GemMaterialThe mother gem’s material, e.g. "Diamond"
GemCaratWeightThe mother gem’s carat weight