Skip to content

Python package

ra.basket

Basket settings: prongs, upper and base rails.

import rhinoartisan as ra

Wraps ArtisanPlugin.Scripting.BasketApi, ArtisanPlugin.Scripting.BasketUpdateApi.

Functions

Function
all()Basket handles for every object of this kind in the active document (empty when there is no document).
by_gem_material()
by_layer()Basket 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()Builds a basket setting under an existing gem — the ArtisanBasket tool, headless.
find()The handle for id, or None when the id does not belong to an object of this kind.
for_gem()Basket handles whose mother gem is gem_id (empty for None).
selected()Baskets currently selected in the active doc.
update_legacy_baskets()The ArtisanBasketUpdate command, headless: finds every legacy basket (one object carrying “ObjectType = Basket” + parameters in its geometry dictionary, as saved by old Artisan versions, hidden or not), recomputes it against its mother gem with the current kernel and replaces it by the modern editable “Basket” group (metal material, RaObjectUserData with the parameters and the mother).

ra.basket.all()

ra.basket.all() -> List[Basket]

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

ra.basket.by_gem_material()

ra.basket.by_gem_material(material_name: str) -> List[Basket]
ParameterType
material_namestrrequired

ra.basket.by_layer()

ra.basket.by_layer(layer_name: str) -> List[Basket]

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

ParameterType
layer_namestrrequired

ra.basket.count()

ra.basket.count() -> int

Number of objects of this kind in the active document.

ra.basket.create()

ra.basket.create(gem_ids=None, prongs=None, prong_diameter=None, prong_height=None, prong_height_over_girdle=None, gem_inside=None, upper_rail=None, base_rail=None, support=None, prong_mode=None, prong_profile=None, prong_diameter_bottom=None, prong_rotation=None, straight_prong=None, support_width=None, support_thickness=None, upper_rail_width=None, upper_rail_height=None, upper_rail_height_under_girdle=None, upper_rail_gem_size_percentage=None, upper_rail_profile=None, base_rail_width=None, base_rail_height=None, base_rail_move_in_z=None, base_rail_gem_size_percentage=None, base_rail_profile=None, element=None) -> List[Basket]

Builds a basket setting under an existing gem — the ArtisanBasket tool, headless. One basket (its own group) per gem; gem_ids None/empty = the currently selected gems. Millimetres; omitting keeps the tool default (or the user’s saved defaults): prong_diameter 1.5 (sets top/girdle/bottom together), prong_height 4, prong_height_over_girdle 0.3. prongs 0 keeps the default (4 rotated); positive/negative counts follow the tool (negative = rotated variant). gem_inside defaults to 0.35. upper_rail/base_rail None keep the defaults (both enabled). support is NONE (default), SINGLE or DOUBLE. Returns one Basket handle per gem, in input order. element = name of a saved element (ra.elements.list) to start from; explicit arguments override it.

ParameterType
gem_idsSequence[IdLike]optional — None = the tool default
prongsintoptional — None = the tool default
prong_diameterfloatoptional — None = the tool default
prong_heightfloatoptional — None = the tool default
prong_height_over_girdlefloatoptional — None = the tool default
gem_insidefloatoptional — None = the tool default
upper_railOptional[bool]optional — None = the tool default
base_railOptional[bool]optional — None = the tool default
supportstroptional — None = the tool default
prong_modestroptional — None = the tool default
prong_profilestroptional — None = the tool default
prong_diameter_bottomfloatoptional — None = the tool default
prong_rotationfloatoptional — None = the tool default
straight_prongOptional[bool]optional — None = the tool default
support_widthfloatoptional — None = the tool default
support_thicknessfloatoptional — None = the tool default
upper_rail_widthfloatoptional — None = the tool default
upper_rail_heightfloatoptional — None = the tool default
upper_rail_height_under_girdlefloatoptional — None = the tool default
upper_rail_gem_size_percentagefloatoptional — None = the tool default
upper_rail_profilestroptional — None = the tool default
base_rail_widthfloatoptional — None = the tool default
base_rail_heightfloatoptional — None = the tool default
base_rail_move_in_zfloatoptional — None = the tool default
base_rail_gem_size_percentagefloatoptional — None = the tool default
base_rail_profilestroptional — None = the tool default
elementstroptional — None = the tool default

ra.basket.find()

ra.basket.find(id: IdLike) -> Basket

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

ParameterType
idIdLikerequired

ra.basket.for_gem()

ra.basket.for_gem(gem_id: IdLike) -> List[Basket]

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

ParameterType
gem_idIdLikerequired

ra.basket.selected()

ra.basket.selected() -> List[Basket]

Baskets currently selected in the active doc.

ra.basket.update_legacy_baskets()

ra.basket.update_legacy_baskets() -> List[str]

The ArtisanBasketUpdate command, headless: finds every legacy basket (one object carrying “ObjectType = Basket” + parameters in its geometry dictionary, as saved by old Artisan versions, hidden or not), recomputes it against its mother gem with the current kernel and replaces it by the modern editable “Basket” group (metal material, RaObjectUserData with the parameters and the mother). Baskets whose mother gem is gone or that fail to compute are left untouched. Returns the ids of the new baskets (ra.basket.find / handles); empty when the document has no legacy baskets.

Handles

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

Basket (handle)

PropertyTypeSettable
base_railBasketRail
gem_carat_weightfloat
gem_materialstr
gem_shapestr
layer_namestr
mother_gem_idstr
object_typestr
positionPoint3d
prongBasketProngThe rest of the tool’s parameters, grouped as the panel groups them.
prong_countintyessigned: negative = the rotated layout
prong_diameter_bottomfloat
prong_diameter_girdlefloat
prong_diameter_topfloat
prong_heightfloatyes
prongs_rotatedbool
upper_railBasketRail
Method
delete()
move(translation: VectorLike)
set_element(element: str)Applies a saved Basket element (ra.elements.list(“Basket”)) to this basket: its parameters replace the current ones, the mother gem stays, and the basket regenerates in place (same id).
set_prong_diameter(diameter: float)writes all three diameters

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

BasketRail (section)

One of the basket’s two rails. The upper rail additionally carries the chamfer; the base rail carries its vertical offset. Members that do not apply to a rail throw NotSupportedException rather than silently doing nothing.

PropertyTypeSettable
chamferboolyesupper rail only
chamfer_offsetfloatyesupper rail only
enabledboolyes
gem_size_percentagefloatyesrail diameter as % of the gem
heightfloatyesmm
height_under_girdlefloatyesupper rail only
modestryesDEFAULT (elliptical section) or CUSTOM (the CLOSED_PROFILE)
move_in_zfloatyesbase rail only, signed
profile_namestrCLOSED_PROFILE asset name
rotationfloatyesdegrees, signed
widthfloatyesmm
Method
set_profile(asset_name: str)also switches the rail to CUSTOM mode, where the profile is used

BasketProng (section)

The prongs and their support posts.

PropertyTypeSettable
bottom_rail_insidefloatyes
cap_bumpfloatyesmm
claw_gem_insidefloatyesClaw mode only.
claw_heightfloatyessigned
claw_on_curveintyespanel range 1-30
claw_tensionfloatyes
countintyesnegative = the rotated layout
diameter_bottomfloatyesmm
diameter_topfloatyesmm
extension_for_manufacturingfloatyes
gem_insidefloatyesmm, signed
heightfloatyesmm
height_over_girdlefloatyesmm
modestryes”DEFAULT” | “CUSTOM” | “CLAW”
profile_namestrCLOSED_PROFILE asset name, "" when unset
rotationfloatyesdegrees, signed
straightboolyesstraight vs curved prong body
supportstryes”NONE” | “SINGLE” | “DOUBLE”
support_thicknessfloatyesmm
support_widthfloatyesmm
Method
set_profile(asset_name: str)CLOSED_PROFILE asset