Skip to content

.NET API

AdvancedCathedralApi

Advanced cathedral shanks — the station-based cathedral body. Query-only for now: run ArtisanAdvancedCathedralShank in the UI once, then script every variant from the handle it leaves behind.

from ArtisanPlugin.Scripting import AdvancedCathedralApi

See also the guide, Shanks › Advanced cathedral, and the Python package, ra.advanced_cathedral.

Methods

Method
AllIAdvancedCathedral handles for every object of this kind in the active document (empty when there is no document).
ByLayerIAdvancedCathedral handles on the layer with the given full path (empty when the layer does not exist).
CountNumber of objects of this kind in the active document.
CreateBuilds an advanced cathedral shank — the ArtisanAdvancedCathedral tool, headless: the cathedral band with a fully parametric arm and bridge, plus an optional stone run.
FindThe handle for id, or null when the id does not belong to an object of this kind.
SelectedIAdvancedCathedral handles for the objects of this kind currently selected in the active document.

All

IReadOnlyList<IAdvancedCathedral> AdvancedCathedralApi.All()

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

Returns IReadOnlyList<IAdvancedCathedral>.

ByLayer

IReadOnlyList<IAdvancedCathedral> AdvancedCathedralApi.ByLayer(string layerName)

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

ParameterTypeDefault
layerNamestringrequired

Returns IReadOnlyList<IAdvancedCathedral>.

Count

int AdvancedCathedralApi.Count()

Number of objects of this kind in the active document.

Returns int.

Create

IAdvancedCathedral AdvancedCathedralApi.Create(
    double fingerDiameter = 0,
    double armHeight = 0,
    double armOpening = 0,
    double tipInclination = double.NaN,
    double bridgeWidth = 0,
    double bridgeThickness = 0,
    bool withGems = false,
    double gemSize = 0,
    string profile = null,
    Plane? plane = null,
    string element = null)

Builds an advanced cathedral shank — the ArtisanAdvancedCathedral tool, headless: the cathedral band with a fully parametric arm and bridge, plus an optional stone run. Millimetres / degrees; 0 keeps the tool default (or the user’s saved defaults). fingerDiameter 0 = the document’s finger size. withGems turns the stone run on. element = name of a saved AdvancedCathedralShank element (ElementsApi.List(“AdvancedCathedralShank”)) to start from; explicit arguments override it (its finger size is always replaced). Returns an IAdvancedCathedral handle: its ~25 setters cover the rest of the model.

ParameterTypeDefault
fingerDiameterdouble0
armHeightdouble0
armOpeningdouble0
tipInclinationdoubledouble.NaN
bridgeWidthdouble0
bridgeThicknessdouble0
withGemsboolfalse
gemSizedouble0
profilestringnull
planePlane?null
elementstringnull

Returns IAdvancedCathedral.

Find

IAdvancedCathedral AdvancedCathedralApi.Find(Guid id)

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

ParameterTypeDefault
idGuidrequired

Returns IAdvancedCathedral.

Selected

IReadOnlyList<IAdvancedCathedral> AdvancedCathedralApi.Selected()

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

Returns IReadOnlyList<IAdvancedCathedral>.

Handles and sections

What the methods above hand back. A handle’s setters regenerate the object; wrap changes in a Transaction so they land as one undo step.

IAdvancedCathedral

Handle — extends IParametricObject.

Advanced cathedral shank: like the classic cathedral, but the band’s cross-section is defined by editable stations along the arm instead of a single fixed profile. Multiple gems, so no single MotherGem.

PropertyType
GemGradientIAdvancedCathedralGemGradientget
GemsICathedralGemsgetThe gems row uses the same model as the classic cathedral.
IdGuidget(from IParametricObject)
LayerNamestringget(from IParametricObject)
MotherGemIdGuidget(from IParametricObject)
ObjectTypestringget(from IParametricObject)
PositionPoint3dget(from IParametricObject)
RingDiameterMmdoubleget
RingSizeLabelstringget
RingSizeRegionstringget
ShankIAdvancedCathedralShankgetParameter sections — each is a live view over the shank’s stored parameters; their setters regenerate the shank in place (same Guid) and call LicenseGate.RequireValid() first. Millimetres.
Method
void Delete()(from IParametricObject)
void Move(Vector3d translation)(from IParametricObject)
void SetElement(string element)Applies a saved AdvancedCathedralShank element (ElementsApi.List(“AdvancedCathedralShank”)) to this shank: its parameters replace the current ones, the ring size stays, and the shank regenerates in place (same id).

IAdvancedCathedralShank

Section.

The band: the stations that shape it, the arm and the bridge.

PropertyType
ArmHeightdoublegetmm
ArmOpeningdoublegetmm
BridgeAngledoublegetdegrees
BridgeDiameterdoublegetmm
BridgeEnabledboolget
BridgeFilletdoublegetmm
BridgeOpenAngledoublegetdegrees
BridgeThicknessdoublegetmm
BridgeWidthdoublegetmm
SharedProfileboolgetevery station uses the same profile asset
StationsIReadOnlyList<IAdvancedCathedralStation>get
TangentPointdoubleget1 = 90 degrees, 0 = 140, -1 = 190
TipInclinationdoubleget
TipRounddoublegetmm
Method
void SetArmHeight(double height)
void SetArmOpening(double opening)
void SetBridgeAngle(double degrees)
void SetBridgeDiameter(double diameter)
void SetBridgeEnabled(bool enabled)
void SetBridgeFillet(double fillet)
void SetBridgeOpenAngle(double degrees)
void SetBridgeThickness(double thickness)
void SetBridgeWidth(double width)
void SetProfile(string assetName)applies to every station — list them with AssetsApi.List(“RING_PROFILE”)
void SetSharedProfile(bool shared)
void SetStation( int index, double position, double width, double height, string profileName = null)
void SetStations(IEnumerable<IAdvancedCathedralStation> stations)Replaces the whole station list (at least 2, positions 0..1). Every station needs a profile: profileName omitted reuses the first station’s current asset.
void SetTangentPoint(double tangentPoint)
void SetTipInclination(double inclination)
void SetTipRound(double round)

IAdvancedCathedralStation

Section.

One cross-section along the arm. Stations let the band change width, height and profile as it runs from the arm tip to the ring bottom.

PropertyType
Heightdoublegetmm
Positiondoubleget0 = arm tip, 1 = ring bottom
ProfileNamestringgetRING_PROFILE asset name, "" when unset
Widthdoublegetmm

ICathedralGems

Section.

The pavé row a cathedral carries along its top — one run per arm.

PropertyType
Angledoublegetdegrees of the band covered by gems (180 = top half)
AutomaticProngDiameterboolget
BrightCutdoublegetbright-cut width, mm
DoubleProngSettingboolget
DrillAllowIntersectionboolget
DrillEnabledboolget
DrillHeightdoublegetmm
DrillTypestringget”NONE”, “ROUND” or “QUAD”
DrillVisibleboolgetbake the drill cutters as visible objects
DrillWidthdoublegetmm
Enabledboolget
ExtensionForManufacturingdoublegetmm
GemInsidedoublegethow deep the gems sit inside, mm
GemShapestringget”ROUND”, “PRINCESS”, …
GemSizedoublegetmm
InnerHeightdoublegetinner channel height, mm
InnerMargindoublegetinner margin, mm
InnerWidthdoublegetinner channel width, mm
Margindoublegetside margin, mm
MinDistancedoublegetminimum distance between gems, mm
ProngDiameterdoublegetmm — used when AutomaticProngDiameter is false
ProngHeightdoublegetmm
ProngTypestringget”NONE”, “SHARED” or “SCALLOPED”
ScallopGemHeightdoubleget
ScallopGemWidthdoublegetScalloped-setting proportions (percentages, not mm).
ScallopProngHeightdoubleget
ScallopProngWidthdoubleget
ScallopRailHeightdoubleget
ScallopRailWidthdoubleget
ScallopRemoveChannelboolget
Verticaldoublegetvertical displacement of the row, mm
Method
void SetAngle(double degrees)
void SetAutomaticProngDiameter(bool automatic)
void SetBrightCut(double brightCut)
void SetDoubleProngSetting(bool enabled)
void SetDrillAllowIntersection(bool allow)
void SetDrillEnabled(bool enabled)
void SetDrillHeight(double height)
void SetDrillType(string drillType)”NONE”, “ROUND” or “QUAD”
void SetDrillVisible(bool visible)
void SetDrillWidth(double width)
void SetEnabled(bool enabled)
void SetExtensionForManufacturing(double extension)
void SetGemInside(double gemInside)
void SetGemShape(string shape)
void SetGemSize(double size)
void SetInnerHeight(double height)
void SetInnerMargin(double margin)
void SetInnerWidth(double width)
void SetMargin(double margin)
void SetMinDistance(double distance)
void SetProngDiameter(double diameter)
void SetProngHeight(double height)
void SetProngType(string prongType)”NONE”, “SHARED” or “SCALLOPED”
void SetScallopGem(double width, double height)
void SetScallopProng(double width, double height)
void SetScallopRail(double width, double height)
void SetScallopRemoveChannel(bool enabled)
void SetVertical(double vertical)

IAdvancedCathedralGemGradient

Section.

How stone size and prongs vary along the gem run.

PropertyType
Enabledboolget
EndProngCountintget
GemSizeEnddoublegetmm
GemSizeMiddledoublegetmm
GemSizeStartdoublegetmm
MiddlePositiondoubleget0..1
Pointsintget2 = start/end, 3 = start/middle/end
ProngDistancedoublegetmm
ProngGrowdoublegetmm
ProngMinDiameterdoublegetmm
ProngSpacingdoublegetmm
Method
void SetEnabled(bool enabled)
void SetEndProngCount(int count)
void SetGemSizes(double start, double middle, double end)
void SetMiddlePosition(double position)
void SetPoints(int points)2 or 3
void SetProngDistance(double distance)
void SetProngGrow(double grow)
void SetProngMinDiameter(double diameter)
void SetProngSpacing(double spacing)