Skip to content

Python package

ra.trilogy

Three-stone families: trellis, halo, individual, bezel set, east-west.

import rhinoartisan as ra

Wraps ArtisanPlugin.Scripting.TrilogyApi.

Functions

Function
all()Trilogy handles for every object of this kind in the active document (empty when there is no document).
by_layer()Trilogy handles on the layer with the given full path (empty when the layer does not exist).
count()Number of objects of this kind in the active document.
create_bezel_set()Three bezels on a Three Stones (ArtisanTrilogyBezelSet, headless): one bezel per gem, the two sides sharing the center’s parameters unless side_edition (or any side* argument) splits them.
create_east_west()Three advanced baskets on a Three Stones (ArtisanTrilogyEastWest, headless).
create_halo()Three halos on a Three Stones (ArtisanTrilogyHalo, headless): the side halos share the center’s parameters unless side_edition (or a side* argument) splits them; cut_sides_with_center (default on) fuses the sides into the center halo, cut_by_ring_size trims them flush with the ring.
create_individual()One setting per slot on a Three Stones (ArtisanTrilogyIndividual, headless): center_setting / side_setting are TULIP, MARTINI or ADVANCED_BASKET (defaults: tulip in the center, advanced basket — a single rail — on the sides).
create_trellis()Trellis gemset on a Three Stones (ArtisanTrilogyTrellis, headless): 4 shank prongs from the side gems down to the ring curve, 4 cross prongs over the center stone and three under-girdle rails.
find()The handle for id, or None when the id does not belong to an object of this kind.
for_gem()Trilogy handles whose mother gem is gem_id (empty for None).
selected()Trilogy handles for the objects of this kind currently selected in the active document.

ra.trilogy.all()

ra.trilogy.all() -> List[Trilogy]

Trilogy handles for every object of this kind in the active document (empty when there is no document).

ra.trilogy.by_layer()

ra.trilogy.by_layer(layer_name: str) -> List[Trilogy]

Trilogy handles on the layer with the given full path (empty when the layer does not exist).

ParameterType
layer_namestrrequired

ra.trilogy.count()

ra.trilogy.count() -> int

Number of objects of this kind in the active document.

ra.trilogy.create_bezel_set()

ra.trilogy.create_bezel_set(gem_id=None, gem_ids=None, height=None, width=None, girdle_height=None, girdle_width=None, gem_inside=None, profile=None, support_count=None, side_edition=None, side_height=None, side_width=None, side_girdle_height=None, side_girdle_width=None, cut_by_ring_size=None, cut_by_ring_size_sides=None, element=None) -> TrilogyResult

Three bezels on a Three Stones (ArtisanTrilogyBezelSet, headless): one bezel per gem, the two sides sharing the center’s parameters unless side_edition (or any side* argument) splits them. mm; 0 = the tool/saved default (height 3.8, width 1.5, girdle 0.3 x 1.5). profile names a BEZEL_PROFILE asset; cut_by_ring_size trims the bezels flush with the ring size. Returns the TrilogyResult (ids).

ParameterType
gem_idOptional[IdLike]optional — None = the tool default
gem_idsSequence[IdLike]optional — None = the tool default
heightfloatoptional — None = the tool default
widthfloatoptional — None = the tool default
girdle_heightfloatoptional — None = the tool default
girdle_widthfloatoptional — None = the tool default
gem_insidefloatoptional — None = the tool default
profilestroptional — None = the tool default
support_countintoptional — None = the tool default
side_editionOptional[bool]optional — None = the tool default
side_heightfloatoptional — None = the tool default
side_widthfloatoptional — None = the tool default
side_girdle_heightfloatoptional — None = the tool default
side_girdle_widthfloatoptional — None = the tool default
cut_by_ring_sizeOptional[bool]optional — None = the tool default
cut_by_ring_size_sidesOptional[bool]optional — None = the tool default
elementstroptional — None = the tool default

ra.trilogy.create_east_west()

ra.trilogy.create_east_west(gem_id=None, gem_ids=None, preset=None, side_preset=None, prong_mode=None, prong_diameter=None, prong_height=None, rail_width=None, rail_height=None, rail_profile=None, side_edition=None, element=None) -> TrilogyResult

Three advanced baskets on a Three Stones (ArtisanTrilogyEastWest, headless). Each basket takes its gem shape’s default prong layout (emerald -> 4 corners, trillion -> 3 vertices…) unless preset / side_preset name another one (ra.advanced_basket.presets names, e.g. PRONG_ROUND_6, or a 1-based index). Sides share the center’s basket when both shapes match; different shapes (or side_edition) give them their own. mm; None = the default. Returns the TrilogyResult.

ParameterType
gem_idOptional[IdLike]optional — None = the tool default
gem_idsSequence[IdLike]optional — None = the tool default
presetstroptional — None = the tool default
side_presetstroptional — None = the tool default
prong_modestroptional — None = the tool default
prong_diameterfloatoptional — None = the tool default
prong_heightfloatoptional — None = the tool default
rail_widthfloatoptional — None = the tool default
rail_heightfloatoptional — None = the tool default
rail_profilestroptional — None = the tool default
side_editionOptional[bool]optional — None = the tool default
elementstroptional — None = the tool default

ra.trilogy.create_halo()

ra.trilogy.create_halo(gem_id=None, gem_ids=None, stone_size=None, stone_distance=None, distance_to_gem=None, channel_width=None, channel_height=None, prong_type=None, profile=None, cut_by_ring_size=None, cut_sides_with_center=None, side_edition=None, side_stone_size=None, side_stone_distance=None, side_channel_width=None, side_channel_height=None, ring_curve_id=None, element=None) -> TrilogyResult

Three halos on a Three Stones (ArtisanTrilogyHalo, headless): the side halos share the center’s parameters unless side_edition (or a side* argument) splits them; cut_sides_with_center (default on) fuses the sides into the center halo, cut_by_ring_size trims them flush with the ring. Gems must be halo-friendly (ROUND, CUSHION, EMERALD, OVAL, RADIANT, ASSCHER, PEAR). mm; None = the default (stone 1.2, distance 0.2, channel 1.8 x 1.5). profile = CHANNEL_PROFILE asset. Returns the TrilogyResult (halo stones in StoneIds).

ParameterType
gem_idOptional[IdLike]optional — None = the tool default
gem_idsSequence[IdLike]optional — None = the tool default
stone_sizefloatoptional — None = the tool default
stone_distancefloatoptional — None = the tool default
distance_to_gemfloatoptional — None = the tool default
channel_widthfloatoptional — None = the tool default
channel_heightfloatoptional — None = the tool default
prong_typestroptional — None = the tool default
profilestroptional — None = the tool default
cut_by_ring_sizeOptional[bool]optional — None = the tool default
cut_sides_with_centerOptional[bool]optional — None = the tool default
side_editionOptional[bool]optional — None = the tool default
side_stone_sizefloatoptional — None = the tool default
side_stone_distancefloatoptional — None = the tool default
side_channel_widthfloatoptional — None = the tool default
side_channel_heightfloatoptional — None = the tool default
ring_curve_idOptional[IdLike]optional — None = the tool default
elementstroptional — None = the tool default

ra.trilogy.create_individual()

ra.trilogy.create_individual(gem_id=None, gem_ids=None, center_setting=None, side_setting=None, center_rotation=None, side_rotation=None, tulip_prongs=None, rail_profile=None, scale_setting_to_gem=None, ring_curve_id=None, element=None) -> TrilogyResult

One setting per slot on a Three Stones (ArtisanTrilogyIndividual, headless): center_setting / side_setting are TULIP, MARTINI or ADVANCED_BASKET (defaults: tulip in the center, advanced basket — a single rail — on the sides). center_rotation / side_rotation spin each setting about its gem (degrees; default 45 for a ROUND center, 0 otherwise); tulip_prongs 4 or 6. Returns the TrilogyResult.

ParameterType
gem_idOptional[IdLike]optional — None = the tool default
gem_idsSequence[IdLike]optional — None = the tool default
center_settingstroptional — None = the tool default
side_settingstroptional — None = the tool default
center_rotationfloatoptional — None = the tool default
side_rotationfloatoptional — None = the tool default
tulip_prongsintoptional — None = the tool default
rail_profilestroptional — None = the tool default
scale_setting_to_gemOptional[bool]optional — None = the tool default
ring_curve_idOptional[IdLike]optional — None = the tool default
elementstroptional — None = the tool default

ra.trilogy.create_trellis()

ra.trilogy.create_trellis(gem_id=None, gem_ids=None, shank_prong_diameter=None, cross_prong_diameter=None, rail_width=None, rail_height=None, rail_under_girdle=None, center_rail=None, side_rails=None, curve_vertical_separation=None, side_rail_edition=None, side_rail_width=None, side_rail_height=None, ring_curve_id=None, element=None) -> TrilogyResult

Trellis gemset on a Three Stones (ArtisanTrilogyTrellis, headless): 4 shank prongs from the side gems down to the ring curve, 4 cross prongs over the center stone and three under-girdle rails. The ring curve is the set’s finger circle, ring_curve_id (must sit below the gems) or a circle at the document size. mm; None = the default (prongs 1.05, rail 1.0 x 0.9, under girdle 1.45). Returns the TrilogyResult.

ParameterType
gem_idOptional[IdLike]optional — None = the tool default
gem_idsSequence[IdLike]optional — None = the tool default
shank_prong_diameterfloatoptional — None = the tool default
cross_prong_diameterfloatoptional — None = the tool default
rail_widthfloatoptional — None = the tool default
rail_heightfloatoptional — None = the tool default
rail_under_girdlefloatoptional — None = the tool default
center_railOptional[bool]optional — None = the tool default
side_railsOptional[bool]optional — None = the tool default
curve_vertical_separationfloatoptional — None = the tool default
side_rail_editionOptional[bool]optional — None = the tool default
side_rail_widthfloatoptional — None = the tool default
side_rail_heightfloatoptional — None = the tool default
ring_curve_idOptional[IdLike]optional — None = the tool default
elementstroptional — None = the tool default

ra.trilogy.find()

ra.trilogy.find(id: IdLike) -> Trilogy

The handle for id, or None when the id does not belong to an object of this kind.

ParameterType
idIdLikerequired

ra.trilogy.for_gem()

ra.trilogy.for_gem(gem_id: IdLike) -> List[Trilogy]

Trilogy handles whose mother gem is gem_id (empty for None).

ParameterType
gem_idIdLikerequired

ra.trilogy.selected()

ra.trilogy.selected() -> List[Trilogy]

Trilogy handles for the objects of this kind currently selected in the active document.

Handles

Objects returned by the functions above. Assigning a settable property regenerates the object; the change is one undo step inside ra.transaction().

Trilogy (handle)

The five Trilogy settings (bezel set, east-west, halo, individual, trellis) dressed over a Three Stones.

PropertyTypeSettable
center_gem_idstr
layer_namestr
member_countintRhino objects in the group
mother_gem_idstr
object_typestr
parameters_jsonstrthe kernel model, as stored in the group
positionPoint3d
ring_curve_idstr
side_a_gem_idstr
side_b_gem_idstr
stylestrBEZEL_SET | EAST_WEST | HALO | INDIVIDUAL | TRELLIS
Method
delete()
get_parameter(path: str) -> strdotted JSON path; None when absent
move(translation: VectorLike)
regenerate()
set_element(element: str)Applies a saved element of this trilogy’s own style (ra.elements.list (“TrilogyHalo”) for a HALO…) in place: the gems stay, a preset of another style is rejected, and the trilogy regenerates (same id).
set_parameter(path: str, value: str)regenerates in place (same id)

Plus what every handle has: id, delete(), update(**kwargs), parameters(), equality and hashing by id, and raw (the underlying .NET object).