Plugin Catalog

Deep dive into each product — architecture, commands, workflows and hotkeys.

Block Builder BBD

Licensed — 30-day trial

Overview

Block Builder gives you a full visual panel docked inside Rhino for composing block definitions from geometry. It features a tree-view with check boxes, undo/redo, context menus and drag-and-drop grouping.

Key Capabilities

  • Create points, curves and surfaces via panel menus
  • Tree-view with category nodes (Points, Curves, Surfaces)
  • Inline rename, multi-select check state, keyboard shortcuts
  • Undo stack for all panel operations
  • Bulk export geometry to block definitions
  • Geometry pipeline with reconstruction and serialization

Architecture Highlights

  • BlockBuilderPanel — 2200+ line WinForms panel with full UI
  • GeometryPipeline + GeometryReconstructor for processing chains
  • BlockSerializer + GeometrySerializer for persistence
  • SurfaceStrategies for different surface generation algorithms
  • OperationChainModel for composable operations

Command

Ten_BlockBuilder

Opens or closes the Block Builder panel. Toggle on repeat calls.

Source Files

  • BlockBuilderPanel.cs
  • BlockBuilderPlugIn.cs
  • GeometryPipeline.cs
  • BlockSerializer.cs
  • SurfaceStrategies.cs
  • OperationChainModel.cs

Block On Surface BOS

Licensed — 30-day trial

Overview

The flagship placement suite. Pick block instances, select a Brep surface, and interactively place, rotate, scale and elevate blocks in real-time — with multi-pair navigation and camera animation.

Three Commands

Ten_BlockOnSrf

Place blocks on surface from a file. Browse for a .3dm block, select a Brep, click to place with full hotkey editing.

Ten_OrientOnSrf

Select existing block instances, then orient them onto a surface. Multi-pair mode: N/P to navigate pairs, auto-pair by proximity.

Ten_EditBlockOnSrf

Recover previously placed instances back into an interactive editing session. Modify position, scale, rotation, then confirm.

Workflow Branches

  • 1 block: Simple single placement with preview conduit
  • 2 blocks: Pair placement with helper axis from block positions
  • 3+ blocks: Multi-pair mode — auto-pair by proximity, N/P navigation between pairs

Hotkeys

A/D Rotate   Q/E Scale   1/2 Scale X   W/S Elevation   F Flip   C 45°   Z Reset   R Reset Scale   U Undo   V Preview   H Help

Enhancement Services Used

  • #1 Event Hub — session events
  • #2 Metrics — timing & counters
  • #3 Hotkey Registry — all shortcuts
  • #5 Validation Pipeline — input checks
  • #7 Strategy — preview modes
  • #10 Service Tracker — dependencies

Key Services

  • BlockPlacementSessionService
  • MultiBlockPairNavigationService
  • BlockPreviewHelper
  • BrepGeometryService
  • CameraAnimationService
  • BlockTransformService

DocTracking DOC

Licensed — 30-day trial

Overview

Track document sessions, folder assignments, and export history to Excel. The dockable panel integrates directly into Rhino's UI.

Command Options

  • ShowPanel — Opens the document tracking panel
  • CurrentDoc — Shows sessions for the active document
  • FolderManager — Manages folder assignments for projects
  • Export — Export tracking sessions to Excel via ClosedXML

Architecture

  • DocTrackingPanel — WinForms panel with session list
  • DocumentTrackingHost — Panel lifecycle and registration
  • ExcelHelper — ClosedXML integration for .xlsx export
  • Hosted through TenEnhancements hub — panel ID registration at startup

Command

Ten_Document

Multi-purpose: ShowPanel, CurrentDoc, FolderManager, Export

Dependencies

  • ClosedXML (Excel export)
  • MainTen.Tracking
  • MainTen.Core.IO

TenSetting SET

Licensed — 30-day trial

Overview

Block round-setting tools for jewelry design. Select a diamond block, then interactively configure prong, bridge, gallery, and profile settings with a real-time 3D preview. Drag gizmo handles to adjust parameters visually, swap styles from a profile library, and bake the final geometry.

Two Commands

Ten_Setting

Full licensed round-setting command. Select a block instance (diamond), configure all prong/bridge/gallery/profile parameters with live preview, interactive gizmo editing, and bake to geometry.

Ten_FreeSetting

Free version with core prong-setting capabilities. Same live preview workflow with limited parameter editing — no license required.

Key Capabilities

  • Interactive 3D gizmo editing — drag handles to adjust prong height, bridge width, gallery depth in the viewport
  • Live preview with Detailed/Normal display modes
  • Profile library — load and swap bridge, gallery, top-prong, and bottom-prong profiles from folder libraries
  • Style list — save, load and import/export parameter presets
  • Bake support — commit preview geometry to the document as a grouped object
  • Dynamic parameter limits — option ranges auto-adjust based on diamond size

Enhancement Services Used

  • #1 Event Hub — session events
  • #2 Metrics — timing & counters
  • #3 Hotkey Registry — shortcuts
  • #4 Service Container — DI
  • #5 Validation Pipeline — input checks
  • #7 Strategy — preview modes
  • #10 Service Tracker — dependencies

Profile Library Folders

  • Bridge profiles
  • Gallery profiles
  • Top prong profiles
  • Bottom prong profiles

Key Services

  • PreviewOptionService
  • InteractiveGizmoManager
  • GizmoConduit
  • GizmoMouseService
  • PreviewEditMouseService
  • ProfileLibraryFolderService

TenFree Free

No license required

Overview

A standalone assembly containing powerful placement commands that work without any license. Perfect for evaluating the workflow before committing to Pro products.

Ten_FreeOrient

Select 1, 2 or 3+ block instances → choose size option (First/Small/Average/Big) → load from library by size token → place on surface. Multi-pair navigation with N/P keys.

Ten_FreeBlockOnSrf

Browse for a block file, select a Brep surface, place interactively. Persistent settings: scale, rotation, elevation remembered per session.

Ten_FreeLibraryFolder

Set the block library folder via browse dialog. Commit/revert/clear path, list folder contents, configure preview colors.

How It Integrates

TenFree commands are wrapped by the TenEnhancements hub plugin so they appear in the same command namespace. The hub delegates directly to the TenFree implementation — no license check interception.

Enhancement Services

  • #1 Event Hub
  • #2 Metrics Collector
  • #3 Hotkey Registry
  • #5 Validation Pipeline
  • #10 Service Access Tracker

Persistent Settings

  • BlockFilePath
  • ScaleFactor X/Y/Z
  • Rotation & Elevation
  • Library folder path

License Management TEN

Always free

Unified Per-Product Licensing

The Ten_ProductLicense command provides a complete self-service licensing workflow:

Status

View license status for every registered product in a formatted table.

Activate

Enter a product key (TEN-, BBD-, BOS-, DOC- prefixes) to activate.

Start Trial

Begin a 30-day trial for any product. No credit card needed.

Refresh

Re-validate all licenses against the Dataverse API.

Export / Import

Transfer licenses between machines with encrypted export files.

Purchase

Opens the purchase URL for the selected product.

Product Registry

All products register themselves in ProductRegistry at startup. Each product has a unique ID, accepted key prefixes, trial days and optional purchase URL. The registry uses a thread-safe ConcurrentDictionary with cached collections for high-performance access.

MainTen Core Library

The shared foundation that all plugins depend on — 35+ service classes.

Block Services

  • BlockPlacementSessionService
  • BlockDefinitionLoaderService
  • BlockTransformService
  • BlockPickerServices
  • BlockPairBuilder
  • BlockSizingUtilities
  • BlockPreviewHelper
  • BlockDataService
  • BlockAttributeService

Brep & Geometry

  • BrepServices
  • BrepGeometryService
  • CameraAnimationService
  • PreviewIsolationHelper
  • PreviewEditMouseService

UI & Settings

  • LibrarySettings
  • CommandSettingsService
  • RecentFilesService
  • BlockSelectionModeService
  • BlockSizeOptionService
  • CommandKeyboardAdapter

Data & IO

  • BlockDataSerializer
  • BlockFileBrowserHelper
  • BlockLibraryLoader
  • DataObjectEditState
  • LabelMouseControllerService