This folder contains documentation for the ghjson-dotnet project — the .NET implementation of the GhJSON specification.
- Usage Guide — Quick start, code examples, and common patterns
- Metadata — Document metadata configuration and auto-population
- Name Resolution — Fuzzy matching for component and parameter names
- Architecture — Project structure, API surface, extensibility, and design decisions
- Data Type Serialization — Prefix-based format, built-in serializers, extensibility
- Parameter Settings — Input/output parameter configuration
- Component State and Extensions — Extension mechanism for component-specific properties
- Object Serialization Process — Handler orchestration and priority system
- NuGet Publishing — Release workflow and NuGet package publishing
- Branching and Release Workflow — Branch model, CI/CD workflows, PR validations, and release process
See the README for:
- Supported Features — Core operations and Grasshopper integration capabilities
- Supported Data Types — 15 built-in serializers (text, number, integer, boolean, color, point, vector, line, plane, circle, arc, box, rectangle, interval, bounds)
- Supported Component Handlers — 12 extension handlers (number slider, panel, scribble, value list, button, toggle, colour swatch, C#/Python/IronPython/GhPython/VB scripts) + 9 core handlers
- GhJSON.Core — Platform-independent document model and operations (read, write, validate, fix, merge, migrate). No Grasshopper or Rhino dependencies.
- GhJSON.Grasshopper — Grasshopper integration (serialize from canvas, place on canvas, query, data type serializers, object handlers). Requires Rhino 8+.
- GhJSON Specification — Official format specification
- JSON Schema v1.0 — Machine-readable validation schema
- SmartHopper — AI-powered Grasshopper plugin (uses GhJSON)