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
| Handle | Returned by | Setters |
|---|---|---|
IClassic | ClassicApi | full: profiles (top/mid/bottom), external, opening, gems row |
ICathedral | CathedralApi | full: band, arms, bridge, pavé row |
IAdvancedCathedral | AdvancedCathedralApi | full: stations, arm, bridge, pavé row, stone gradient |
IEternity | EternityApi | full: stones, prongs, bezel rails, both band halves |
IBypass | BypassApi | full: crossing arms, stations, bridge, graded gems row |
ISplitShank | SplitShankApi | full: rail, three swept sections, graded pave run |
IGraduated | GraduatedApi | full: two morphing profiles, stone run, tapering prongs |
IPaveShank | PaveShankApi | full: band, longitudinal rows, prongs |
ITwoRowsShank | TwoRowsShankApi | full: classic band, channel, prongs, gems |
IMatchingShank | MatchingShankApi | full: fit against the mother, band, section deltas, gems row |
ISignetRing | SignetRingApi | full: face, band sections, recess |
IAdvancedSignetRing | AdvancedSignetRingApi | full: face, lateral profile, bottom cut |
IWedding | WeddingApi | full: both rings — metal, profile, stones |
IWeddingBand | WeddingBandApi | full: metal, profile, stones |
Gems and settings
| Handle | Returned by | Setters |
|---|---|---|
IGem | GemApi | material, carat, size, scale, plane, rotation, flip |
IBezel | BezelApi | height, width, girdle, gem inside |
IAdvancedBezel | AdvancedBezelApi | — |
IPeghead | PegheadApi | prongs, height, thickness, girdle, gem inside |
IBasket | BasketApi | prong count, diameter, height |
IAdvancedBasket | AdvancedBasketApi | prong/rail count, prong diameter, height |
IHalo | HaloApi | stone size, stone distance |
IHiddenHalo | HiddenHaloApi | stone size, stone distance |
ICluster | ClusterApi | — |
ITulip | TulipApi | pipe diameter, height |
IMartini | MartiniApi | prong height, side gem size |
ITrellisGemset | TrellisGemsetApi | — |
ICutter | CutterApi | — |
IMicroSetting | MicroSettingApi | — |
IGemsOnCurve | GemsOnCurveApi | — |
IGemsByNetwork | GemsByNetworkApi | — |
ICabochon | CabochonApi | — |
IPearl | PearlApi | — |
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:
| Member | Meaning |
|---|---|
Id | The object’s Guid — stable across parametric edits |
MotherGemId | The parent gem’s Guid if there is one, Guid.Empty otherwise |
ObjectType | The type name — "Basket", "Halo", "Bezel", "Cathedral", … |
LayerName | Full layer path |
Position | The 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:
| Member | Meaning |
|---|---|
GemShape | The mother gem’s shape, e.g. "ROUND" |
GemMaterial | The mother gem’s material, e.g. "Diamond" |
GemCaratWeight | The mother gem’s carat weight |