Saltar al contenido principal

Auto-generated from the oblikovati.org/api/wire Go source. Do not edit here.

wire

import "oblikovati.org/api/wire"

Package wire is the host↔add-in transport contract: one method-name constant and a pair of JSON request/response DTOs per operation. It is the single place either side of the C ABI declares a method's name or payload shape — the GPL application's router serves these methods keyed on the constants, and add-ins call them through the typed client package rather than raw JSON (ADR-0016/ADR-0018). DTOs are plain data with json tags only; wire has no behavior and imports nothing but types.

Package wire is the JSON method contract: the canonical method-name constants and the request/response DTOs that travel across the host↔add-in boundary (today the in-process C ABI of ADR-0016; tomorrow gRPC or a socket — the DTOs are transport agnostic). These shapes ARE the public automation surface; the GPL host (/source/addin/router) marshals model state into them, and the typed client (oblikovati.org/api/client) marshals add-in calls out of them.

Every type here is plain data with stable JSON tags — no behavior, no dependency on the implementation. Field renames are breaking changes to the contract.

Index

Constants

Face-evaluation modes for FaceEvaluateArgs.Mode. They select which query the host runs over the supplied inputs and which result arrays come back. pointAtParam, normalAtParam and tangents take (u, v) parameter pairs; closestPoint takes (x, y, z) points and projects each onto the face.

const (
FaceEvalPointAtParam = "pointAtParam" // (u,v) → Points
FaceEvalNormalAtParam = "normalAtParam" // (u,v) → Points + Normals
FaceEvalTangents = "tangents" // (u,v) → Points + UTangents + VTangents
FaceEvalClosestPoint = "closestPoint" // (x,y,z) → Points + UVs (the projected params)
)

Feature-pattern kinds for MethodFeaturesAdd (#189): the part-feature replication operations, addressed by these kind strings. They replicate one or more existing features (referenced by tree name) rather than bodies — the canonical parametric workflow "model one slot, cut it, pattern it N = `slots`".

const (
FeatureKindPatternCircular = "patternCircular"
FeatureKindPatternRectangular = "patternRectangular"
FeatureKindMirror = "mirror"
)

Method names. These string constants are the wire identity of each operation; the host router keys its dispatch table on them and the client sends them. Treat the string values as frozen (clients and saved automations depend on them).

const (
MethodCommandsList = "commands.list"
MethodCommandsExecute = "commands.execute"
MethodCommandsCreate = "commands.create"
MethodCommandsSetState = "commands.setState"

MethodCommandLineSubmit = "commandLine.submit"

MethodRibbonList = "ribbon.list"

MethodDocumentsList = "documents.list"
MethodDocumentsUpdate = "documents.update"
MethodDocumentsRebuild = "documents.rebuild"
MethodDocumentsRequiresUpdate = "documents.requiresUpdate"
MethodDocumentsCreate = "documents.create"
MethodDocumentsActivate = "documents.activate"
MethodDocumentsClose = "documents.close"
MethodDocumentsCloseAll = "documents.closeAll"
MethodDocumentsImport = "documents.import"
MethodDocumentsExport = "documents.export"
// Flavored document subtypes (M05-F15, Oblikovati#665).
MethodDocumentsRegisterSubType = "documents.registerSubType"
MethodDocumentsListSubTypes = "documents.listSubTypes"

// Document iProperties — metadata sets read/written by add-ins, BOMs, title blocks (#156).
MethodDocumentsListProperties = "documents.listProperties"
MethodDocumentsGetProperty = "documents.getProperty"
MethodDocumentsSetProperty = "documents.setProperty"

// Per-document settings (#147) — the Document Settings dialog's persisted defaults. Starts with
// the Sketch tab (the constraint-inference preferences the sketch tools read).
MethodDocumentGetSketchSettings = "document.getSketchSettings"
MethodDocumentSetSketchSettings = "document.setSketchSettings"

// Part end-of-part rollback marker (#141) — inspect / move how far down the feature program the
// active part evaluates (authoring features mid-history, design inspection).
MethodDocumentGetEndOfPart = "document.getEndOfPart"
MethodDocumentSetEndOfPart = "document.setEndOfPart"

// Add-in attribute sets (#155) — named, typed values an add-in attaches to a document and
// that persist with it: the sanctioned mechanism for add-ins to store their own data and tag
// the model. set/get/list address a named attribute in a named set on a document; listSets
// enumerates the sets; delete removes an attribute (or a whole set); find locates the open
// documents carrying a given set/attribute.
MethodAttributesSet = "attributes.set"
MethodAttributesGet = "attributes.get"
MethodAttributesList = "attributes.list"
MethodAttributesListSets = "attributes.listSets"
MethodAttributesDelete = "attributes.delete"
MethodAttributesFind = "attributes.find"

// Document open/save lifecycle (#138) and the save policy layer around it:
// SaveCopyAs and batch save (M03-F09, #610).
MethodDocumentsOpen = "documents.open"
MethodDocumentsSave = "documents.save"
MethodDocumentsSaveAs = "documents.saveAs"
MethodDocumentsSaveCopyAs = "documents.saveCopyAs"
MethodDocumentsBatchSave = "documents.batchSave"

// The file as an object distinct from its documents, with file-level
// reference descriptors and repair (M03-F07, #608).
MethodFilesGet = "files.get"
MethodFilesListReferences = "files.listReferences"
MethodFilesReplaceReference = "files.replaceReference"
MethodDocumentsListFileReferences = "documents.listFileReferences"

// Linked/embedded external-file attachments on a document (M03-F08, #609).
MethodDocumentsListAttachments = "documents.listAttachments"
MethodDocumentsAddAttachment = "documents.addAttachment"
MethodDocumentsRemoveAttachment = "documents.removeAttachment"

// The add-in data registry on documents (M03-F10, #611).
MethodDocumentsListInterests = "documents.listInterests"
MethodDocumentsAddInterest = "documents.addInterest"
MethodDocumentsRemoveInterest = "documents.removeInterest"
MethodDocumentsHasInterest = "documents.hasInterest"

// Document units of measure + unit/expression service (Oblikovati#146).
MethodDocumentsGetUnits = "documents.getUnits"
MethodDocumentsSetUnits = "documents.setUnits"

MethodUnitsConvert = "units.convert"
MethodUnitsGetStringFromValue = "units.getStringFromValue"
MethodUnitsGetPreciseStringFromValue = "units.getPreciseStringFromValue"
MethodUnitsGetValueFromExpression = "units.getValueFromExpression"
MethodUnitsGetDatabaseUnitsFromExpression = "units.getDatabaseUnitsFromExpression"
MethodUnitsIsExpressionValid = "units.isExpressionValid"
MethodUnitsCompatibleUnits = "units.compatibleUnits"
MethodUnitsGetTypeFromString = "units.getTypeFromString"
MethodUnitsGetStringFromType = "units.getStringFromType"
MethodUnitsGetLocaleCorrectedExpression = "units.getLocaleCorrectedExpression"
MethodUnitsGetDrivingParameters = "units.getDrivingParameters"

MethodParametersList = "parameters.list"
MethodParametersGet = "parameters.get"
MethodParametersAdd = "parameters.add"
MethodParametersSet = "parameters.set"
// Member-level parameter surface (M02-F08, Oblikovati#607).
MethodParametersGetDetail = "parameters.getDetail"
MethodParametersUpdate = "parameters.update"
MethodParametersSetTolerance = "parameters.setTolerance"
MethodParametersSetExpressionList = "parameters.setExpressionList"
MethodParametersDelete = "parameters.delete"
MethodParametersDrivenBy = "parameters.drivenBy"
MethodParametersDependents = "parameters.dependents"
// Parameter settings, tolerance sweeps & exchange (M02-F07, Oblikovati#606).
MethodParametersGetSettings = "parameters.getSettings"
MethodParametersSetSettings = "parameters.setSettings"
MethodParametersSetAllModelValueType = "parameters.setAllModelValueType"
MethodParametersExport = "parameters.export"
MethodParametersImport = "parameters.import"
// Derived parameter tables (M02-F06, Oblikovati#605).
MethodParametersDerivedTablesList = "parameters.derivedTables.list"
MethodParametersDerivedTablesAdd = "parameters.derivedTables.add"
MethodParametersDerivedTablesSetLinked = "parameters.derivedTables.setLinked"
MethodParametersDerivedTablesDelete = "parameters.derivedTables.delete"
// Custom parameter groups (M02-F05, Oblikovati#604).
MethodParametersGroupsList = "parameters.groups.list"
MethodParametersGroupsAdd = "parameters.groups.add"
MethodParametersGroupsDelete = "parameters.groups.delete"
MethodParametersGroupsSetDisplayName = "parameters.groups.setDisplayName"
MethodParametersGroupsAddMember = "parameters.groups.addMember"
MethodParametersGroupsRemoveMember = "parameters.groups.removeMember"

MethodModelTree = "model.tree"
MethodModelSelection = "model.selection"
MethodModelReferenceKeys = "model.referenceKeys"

// Selection mutation (#157) — make the previously read-only selection writable: select the
// entities named by their reference strings (from a SelectionResult), remove them, or clear
// the whole set. The reply is the new SelectionResult.
MethodModelSelect = "model.select"
MethodModelDeselect = "model.deselect"
MethodModelClearSelection = "model.clearSelection"

// Highlight sets (#157): named, colored emphasis groups the viewport outlines without
// selecting — an add-in guides the user. create/delete/addItems/setColor/list.
MethodModelHighlightSetCreate = "model.highlightSets.create"
MethodModelHighlightSetDelete = "model.highlightSets.delete"
MethodModelHighlightSetAddItems = "model.highlightSets.addItems"
MethodModelHighlightSetSetColor = "model.highlightSets.setColor"
MethodModelHighlightSetList = "model.highlightSets.list"

MethodImportDWG = "import.dwg"
MethodImportDXF = "import.dxf"
MethodImportPDF = "import.pdf"
MethodExportDXF = "export.dxf"

MethodSketchCreate = "sketch.create"
MethodSketchRectangle = "sketch.rectangle"

MethodSketchList = "sketch.list"
MethodSketchGet = "sketch.get"
MethodSketchDependents = "sketch.dependents"
MethodSketchEdit = "sketch.edit"
MethodSketchExitEdit = "sketch.exitEdit"
MethodSketchSolve = "sketch.solve"
MethodSketchDelete = "sketch.delete"
MethodSketchEntities = "sketch.entities"
MethodSketchConstraints = "sketch.constraints"
MethodSketchDimensions = "sketch.dimensions"
MethodSketchSetProperty = "sketch.setProperty"
MethodSketchAddEntity = "sketch.addEntity"

// Custom line types loaded from industry-standard .lin definition files
// (issue Oblikovati#161).
MethodSketchGetCustomLineType = "sketch.getCustomLineType"
MethodSketchSetCustomLineType = "sketch.setCustomLineType"

MethodSketchAddConstraint = "sketch.addConstraint"
MethodSketchDeleteConstraint = "sketch.deleteConstraint"

MethodSketchAddDimension = "sketch.addDimension"
MethodSketchDriveDimension = "sketch.driveDimension"

MethodSketchConstraintStatus = "sketch.constraintStatus"
MethodSketchProfiles = "sketch.profiles"
MethodSketchTransform = "sketch.transform"
MethodSketchCopyTo = "sketch.copyTo"
MethodSketchAddPattern = "sketch.addPattern"
MethodSketchOffset = "sketch.offset"
MethodSketchAddImage = "sketch.addImage"
MethodSketchAddFillRegion = "sketch.addFillRegion"
MethodSketchAddText = "sketch.addText"
MethodSketchEditText = "sketch.editText"
MethodSketchGetText = "sketch.getText"
MethodSketchSetTextFont = "sketch.setTextFont"
MethodSketchAutoDimension = "sketch.autoDimension"
MethodSketchProject = "sketch.project"

// Sketch blocks: reusable entity groups instanced with a placement
// transform (M06-F07, Oblikovati/Oblikovati#622).
MethodSketchBlockDefinitionCreate = "sketch.blockDefinitions.create"
MethodSketchBlockDefinitionList = "sketch.blockDefinitions.list"
MethodSketchBlockDefinitionDelete = "sketch.blockDefinitions.delete"
MethodSketchAddBlockInstance = "sketch.addBlockInstance"
MethodSketchListBlockInstances = "sketch.blockInstances"

// Region properties of a closed profile (M06-F08, #623).
MethodSketchRegionProperties = "sketch.regionProperties"

// Sketch inference options: enable/disable + constraint-family priority
// (M06-F10, #625).
MethodSketchSetInferenceOptions = "sketch.setInferenceOptions"
MethodSketchGetInferenceOptions = "sketch.getInferenceOptions"

// Spline tangency handles (M06-F11, #626).
MethodSketchSetSplineHandle = "sketch.setSplineHandle"

// Persistent reference keys for a sketch and its entities (#153):
// referenceKey returns a sketch's own durable key; resolveReference rebinds a
// stored sketch/entity key to its current location.
MethodSketchReferenceKey = "sketch.referenceKey"
MethodSketchResolveReference = "sketch.resolveReference"

MethodSketch3DCreate = "sketch3d.create"
MethodSketch3DList = "sketch3d.list"
MethodSketch3DGet = "sketch3d.get"
MethodSketch3DEdit = "sketch3d.edit"
MethodSketch3DExitEdit = "sketch3d.exitEdit"
MethodSketch3DSolve = "sketch3d.solve"
MethodSketch3DDelete = "sketch3d.delete"
MethodSketch3DSetProperty = "sketch3d.setProperty"
MethodSketch3DEntities = "sketch3d.entities"
MethodSketch3DConstraints = "sketch3d.constraints"
MethodSketch3DDimensions = "sketch3d.dimensions"
MethodSketch3DConstraintStatus = "sketch3d.constraintStatus"
MethodSketch3DAddEntity = "sketch3d.addEntity"
MethodSketch3DAddConstraint = "sketch3d.addConstraint"
MethodSketch3DDeleteConstraint = "sketch3d.deleteConstraint"
MethodSketch3DAddDimension = "sketch3d.addDimension"
MethodSketch3DDriveDimension = "sketch3d.driveDimension"
MethodSketch3DProfiles = "sketch3d.profiles"
MethodSketch3DPaths = "sketch3d.paths"
MethodSketch3DTransform = "sketch3d.transform"
MethodSketch3DInclude = "sketch3d.include"
MethodSketch3DIncludeSketch = "sketch3d.includeSketch"
MethodSketch3DAddSurfaceCurve = "sketch3d.addSurfaceCurve"

// Region properties of a planar closed 3D profile (M06-F08, #623).
MethodSketch3DRegionProperties = "sketch3d.regionProperties"
// Helical curve definition edit — constant or variable shape rows plus
// end conditions (M06-F09, #624).
MethodSketch3DEditHelix = "sketch3d.editHelix"
// 3D spline tangency handles (M06-F11, #626).
MethodSketch3DSetSplineHandle = "sketch3d.setSplineHandle"

// A 3D sketch's own persistent reference key (#153). 3D entity keys are reported by
// MethodSketch3DEntities, and any key (2D or 3D) rebinds through
// MethodSketchResolveReference.
MethodSketch3DReferenceKey = "sketch3d.referenceKey"

MethodFeaturesList = "features.list"
MethodFeaturesAdd = "features.add"

// Feature lifecycle after placement (issue Oblikovati#140): features are
// addressed by the stable id reported in [FeatureInfo] (model.tree).
MethodFeaturesGet = "features.get"
MethodFeaturesEdit = "features.edit"
MethodFeaturesDelete = "features.delete"
MethodFeaturesRename = "features.rename"
MethodFeaturesSetSuppressed = "features.setSuppressed"
MethodFeaturesReorder = "features.reorder"

// Sheet-metal rule/style surface (M13-F01, Oblikovati#373/#369): the active part's
// sheet-metal environment — its rule (thickness/bend-radius/relief/gap) and unfold
// method. getStyle reports the active rule; setStyle edits it and recomputes (the rule
// is parameter-backed, so a thickness/K-factor change repropagates to every wall);
// bendAllowance previews the developed flat length of one bend under the active method.
MethodSheetMetalGetStyle = "sheetMetal.getStyle"
MethodSheetMetalSetStyle = "sheetMetal.setStyle"
MethodSheetMetalBendAllowance = "sheetMetal.bendAllowance"
// bends reports the part's bend lineage (M13-F04, Oblikovati#377): every bend the
// wall/bend features introduced, with the unfold values (allowance/deduction) the flat
// pattern develops it by. This is the flat pattern's prerequisite — the architecture
// requires every bend to record its unfold parameters.
MethodSheetMetalBends = "sheetMetal.bends"
// unfold develops the folded part into its flat pattern (M13-F04, Oblikovati#377) and
// reports the flat: its 2D extents, gauge, developed area and fold lines. The flat is a
// derived body, so a thickness/K-factor edit changes its extents through the bend
// allowance with no model recompute.
MethodSheetMetalUnfold = "sheetMetal.unfold"

// Flat-pattern orientations (M13-F05, Oblikovati#635): named alignment states that frame
// the developed flat for drawing views and export. The active orientation drives the flat's
// reported length/width; orientations persist in the document.
MethodFlatPatternListOrientations = "flatPattern.listOrientations"
MethodFlatPatternAddOrientation = "flatPattern.addOrientation"
MethodFlatPatternActivateOrientation = "flatPattern.activateOrientation"
MethodFlatPatternDeleteOrientation = "flatPattern.deleteOrientation"
// Flat-pattern edge/face classification (M13-F05, Oblikovati#635): the bend-up/bend-down
// fold lines and the front/back faces of the developed flat — the manufacturing/drawing
// classification of the flat's topology (the DXF layer-mapping input).
MethodFlatPatternEdgesOfType = "flatPattern.edgesOfType"
MethodFlatPatternFaces = "flatPattern.faces"
// mapEntity maps a folded-model topology entity to its developed-flat counterpart (or back)
// by reference key (M13-F05, Oblikovati#635), so a drawing dimension or selection on the flat
// survives recompute.
MethodFlatPatternMapEntity = "flatPattern.mapEntity"
// Flat-pattern plates + settings (M13-F05, Oblikovati#635): the disjoint developed regions
// (one plate per connected flat region) and the per-document settings (deferred flat-pattern
// update so a heavy flat only recomputes on demand).
MethodFlatPatternListPlates = "flatPattern.listPlates"
MethodFlatPatternGetSettings = "flatPattern.getSettings"
MethodFlatPatternSetSettings = "flatPattern.setSettings"
// Bend-order annotation (M13-F06, Oblikovati#809): number/sequence the part's bends for
// press-brake sequencing; the order is editable and persists, and is shown on the flat
// pattern and in drawing views.
MethodFlatPatternListBendOrder = "flatPattern.listBendOrder"
MethodFlatPatternSetBendOrder = "flatPattern.setBendOrder"
// Cosmetic centerlines (M13-F06, Oblikovati#809): annotation lines drawn on the flat
// pattern (e.g. a hole-pattern centerline) for manufacturing reference. They persist and
// appear on the flat and in drawing views.
MethodFlatPatternAddCenterline = "flatPattern.addCenterline"
MethodFlatPatternListCenterlines = "flatPattern.listCenterlines"
MethodFlatPatternDeleteCenterline = "flatPattern.deleteCenterline"

// Drawing document sheets (M14-F01, Oblikovati#384): the active drawing's sheets
// (sizes/orientation, borders, title blocks), the active-sheet selection, the
// primary referenced model (whose iProperties feed title-block fields), and a title
// block's resolved field values.
MethodDrawingListSheets = "drawing.listSheets"
MethodDrawingAddSheet = "drawing.addSheet"
MethodDrawingRemoveSheet = "drawing.removeSheet"
MethodDrawingSetActiveSheet = "drawing.setActiveSheet"
MethodDrawingSetModelReference = "drawing.setModelReference"
MethodDrawingTitleBlockFields = "drawing.titleBlockFields"
// Drawing sheet DXF export (M14-F05 PBI-145, Oblikovati#392): write the active sheet —
// its views' visible/hidden edges, border and title block — to a DXF file, on named layers.
MethodDrawingExportDXF = "drawing.exportDXF"

// Drawing drafting standards + styles (M14-F01 PBI-138, Oblikovati#385): the active
// drawing's drafting standard and its dimension/text/line style preset. Switching the
// standard re-points the preset so every annotation re-renders to it.
MethodDrawingStylesListStandards = "drawingStyles.listStandards"
MethodDrawingStylesGetActiveStyle = "drawingStyles.getActiveStyle"
MethodDrawingStylesSetStandard = "drawingStyles.setStandard"

// Drawing views (M14-F02 PBI-139, Oblikovati#386): project the referenced model onto the
// active sheet — a base view from a standard orientation and projected views off it — with
// hidden-line removal producing visible/hidden drawing curves.
MethodDrawingViewsList = "drawingViews.list"
MethodDrawingViewsAddBase = "drawingViews.addBase"
MethodDrawingViewsAddProjected = "drawingViews.addProjected"
MethodDrawingViewsAddAuxiliary = "drawingViews.addAuxiliary"
MethodDrawingViewsAddSection = "drawingViews.addSection"
MethodDrawingViewsAddDetail = "drawingViews.addDetail"
MethodDrawingViewsAddBreak = "drawingViews.addBreak"
MethodDrawingViewsAddSlice = "drawingViews.addSlice"
MethodDrawingViewsAddBreakout = "drawingViews.addBreakout"
MethodDrawingViewsAddDraft = "drawingViews.addDraft"
MethodDrawingViewsDelete = "drawingViews.delete"
MethodDrawingViewsCurves = "drawingViews.curves"

// Drawing annotations (M14-F02 #813): the centre-of-gravity marker (driven by the
// referenced model's mass properties) and revision-cloud sheet markup.
MethodDrawingAnnotationsList = "drawingAnnotations.list"
MethodDrawingAnnotationsAddCoG = "drawingAnnotations.addCoG"
MethodDrawingAnnotationsAddRevisionCloud = "drawingAnnotations.addRevisionCloud"
MethodDrawingAnnotationsAddCenterMarks = "drawingAnnotations.addCenterMarks"
MethodDrawingAnnotationsAddCenterlines = "drawingAnnotations.addCenterlines"
MethodDrawingAnnotationsAddFCF = "drawingAnnotations.addFeatureControlFrame"
MethodDrawingAnnotationsAddDatum = "drawingAnnotations.addDatumFeature"
MethodDrawingAnnotationsAddSurfaceText = "drawingAnnotations.addSurfaceTexture"
MethodDrawingAnnotationsAddPartsList = "drawingAnnotations.addPartsList"
MethodDrawingAnnotationsAddBalloon = "drawingAnnotations.addBalloon"
MethodDrawingAnnotationsAddHoleTable = "drawingAnnotations.addHoleTable"
MethodDrawingAnnotationsAddRevTable = "drawingAnnotations.addRevisionTable"
MethodDrawingAnnotationsAddRevTag = "drawingAnnotations.addRevisionTag"
MethodDrawingAnnotationsAddNote = "drawingAnnotations.addNote"
MethodDrawingAnnotationsAddCustomTable = "drawingAnnotations.addCustomTable"
MethodDrawingAnnotationsAddHoleNotes = "drawingAnnotations.addHoleNotes"
MethodDrawingAnnotationsDelete = "drawingAnnotations.delete"

// Drawing sketches (M14-F08 #638): 2D geometry drawn directly in sheet space (millimetres) on a
// sheet — linework and boundaries that hatch regions can fill.
MethodDrawingSketchesList = "drawingSketches.list"
MethodDrawingSketchesAdd = "drawingSketches.add"
MethodDrawingSketchesAddEntity = "drawingSketches.addEntity"
MethodDrawingSketchesAddHatch = "drawingSketches.addHatchRegion"

// Drawing dimensions (M14-F03 PBI-141 #388): associative linear dimensions on a view,
// snapped to projected model vertices so the measured value tracks the model.
MethodDrawingDimensionsList = "drawingDimensions.list"
MethodDrawingDimensionsAddLinear = "drawingDimensions.addLinear"
MethodDrawingDimensionsAddRadial = "drawingDimensions.addRadial"
MethodDrawingDimensionsAddAngular = "drawingDimensions.addAngular"
MethodDrawingDimensionsAddBaseline = "drawingDimensions.addBaseline"
MethodDrawingDimensionsAddChain = "drawingDimensions.addChain"
MethodDrawingDimensionsAddOrdinate = "drawingDimensions.addOrdinate"
MethodDrawingDimensionsAddArcLength = "drawingDimensions.addArcLength"
MethodDrawingDimensionsDelete = "drawingDimensions.delete"

// Thread table query + designation resolution (M09-F01 PBI-101, #325):
// one source of truth for thread data across tapping and drawings.
MethodThreadsTableQuery = "threads.tableQuery"
MethodThreadsResolve = "threads.resolve"

// Freeform cage editing after placement (M10-F03 PBI-114,
// Oblikovati#699): the feature is addressed by its stable id, like the
// features.* lifecycle methods.
MethodFreeformSetLevel = "freeform.setLevel"
MethodFreeformMoveVertices = "freeform.moveVertices"
MethodFreeformCreaseEdges = "freeform.creaseEdges"

// Assembly derive/shrinkwrap (M11-F06, Oblikovati#631/#716): derive a source
// assembly into the active part as a base body, or simplify it into a lightweight
// shrinkwrap body; break the link to freeze the current result. The derived feature
// is addressed by its stable id, like the features.* lifecycle methods.
MethodAssemblyDeriveCreate = "assembly.deriveCreate"
MethodAssemblyDeriveBreakLink = "assembly.deriveBreakLink"
MethodAssemblyDeriveStatus = "assembly.deriveStatus"
MethodAssemblyDeriveUpdate = "assembly.deriveUpdate"
MethodAssemblyShrinkwrapCreate = "assembly.shrinkwrapCreate"

// Assembly occurrences (M11-F01/F02, Oblikovati#728): read the active assembly's
// occurrence tree and place/transform/ground/suppress/replace/remove components.
// Occurrences are addressed by session id (the ids the occurrence push events carry).
MethodAssemblyOccurrences = "assembly.occurrences"
MethodAssemblyPlace = "assembly.place"
MethodAssemblyPlaceByDefinition = "assembly.placeByDefinition"
MethodAssemblyPlaceByDefinitionBatch = "assembly.placeByDefinitionBatch"
MethodAssemblyTransform = "assembly.transform"
MethodAssemblyGround = "assembly.ground"
MethodAssemblySuppress = "assembly.suppress"
MethodAssemblySetFlexible = "assembly.setFlexible" // M12-F06
MethodAssemblySetFlexibleChild = "assembly.setFlexibleChild" // M12-F06 independent solve
MethodAssemblyReplace = "assembly.replace"
MethodAssemblyRemove = "assembly.remove"

// Assembly replication (M11-F04, Oblikovati#729): replicate placed components —
// pattern (circular/rectangular), mirror across a plane, independent copy, and
// substitute a set of components with one simplified representation.
MethodAssemblyPatternCreate = "assembly.patternCreate"
MethodAssemblyMirror = "assembly.mirror"
MethodAssemblyMirrorIntoPart = "assembly.mirrorIntoPart"
MethodAssemblyCopy = "assembly.copy"
MethodAssemblySubstitute = "assembly.substitute"

// Assembly bill of materials (M11-F05, Oblikovati#730): read a structured or
// parts-only BOM view of the active assembly, and export a view to CSV with optional
// custom property columns.
MethodAssemblyBOMView = "assembly.bomView"
MethodAssemblyBOMExport = "assembly.bomExport"

// Assembly feature program (M11-F08, Oblikovati#633/#725): the machining features
// authored in the assembly, their per-occurrence participation and suppression, and
// the end-of-features rollback marker.
MethodAssemblyFeaturesList = "assemblyFeatures.list"
MethodAssemblyFeaturesAdd = "assemblyFeatures.add"
MethodAssemblyFeaturesAddProxyCut = "assemblyFeatures.addProxyCut"
MethodAssemblyFeaturesAddHole = "assemblyFeatures.addHole"
MethodAssemblyFeaturesAddExtrude = "assemblyFeatures.addExtrude"
MethodAssemblyFeaturesAddRevolve = "assemblyFeatures.addRevolve"
MethodAssemblyFeaturesAddChamfer = "assemblyFeatures.addChamfer"
MethodAssemblyFeaturesAddFillet = "assemblyFeatures.addFillet"
MethodAssemblyFeaturesAddMoveFace = "assemblyFeatures.addMoveFace"
MethodAssemblyFeaturesAddSweep = "assemblyFeatures.addSweep"
MethodAssemblyFeaturesEdit = "assemblyFeatures.edit"
MethodAssemblyFeaturesSetParticipants = "assemblyFeatures.setParticipants"
MethodAssemblyFeaturesSetParticipantPaths = "assemblyFeatures.setParticipantPaths"
MethodAssemblyFeaturesSetSuppressed = "assemblyFeatures.setSuppressed"
MethodAssemblyGetEndOfFeatures = "assembly.getEndOfFeatures"
MethodAssemblySetEndOfFeatures = "assembly.setEndOfFeatures"

// Assembly constraints (M12-F01, Oblikovati#358/#363): the relationships that
// position one occurrence relative to another, the solve that applies them, and the
// assembly's health / per-occurrence degrees-of-freedom report.
MethodAssemblyConstraintsList = "assemblyConstraints.list"
MethodAssemblyConstraintsAddMate = "assemblyConstraints.addMate"
MethodAssemblyConstraintsAddFlush = "assemblyConstraints.addFlush"
MethodAssemblyConstraintsAddAngle = "assemblyConstraints.addAngle"
MethodAssemblyConstraintsAddTangent = "assemblyConstraints.addTangent"
MethodAssemblyConstraintsAddInsert = "assemblyConstraints.addInsert"
MethodAssemblyConstraintsSnap = "assemblyConstraints.snap"
MethodAssemblyConstraintsAddSymmetry = "assemblyConstraints.addSymmetry"
MethodAssemblyConstraintsAddRotateRotate = "assemblyConstraints.addRotateRotate"
MethodAssemblyConstraintsAddRotateTranslate = "assemblyConstraints.addRotateTranslate"
MethodAssemblyConstraintsAddTranslateTranslate = "assemblyConstraints.addTranslateTranslate"
MethodAssemblyConstraintsAddTransitional = "assemblyConstraints.addTransitional"
MethodAssemblyConstraintsAddCustom = "assemblyConstraints.addCustom"
MethodAssemblyConstraintsDelete = "assemblyConstraints.delete"
MethodAssemblyConstraintsSetLimits = "assemblyConstraints.setLimits"
MethodAssemblyConstraintsSolve = "assemblyConstraints.solve"
MethodAssemblyConstraintsHealth = "assemblyConstraints.health"

// Assembly joints (M12-F02, Oblikovati#359/#364): the simplified joints that establish
// a degree-of-freedom set between two occurrences, and the DS-joint (DOF/imposed-motion)
// view. Joints and constraints solve together (assemblyConstraints.solve/health).
MethodAssemblyJointsList = "assemblyJoints.list"
MethodAssemblyJointsAddRigid = "assemblyJoints.addRigid"
MethodAssemblyJointsAddRotational = "assemblyJoints.addRotational"
MethodAssemblyJointsAddSlider = "assemblyJoints.addSlider"
MethodAssemblyJointsAddCylindrical = "assemblyJoints.addCylindrical"
MethodAssemblyJointsAddPlanar = "assemblyJoints.addPlanar"
MethodAssemblyJointsAddBall = "assemblyJoints.addBall"
MethodAssemblyJointsDelete = "assemblyJoints.delete"
MethodAssemblyJointsSetLimits = "assemblyJoints.setLimits"
MethodAssemblyJointsSetFlip = "assemblyJoints.setFlip"

MethodDSJointsList = "dsJoints.list"
MethodDSJointsAdd = "dsJoints.add"
MethodDSJointsSetImposedMotion = "dsJoints.setImposedMotion"
MethodDSJointsDelete = "dsJoints.delete"

// Assembly drive (M12-F03, Oblikovati#366): sweep a joint's driven variable through a
// range, re-solving each step, to animate the assembly (kinematic motion study) with an
// optional collision-stop.
MethodAssemblyDrivePreview = "assemblyDrive.preview"

// Assembly representations (M12-F04, Oblikovati#361/#367): the three override-layer
// families — design-view, positional, level-of-detail — plus model states selecting one
// of each. Capture snapshots the current scene; activate applies a representation.
MethodDesignRepsCapture = "designReps.capture"
MethodDesignRepsActivate = "designReps.activate"
MethodDesignRepsList = "designReps.list"
MethodDesignRepsDelete = "designReps.delete"
MethodDesignRepsSetVisibility = "designReps.setVisibility"
MethodDesignRepsSetAppearance = "designReps.setAppearance"
MethodDesignRepsAddSection = "designReps.addSection"

MethodPositionalRepsCapture = "positionalReps.capture"
MethodPositionalRepsActivate = "positionalReps.activate"
MethodPositionalRepsList = "positionalReps.list"
MethodPositionalRepsDelete = "positionalReps.delete"
MethodPositionalRepsSetOverride = "positionalReps.setOverride"
MethodPositionalRepsSetFlexible = "positionalReps.setFlexible"

MethodLODRepsCapture = "lodReps.capture"
MethodLODRepsActivate = "lodReps.activate"
MethodLODRepsList = "lodReps.list"
MethodLODRepsDelete = "lodReps.delete"
MethodLODRepsSetSuppressed = "lodReps.setSuppressed"

MethodModelStatesCreate = "modelStates.create"
MethodModelStatesActivate = "modelStates.activate"
MethodModelStatesList = "modelStates.list"
MethodModelStatesDelete = "modelStates.delete"

// Assembly contact & interference (M12-F05, Oblikovati#362/#368): contact sets (resist
// interpenetration when dragged), the contact-solver toggle, and static interference
// analysis (overlapping volumes between occurrences).
MethodContactSetsCreate = "contactSets.create"
MethodContactSetsList = "contactSets.list"
MethodContactSetsDelete = "contactSets.delete"
MethodContactSetsAddMember = "contactSets.addMember"
MethodContactSetsRemoveMember = "contactSets.removeMember"
MethodContactSolverSetEnabled = "contactSolver.setEnabled"
MethodContactSolverStatus = "contactSolver.status"
MethodInterferenceAnalyze = "interference.analyze"

MethodWorkPlanesList = "workPlanes.list"
MethodWorkPlanesCreate = "workPlanes.create"
MethodWorkPlanesRedefine = "workPlanes.redefine"

MethodWorkPointsCreate = "workPoints.create"

MethodWorkSurfacesList = "workSurfaces.list"
MethodWorkSurfacesGet = "workSurfaces.get"
MethodWorkSurfacesSetVisible = "workSurfaces.setVisible"
MethodWorkSurfacesRename = "workSurfaces.rename"

MethodThemeActive = "theme.active"
MethodThemeList = "theme.list"

MethodFontsList = "fonts.list"

MethodViewGetDisplayMode = "view.getDisplayMode"
MethodViewSetDisplayMode = "view.setDisplayMode"
MethodViewListDisplayModes = "view.listDisplayModes"

MethodViewGetShadows = "view.getShadows"
MethodViewSetShadows = "view.setShadows"

MethodViewGetCamera = "view.getCamera"
MethodViewSetCamera = "view.setCamera"

MethodViewportCapture = "viewport.capture"
MethodViewportCaptureWindow = "viewport.captureWindow"
MethodViewportSetNormalDebug = "viewport.setNormalDebug"
MethodViewportSetMeshColors = "viewport.setMeshColors"

MethodViewsList = "views.list"
MethodViewsAdd = "views.add"
MethodViewsActivate = "views.activate"
MethodViewsClose = "views.close"
MethodViewsRename = "views.rename"
MethodViewsGetLayout = "views.getLayout"
MethodViewsSetLayout = "views.setLayout"

// Named views & standard orientations (M16-F03, Oblikovati#404/#409): capture the active
// camera under a name and restore it exactly; jump to a standard orientation (front/top/iso).
MethodViewsCaptureNamed = "views.captureNamed"
MethodViewsListNamed = "views.listNamed"
MethodViewsRestoreNamed = "views.restoreNamed"
MethodViewsDeleteNamed = "views.deleteNamed"
MethodViewSetOrientation = "view.setOrientation"

MethodLightingGetStyle = "lighting.getStyle"
MethodLightingSetStyle = "lighting.setStyle"
MethodLightingListStyles = "lighting.listStyles"
MethodLightingListLights = "lighting.listLights"
MethodLightingAddLight = "lighting.addLight"
MethodLightingSetLight = "lighting.setLight"

MethodEnvironmentGet = "environment.get"
MethodEnvironmentSet = "environment.set"
MethodEnvironmentListPresets = "environment.listPresets"
MethodEnvironmentLoadImage = "environment.loadImage"

MethodAppearancesList = "appearances.list"
MethodAppearancesGet = "appearances.get"
MethodAppearancesCreate = "appearances.create"
MethodAppearancesUpdate = "appearances.update"

MethodMaterialsList = "materials.list"
MethodMaterialsGet = "materials.get"
MethodMaterialsCreate = "materials.create"
MethodMaterialsUpdate = "materials.update"

MethodModelAssignMaterial = "model.assignMaterial"
MethodModelAssignAppearance = "model.assignAppearance"
MethodModelPhysicalProperties = "model.physicalProperties"

// Body topology and queries (M07-F06/F07, Oblikovati/Oblikovati#629/#630).
MethodBodyList = "body.list"
MethodBodySetVisible = "body.setVisible"
MethodBodyRename = "body.rename"
MethodBodyDelete = "body.delete"
MethodBodyPhysicalProps = "body.physicalProperties"
MethodBodyShells = "body.shells"
MethodBodyWires = "body.wires"
MethodWireOffsetPlanar = "wire.offsetPlanar"
MethodBodyLocateUsingPoint = "body.locateUsingPoint"
MethodBodyFindUsingRay = "body.findUsingRay"
MethodBodyIsPointInside = "body.isPointInside"
MethodBodyConvexityEdges = "body.convexityEdges"
MethodBodyMinimumDistance = "body.minimumDistance"
MethodBodyValidate = "body.validate"
MethodBodyRangeBox = "body.rangeBox"
MethodBodyBindTransientKey = "body.bindTransientKey"

// Facet/stroke calculation and retrieval (M07-F03 remainder,
// Oblikovati/Oblikovati#293): the calculate variants cache per tolerance,
// the existing variants retrieve without re-faceting.
MethodBodyCalculateFacets = "body.calculateFacets"
MethodBodyExistingFacets = "body.existingFacets"
MethodBodyFacetTolerances = "body.facetTolerances"
MethodBodyCalculateStrokes = "body.calculateStrokes"
MethodBodyExistingStrokes = "body.existingStrokes"
MethodBodyStrokeTolerances = "body.strokeTolerances"
MethodFaceCalculateFacets = "face.calculateFacets"
MethodFaceCalculateStrokes = "face.calculateStrokes"

// Batched surface evaluation of one document face by reference key (point,
// normal, tangents, and point projection) — the out-of-process projection of
// the in-proc surface-evaluator contract, for surface-following toolpaths and
// point-projection queries.
MethodBodyFaceEvaluate = "body.faceEvaluate"

// The transient B-rep factory (M07-F05, Oblikovati/Oblikovati#628):
// ownerless bodies addressed by session handles.
MethodBrepCreatePrimitive = "brep.createPrimitive"
MethodBrepBoolean = "brep.boolean"
MethodBrepTransform = "brep.transform"
MethodBrepCopy = "brep.copy"
MethodBrepSectionWithPlane = "brep.sectionWithPlane"
MethodBrepDeleteFaces = "brep.deleteFaces"
MethodBrepSilhouette = "brep.silhouette"
MethodBrepRuledSurface = "brep.ruledSurface"
MethodBrepOffsetFaces = "brep.offsetFaces"
MethodBrepImprint = "brep.imprint"
MethodBrepIdenticalBodies = "brep.identicalBodies"
MethodBrepCreateFromDefinition = "brep.createFromDefinition"
MethodBrepDescribe = "brep.describe"
MethodBrepList = "brep.list"
MethodBrepDelete = "brep.delete"

MethodClientGraphicsSet = "clientGraphics.set"
MethodClientGraphicsList = "clientGraphics.list"
MethodClientGraphicsDelete = "clientGraphics.delete"
MethodClientGraphicsSetVisible = "clientGraphics.setVisible"

// Client-graphics object model — targeted retained-mode mutations and the named
// color-mapper registry (M16-F05, Oblikovati#641). These move/toggle/flag a node without
// resubmitting its (possibly large) mesh; the group transport stays the bulk clientGraphics.set.
MethodGraphicsNodeSetTransform = "graphicsNode.setTransform"
MethodGraphicsNodeSetVisible = "graphicsNode.setVisible"
MethodGraphicsNodeSetSelectable = "graphicsNode.setSelectable"
MethodClientGraphicsRegisterMapper = "clientGraphics.registerColorMapper"
MethodClientGraphicsListMappers = "clientGraphics.listColorMappers"

MethodInteractionGraphicsUpdate = "interactionGraphics.update"
MethodInteractionGraphicsClear = "interactionGraphics.clear"

MethodTransactionUndo = "transaction.undo"
MethodTransactionRedo = "transaction.redo"
MethodTransactionState = "transaction.state"
MethodTransactionBegin = "transaction.begin"
MethodTransactionEnd = "transaction.end"
// MethodTransactionAbort discards the innermost open bounded transaction —
// the model reverts to the group's pre-Begin state instead of committing it
// (M04-F05, Oblikovati#613). Returns the resulting [UndoState].
MethodTransactionAbort = "transaction.abort"
// MethodTransactionHistory reads one open document's whole undo stream for a history
// browser (every step since open, with save checkpoints flagged), without activating it.
// Returns [TransactionHistory].
MethodTransactionHistory = "transaction.history"
// MethodTransactionJumpTo moves one document's undo cursor to an absolute position,
// undoing or redoing as many steps as needed in one call. Returns [TransactionHistory].
MethodTransactionJumpTo = "transaction.jumpTo"

MethodInteractionState = "interaction.state"
MethodInteractionSetNotice = "interaction.setNotice"

MethodScriptRun = "scripts.run"

MethodLogsTail = "logs.tail"

// Analysis & measurement (M18-F01 #423): engineering analysis on the model. Mass properties
// (volume, surface area, centre of mass, mass) of the active part; measurement of entities.
MethodAnalysisMassProperties = "analysis.massProperties"
MethodAnalysisMeasure = "analysis.measure"
// Model health aggregation (M18-F02 #430): enumerate the active part's unhealthy features.
MethodAnalysisModelHealth = "analysis.modelHealth"

// Add-in registry & automation (M05-F01: #245, #251, #252).
MethodAddInsList = "addins.list"
MethodAddInsGet = "addins.get"
MethodAddInsActivate = "addins.activate"
MethodAddInsDeactivate = "addins.deactivate"
MethodAddInsSetLoadBehavior = "addins.setLoadBehavior"
MethodAddInsCallAutomation = "addins.callAutomation"

// Host application info an add-in queries at runtime. apiVersion reports the
// full api.Version the host implements, so an add-in compatible at the major
// boundary can still adapt to minor/patch differences.
MethodApplicationApiVersion = "application.apiVersion"

// External client applications driving the session (M05-F01, #245).
MethodClientAppsRegister = "clientApps.register"
MethodClientAppsUnregister = "clientApps.unregister"
MethodClientAppsList = "clientApps.list"

// Add-in browser panes (M05-F03: #247, #256).
MethodBrowserSetPane = "browser.setPane"
MethodBrowserDeletePane = "browser.deletePane"
MethodBrowserListPanes = "browser.listPanes"

// Add-in dockable windows (M05-F03, #247).
MethodDockableWindowsSet = "dockableWindows.set"
MethodDockableWindowsSetVisible = "dockableWindows.setVisible"
MethodDockableWindowsSetValue = "dockableWindows.setValue"
MethodDockableWindowsDelete = "dockableWindows.delete"
MethodDockableWindowsList = "dockableWindows.list"
MethodDockableWindowsSetReferences = "dockableWindows.setReferences"

// UI environments (M05-F03, #247; add-in environments: Oblikovati#667).
MethodUIListEnvironments = "ui.listEnvironments"

// Application options (M05-F11, #618).
MethodOptionsListGroups = "options.listGroups"
MethodOptionsGetGroup = "options.getGroup"
MethodOptionsSetGroup = "options.setGroup"

// Command alias & keyboard-shortcut customization (M05-F17, #831).
MethodKeymapList = "keymap.list"
MethodKeymapSetChord = "keymap.setChord"
MethodKeymapSetAlias = "keymap.setAlias"
MethodKeymapReset = "keymap.reset"
MethodKeymapResetAll = "keymap.resetAll"
MethodKeymapExport = "keymap.export"
MethodKeymapImport = "keymap.import"

// Status, progress & user messaging (M05-F09, #616).
MethodStatusSetText = "status.setText"
MethodStatusGetText = "status.getText"
MethodProgressBegin = "progress.begin"
MethodProgressUpdate = "progress.update"
MethodProgressEnd = "progress.end"
MethodBalloonTipRegister = "balloonTip.register"
MethodBalloonTipShow = "balloonTip.show"
MethodPromptsShow = "prompts.show"
MethodErrorsAddMessage = "errors.addMessage"
MethodErrorsBeginSection = "errors.beginSection"
MethodErrorsEndSection = "errors.endSection"
MethodErrorsList = "errors.list"
MethodErrorsClear = "errors.clear"
MethodErrorsShow = "errors.show"

// In-canvas mini-toolbars (M05-F07, #614).
MethodMiniToolbarSet = "miniToolbar.set"
MethodMiniToolbarUpdate = "miniToolbar.update"
MethodMiniToolbarRemove = "miniToolbar.remove"
MethodMiniToolbarList = "miniToolbar.list"

// Host-provided modal dialogs (M05-F08, #615).
MethodDialogsShowFileDialog = "dialogs.showFileDialog"
MethodDialogsShowWebDialog = "dialogs.showWebDialog"
MethodDialogsCloseWebDialog = "dialogs.closeWebDialog"
MethodDialogsListWebViews = "dialogs.listWebViews"

// Modal task panels built from declarative controls (FEM/parametric editing).
MethodTaskPanelShow = "taskPanel.show"
MethodTaskPanelClose = "taskPanel.close"

// Document windows: frames & tabs (M05-F10, #617).
MethodWindowsListFrames = "windows.listFrames"
MethodWindowsListTabs = "windows.listTabs"
MethodWindowsActivateTab = "windows.activateTab"
MethodWindowsCloseTab = "windows.closeTab"

// Help routing & language info (M05-F14, #621).
MethodHelpRegisterContext = "help.registerContext"
MethodHelpDisplay = "help.display"
MethodHelpPath = "help.path"
MethodLanguageInfo = "language.info"

// Interactive gizmos: the triad and manipulator handles (M05-F13, #620).
MethodTriadShow = "triad.show"
MethodTriadUpdate = "triad.update"
MethodTriadHide = "triad.hide"
MethodTriadGet = "triad.get"
MethodManipulatorsSet = "manipulators.set"
MethodManipulatorsRemove = "manipulators.remove"

// UI shell: search, marking menus, context menus, object visibility (M05-F12, #619).
MethodUISearch = "ui.search"
MethodUIGetMarkingMenu = "ui.getMarkingMenu"
MethodUISetMarkingMenu = "ui.setMarkingMenu"
MethodUISetContextMenu = "ui.setContextMenu"
MethodUIGetObjectVisibility = "ui.getObjectVisibility"
MethodUISetObjectVisibility = "ui.setObjectVisibility"
// Add-in UI environments (M05-F16, Oblikovati#667).
MethodUIRegisterEnvironment = "ui.registerEnvironment"
MethodUIActivateEnvironment = "ui.activateEnvironment"

// Application color schemes (M16-F06, Oblikovati#642): the named palettes (background,
// highlight, selection colors) the viewport and selection pipeline traffic in.
MethodColorSchemesList = "colorSchemes.list"
MethodColorSchemesGetActive = "colorSchemes.getActive"
MethodColorSchemesSetActive = "colorSchemes.setActive"

// Display options & settings (M16-F07, Oblikovati#643): the application-level display
// options and the per-document display settings (background, edges, ground plane, shadows)
// that parameterize the M23 display modes.
MethodDisplayGetOptions = "display.getOptions"
MethodDisplaySetOptions = "display.setOptions"
MethodDocumentGetDisplaySettings = "document.getDisplaySettings"
MethodDocumentSetDisplaySettings = "document.setDisplaySettings"

// Styles & standards (M16-F02, Oblikovati#403/#408): the document's color styles, the
// style-library cascade, and library import. (Lighting styles use the lighting.* methods.)
MethodStylesList = "styles.list"
MethodStylesGet = "styles.get"
MethodStylesSet = "styles.set"
MethodStylesDelete = "styles.delete"
MethodStylesListLibraries = "styles.listLibraries"
MethodStylesImportLibrary = "styles.importLibrary"

// Attached point clouds (M17-F06, Oblikovati/Oblikovati#645): laser-scan / photogrammetry
// references on the active part — attach, query, place, and budget their display. They
// operate on the active part's cloud collection, keyed by unique name.
MethodPointCloudsAttach = "pointClouds.attach"
MethodPointCloudsList = "pointClouds.list"
MethodPointCloudsGet = "pointClouds.get"
MethodPointCloudsDelete = "pointClouds.delete"
MethodPointCloudsSetVisible = "pointClouds.setVisible"
MethodPointCloudsSetTransform = "pointClouds.setTransform"
MethodPointCloudsSetScale = "pointClouds.setScale"
MethodPointCloudsSetDensity = "pointClouds.setDensity"
MethodPointCloudsToModelSpace = "pointClouds.toModelSpace"
MethodPointCloudsFromModelSpace = "pointClouds.fromModelSpace"

// Crop volumes that limit a cloud's display to a working region (M17-F06, #645).
MethodPointCloudsAddCrop = "pointClouds.addCrop"
MethodPointCloudsListCrops = "pointClouds.listCrops"
MethodPointCloudsDeleteCrop = "pointClouds.deleteCrop"
MethodPointCloudsSetCropActive = "pointClouds.setCropActive"

// Derive model geometry from a cloud's scanned points (M17-F06, #645).
MethodPointCloudsFitPlane = "pointClouds.fitPlane"
MethodPointCloudsNearestPoint = "pointClouds.nearestPoint"
)

Push-event type tags. These name host→add-in events delivered to the add-in's Notify entry point (ADR-0016), not callable request/response methods — there is no client method for them; an add-in matches on the event's "type" field. See the DTOs in this package (e.g. EditCommittedEvent).

const (
EventEditCommitted = "edit.committed"

// Document lifecycle + modeling events (#148): the DocumentEvents/ApplicationEvents/
// ModelingEvents wave. Created/Opened/Saved/Closed/Activated fire as a document moves
// through its life; ModelChanged carries a committed batch of model changes (features,
// sketches, parameters) on a document — an add-in re-queries the affected document.
EventDocumentCreated = "document.created"
EventDocumentOpened = "document.opened"
EventDocumentSaved = "document.saved"
EventDocumentClosed = "document.closed"
EventDocumentActivated = "document.activated"
EventModelChanged = "model.changed"
// EventBrowserNode notifies an add-in of interaction with one of its browser
// pane nodes (see [BrowserNodeEvent], M05-F03 #256).
EventBrowserNode = "browser.node"
// EventDockableWindowChanged notifies an add-in its dockable window was shown
// or hidden (see [DockableWindowChangedEvent], M05-F03 #247).
EventDockableWindowChanged = "dockableWindow.changed"
// EventProgressCancelled notifies the owner its progress bar was cancelled
// (see [ProgressCancelledEvent], M05-F09 #616).
EventProgressCancelled = "progress.cancelled"
// EventBalloonTipClicked notifies the owner its balloon was clicked
// (see [BalloonTipClickedEvent], M05-F09 #616).
EventBalloonTipClicked = "balloonTip.clicked"
// EventPromptAnswered delivers a pending prompt's answer
// (see [PromptAnsweredEvent], M05-F09 #616).
EventPromptAnswered = "prompt.answered"
// EventMiniToolbarChanged streams a mini-toolbar control edit
// (see [MiniToolbarChangedEvent], M05-F07 #614).
EventMiniToolbarChanged = "miniToolbar.changed"
// EventMiniToolbarCommitted delivers a mini-toolbar's OK/Apply/Cancel
// (see [MiniToolbarCommittedEvent], M05-F07 #614).
EventMiniToolbarCommitted = "miniToolbar.committed"
// EventFileDialogChosen delivers a file dialog's chosen paths
// (see [FileDialogChosenEvent], M05-F08 #615).
EventFileDialogChosen = "dialog.fileChosen"
// EventWebDialogChanged notifies a web view was shown or closed
// (see [WebDialogChangedEvent], M05-F08 #615).
EventWebDialogChanged = "webDialog.changed"
// EventTaskPanelClosed delivers a modal task panel's accept/cancel
// (see [TaskPanelClosedEvent]).
EventTaskPanelClosed = "taskPanel.closed"
// EventCommandStarted reports a command beginning (M05-F12 #619).
EventCommandStarted = "command.started"
// EventCommandEnded reports a command finishing (M05-F12 #619); the payload carries the command id
// and whether it failed. The host emits it as the after-pair of EventCommandStarted.
EventCommandEnded = "command.ended"
// EventPanelValueChanged reports the user editing an editable dockable-window control
// (M05-F03): the add-in receives the window id, control id, and new value.
EventPanelValueChanged = "panel.valueChanged"
// EventPanelReferencesChanged reports a referenceList control's row set changing
// (see [PanelReferencesChangedEvent]): the add-in receives the window id, control id, and
// the full new ref set.
EventPanelReferencesChanged = "panel.referencesChanged"
// EventSelectionChanged reports the selection set changing (M05-F12 #619).
EventSelectionChanged = "selection.changed"
// EventParameterChanged reports a parameter's expression/value changing (#148) — the granular
// notification beyond the generic edit.committed; the payload carries the parameter's new state.
EventParameterChanged = "parameters.changed"
// EventEnvironmentChanged reports the UI environment switching (M05-F12 #619).
EventEnvironmentChanged = "ui.environmentChanged"
// EventTriadDrag streams a triad gesture (see [TriadDragEvent], M05-F13 #620).
EventTriadDrag = "triad.drag"
// EventTriadSegment reports the hovered triad segment changing (M05-F13 #620).
EventTriadSegment = "triad.segment"
// EventManipulatorDrag streams a manipulator-handle gesture (M05-F13 #620).
EventManipulatorDrag = "manipulator.drag"
// EventClientOperation tells a subtype's owner its flavored document needs
// servicing (see [ClientOperationEvent], M05-F15 Oblikovati#665).
EventClientOperation = "client.operation"

// Transaction lifecycle events (see [TransactionEventPayload], M04-F05
// Oblikovati#613): every move of a document's transaction stream.
EventTransactionCommitted = "transaction.committed"
EventTransactionUndone = "transaction.undone"
EventTransactionRedone = "transaction.redone"
EventTransactionAborted = "transaction.aborted"
EventTransactionDeleted = "transaction.deleted"

// File-access events (see [FileResolutionEventPayload] and
// [FileDirtyEventPayload], M04-F05 Oblikovati#613).
EventFileResolution = "file.resolution"
EventFileDirty = "file.dirty"

// File-UI hook events (see [FileDialogHookPayload], M04-F05
// Oblikovati#613): the new/open/save-as flows and their dialogs.
EventFileNew = "file.new"
EventFileNewDialog = "file.newDialog"
EventFileOpenDialog = "file.openDialog"
EventFileSaveAsDialog = "file.saveAsDialog"
EventFileOpenFromMRU = "file.openFromMRU"
EventFilePopulateMetadata = "file.populateMetadata"

// Assembly occurrence-lifecycle events (see [OccurrenceEventPayload], M11-F07
// Oblikovati#723): a component was placed, removed, replaced, moved, or had its
// suppression toggled. The host coalesces a solver drag into one transformed event.
EventOccurrenceAdded = "occurrence.added"
EventOccurrenceDeleted = "occurrence.deleted"
EventOccurrenceReplaced = "occurrence.replaced"
EventOccurrenceTransformed = "occurrence.transformed"
EventOccurrenceSuppressed = "occurrence.suppressed"

// Assembly feature-program event (see [AssemblyFeaturesChangedEvent], M11-F08
// Oblikovati#725): the assembly's machining-feature program was re-evaluated.
EventAssemblyFeaturesChanged = "assemblyFeatures.changed"

// Assembly relationship events (see [ConstraintEventPayload], M12-F01
// Oblikovati#358/#363): a constraint was added or deleted, or the assembly was
// re-solved (occurrence placements may have changed — also signalled by the
// occurrence.transformed events the solve raises).
EventAssemblyConstraintAdded = "assemblyConstraints.added"
EventAssemblyConstraintDeleted = "assemblyConstraints.deleted"
EventAssemblyResolved = "assembly.resolved"

// Assembly joint events (see [JointEventPayload], M12-F02 Oblikovati#359/#364): a joint
// was added or removed (positions also change via the occurrence.transformed events the
// combined solve raises).
EventAssemblyJointAdded = "assemblyJoints.added"
EventAssemblyJointDeleted = "assemblyJoints.deleted"

// Representation/model-state events (M12-F04, Oblikovati#361/#367).
EventRepresentationCaptured = "representations.captured"
EventRepresentationActivated = "representations.activated"
EventModelStateActivated = "modelStates.activated"

// Style events (see [StyleChangedEvent], M16-F02 Oblikovati#403/#408): a color or lighting
// style was added, edited, or deleted — consumers re-resolve their styling.
EventStyleAdded = "style.added"
EventStyleChanged = "style.changed"
EventStyleDeleted = "style.deleted"

// Camera event (see [CameraChangedEvent], M16-F03 Oblikovati#404/#409): the active view's
// camera moved (orbit/pan/zoom/fit/named-view restore) — collaboration and overlay add-ins
// re-sync to the new frame.
EventCameraChanged = "camera.changed"

// Modeling events (#148): the ModelingEvents/SketchEvents wave, granular beyond the batched
// model.changed. A feature was created, edited, or deleted (see [FeatureLifecycleEvent]); the
// document's sketch-edit mode was entered or exited (see [SketchEditEvent]). Like edit.committed
// (ADR-0004), the v1 scope is the host method router: feature events fire for features.add/edit/
// delete, and sketch-edit events fire whenever the host enters/exits a sketch (UI or add-in driven).
EventFeatureAdded = "feature.added"
EventFeatureEdited = "feature.edited"
EventFeatureDeleted = "feature.deleted"
EventSketchEditEntered = "sketch.editEntered"
EventSketchEditExited = "sketch.editExited"

// Metadata-mutation events (see [ObjectRenamedEvent] / [PropertyChangedEvent], S10
// Oblikovati#1644): a document object was renamed, or a property (suppression, a sketch
// setting) changed — the mutation class add-ins previously could not observe. Fire for both
// UI- and add-in-driven edits (emitted at the host model/session seams).
EventObjectRenamed = "object.renamed"
EventPropertyChanged = "property.changed"
)

The option group names of MethodOptionsGetGroup / MethodOptionsSetGroup.

const (
OptionGroupGeneral = "general"
OptionGroupDisplay = "display"
OptionGroupSketch = "sketch"
OptionGroupPart = "part"
OptionGroupSave = "save"
)

type ActivateDocumentArgs

ActivateDocumentArgs is the request of MethodDocumentsActivate: the session id of the document to make active.

type ActivateDocumentArgs struct {
ID uint64 `json:"id"`
}

type ActivateEnvironmentArgs

ActivateEnvironmentArgs is the request of MethodUIActivateEnvironment: enter a REGISTERED add-in environment (its contextual tabs appear); the base value (0) leaves it.

type ActivateEnvironmentArgs struct {
Environment types.Environment `json:"environment"`
}

type ActivateOrientationArgs

ActivateOrientationArgs / DeleteOrientationArgs name the target orientation.

type ActivateOrientationArgs struct {
Name string `json:"name"`
}

type ActivateViewArgs

ActivateViewArgs is the request of MethodViewsActivate: make the indexed view active.

type ActivateViewArgs struct {
Document uint64 `json:"document,omitempty"`
Index int `json:"index"`
}

type ActivateViewTabArgs

ActivateViewTabArgs is the request of MethodWindowsActivateTab.

type ActivateViewTabArgs struct {
Document uint64 `json:"document"`
}

type AddAngleArgs

AddAngleArgs is the request of MethodAssemblyConstraintsAddAngle: hold Angle (radians) between directions A and B. Solution selects undirected (default), directed, or reference-vector measurement; "" ⇒ undirected.

type AddAngleArgs struct {
A ConstraintGeomRef `json:"a"`
B ConstraintGeomRef `json:"b"`
Angle float64 `json:"angle"`
Solution string `json:"solution,omitempty"`
}

type AddAngularDimensionArgs

AddAngularDimensionArgs is the request of MethodDrawingDimensionsAddAngular: an angular dimension on ViewName between the two straight model edges nearest the pick points (sheet mm). The measured angle re-derives when the model changes.

type AddAngularDimensionArgs struct {
Name string `json:"name,omitempty"`
ViewName string `json:"viewName"`
X1 float64 `json:"x1"`
Y1 float64 `json:"y1"`
X2 float64 `json:"x2"`
Y2 float64 `json:"y2"`
}

type AddArcLengthDimensionArgs

AddArcLengthDimensionArgs is the request of MethodDrawingDimensionsAddArcLength: an arc-length dimension on ViewName, attached to the circular/arc model edge nearest the pick point (sheet mm). It measures the edge's swept length (a full circle's circumference) with the dimension line following the arc; the value re-measures when the model changes.

type AddArcLengthDimensionArgs struct {
Name string `json:"name,omitempty"`
ViewName string `json:"viewName"`
PickXMM float64 `json:"pickXmm"`
PickYMM float64 `json:"pickYmm"`
}

type AddAssemblyChamferArgs

AddAssemblyChamferArgs is the request of MethodAssemblyFeaturesAddChamfer: chamfer the given component Edges by Distance (document units) on every participant — a flat setback on each placed instance of the picked edges.

type AddAssemblyChamferArgs struct {
Edges []AssemblyEdgeRef `json:"edges"`
Distance float64 `json:"distance"`
}

type AddAssemblyExtrudeArgs

AddAssemblyExtrudeArgs is the request of MethodAssemblyFeaturesAddExtrude: extrude the ProfileIndex-th closed region of the active assembly's SketchIndex-th sketch (authored on an assembly work plane) by Distance (document units) into every participant, applying Operation (a [types.BooleanType] spelling: "difference" cuts a pocket, "union" adds a boss). The assembly sketching subsystem (#739) supplies the profile; Distance must be positive.

type AddAssemblyExtrudeArgs struct {
SketchIndex int `json:"sketchIndex"`
ProfileIndex int `json:"profileIndex"`
Distance float64 `json:"distance"`
Operation string `json:"operation"`
}

type AddAssemblyFeatureArgs

AddAssemblyFeatureArgs is the request of MethodAssemblyFeaturesAdd: add a cut feature whose tool is the axis-aligned box [ToolMin,ToolMax] in the assembly's space, machined into every participating occurrence with Operation (a [types.BooleanType] spelling: "difference" cuts, "union" adds, "intersect" keeps the common volume). The new feature defaults to participating on every component present.

type AddAssemblyFeatureArgs struct {
ToolMin [3]float64 `json:"toolMin"`
ToolMax [3]float64 `json:"toolMax"`
Operation string `json:"operation"`
}

type AddAssemblyFilletArgs

AddAssemblyFilletArgs is the request of MethodAssemblyFeaturesAddFillet: round the given component Edges to constant Radius (document units) on every participant. CornerType selects how a vertex where two filleted edges meet (third edge sharp) is treated — a [types.FilletCornerType] wire spelling ("miter" | "setback" | "round"); empty defaults to "miter".

type AddAssemblyFilletArgs struct {
Edges []AssemblyEdgeRef `json:"edges"`
Radius float64 `json:"radius"`
CornerType string `json:"cornerType,omitempty"`
}

type AddAssemblyHoleArgs

AddAssemblyHoleArgs is the request of MethodAssemblyFeaturesAddHole: drill a hole of Diameter and Depth (document units) from Center along Axis (a direction in the assembly's space) through every participating occurrence — a parametric assembly feature kind that needs no sketch (M11-F08 kind set, #735). Diameter and Depth must be positive and Axis non-zero.

type AddAssemblyHoleArgs struct {
Center [3]float64 `json:"center"`
Axis [3]float64 `json:"axis"`
Diameter float64 `json:"diameter"`
Depth float64 `json:"depth"`
}

type AddAssemblyMoveFaceArgs

AddAssemblyMoveFaceArgs is the request of MethodAssemblyFeaturesAddMoveFace: translate the given component Faces by Translation (a vector in document units, assembly space) on every participant — the assembly-context Move Face.

type AddAssemblyMoveFaceArgs struct {
Faces []AssemblyFaceRef `json:"faces"`
Translation [3]float64 `json:"translation"`
}

type AddAssemblyRevolveArgs

AddAssemblyRevolveArgs is the request of MethodAssemblyFeaturesAddRevolve: revolve the ProfileIndex-th closed region of the active assembly's SketchIndex-th sketch (authored on an assembly work plane) about the axis line through Origin along Axis (a direction in the assembly's space) by Angle (radians, in (0,2π]; 2π is a full turn) into every participant, applying Operation (a [types.BooleanType] spelling: "difference" turns a groove, "union" adds a turned boss). The assembly sketching subsystem (#739) supplies the profile (M11-F08 kind set, #735). Angle must be in (0,2π] and Axis non-zero.

type AddAssemblyRevolveArgs struct {
SketchIndex int `json:"sketchIndex"`
ProfileIndex int `json:"profileIndex"`
Origin [3]float64 `json:"origin"`
Axis [3]float64 `json:"axis"`
Angle float64 `json:"angle"`
Operation string `json:"operation"`
}

type AddAssemblySweepArgs

AddAssemblySweepArgs is the request of MethodAssemblyFeaturesAddSweep: sweep the ProfileIndex-th closed region of the active assembly's SketchIndex-th sketch along Path — an explicit polyline (>= 2 points) in the assembly's space, the assembly-context analogue of the revolve's explicit axis — into every participant, applying Operation (a [types.BooleanType] spelling: "difference" cuts a channel, "union" adds a rib). The profile follows the path normal-to-path (M11-F08 kind set, #735).

type AddAssemblySweepArgs struct {
SketchIndex int `json:"sketchIndex"`
ProfileIndex int `json:"profileIndex"`
Path [][3]float64 `json:"path"`
Operation string `json:"operation"`
}

type AddAttachmentArgs

AddAttachmentArgs is the request of MethodDocumentsAddAttachment: attach the file at FullFileName under the unique Name. An embedded attachment reads the file once and carries its bytes; linked/generic record the path.

type AddAttachmentArgs struct {
Document uint64 `json:"document"`
Name string `json:"name"`
Kind types.AttachmentKind `json:"kind"`
FullFileName string `json:"fullFileName"`
}

type AddAuxiliaryViewArgs

AddAuxiliaryViewArgs is the request of MethodDrawingViewsAddAuxiliary: a view projected perpendicular to a fold line drawn on the parent view at FoldAngleDeg (degrees, measured from the parent's horizontal axis), inheriting the parent's scale and style. A fold angle of 0 folds down (like a top projection); 90 folds to the side.

type AddAuxiliaryViewArgs struct {
Name string `json:"name,omitempty"`
ParentView string `json:"parentView"`
FoldAngleDeg float64 `json:"foldAngleDeg"`
CenterXMM float64 `json:"centerXmm,omitempty"`
CenterYMM float64 `json:"centerYmm,omitempty"`
}

type AddBalloonArgs

AddBalloonArgs is the request of MethodDrawingAnnotationsAddBalloon: a balloon (a circle holding the parts-list Item number) centred at (XMM, YMM) on the sheet. If LeaderXMM/LeaderYMM are given (non-zero), a leader is drawn from the balloon to that point — the component it tags.

type AddBalloonArgs struct {
Name string `json:"name,omitempty"`
XMM float64 `json:"xmm"`
YMM float64 `json:"ymm"`
Item int `json:"item"`
LeaderXMM float64 `json:"leaderXmm,omitempty"`
LeaderYMM float64 `json:"leaderYmm,omitempty"`
}

type AddBaseViewArgs

AddBaseViewArgs is the request of MethodDrawingViewsAddBase: a base view of the drawing's referenced model at the given orientation/scale/style, centred at (CenterXMM, CenterYMM) on the active sheet. An empty Name auto-assigns; empty Orientation/Style default to front / hiddenLine; a non-positive Scale defaults to 1.

type AddBaseViewArgs struct {
Name string `json:"name,omitempty"`
Orientation string `json:"orientation,omitempty"`
Style string `json:"style,omitempty"`
Scale float64 `json:"scale,omitempty"`
CenterXMM float64 `json:"centerXmm,omitempty"`
CenterYMM float64 `json:"centerYmm,omitempty"`
}

type AddBreakViewArgs

AddBreakViewArgs is the request of MethodDrawingViewsAddBreak: a compressed view of the parent with a band removed. Orientation is "horizontal" (remove a vertical band) or "vertical"; GapStartMM/GapEndMM bound the removed band along that axis on the parent (sheet millimetres). The view is placed at (CenterXMM, CenterYMM).

type AddBreakViewArgs struct {
Name string `json:"name,omitempty"`
ParentView string `json:"parentView"`
Orientation string `json:"orientation,omitempty"` // types.BreakOrientation ("" ⇒ horizontal)
GapStartMM float64 `json:"gapStartMm"`
GapEndMM float64 `json:"gapEndMm"`
CenterXMM float64 `json:"centerXmm,omitempty"`
CenterYMM float64 `json:"centerYmm,omitempty"`
}

type AddBreakoutViewArgs

AddBreakoutViewArgs is the request of MethodDrawingViewsAddBreakout: a copy of ParentView with the interior revealed inside the circular region (BoundaryXMM, BoundaryYMM, RadiusMM on the parent, sheet mm) — a local cut-away. Placed at (CenterXMM, CenterYMM).

type AddBreakoutViewArgs struct {
Name string `json:"name,omitempty"`
ParentView string `json:"parentView"`
BoundaryXMM float64 `json:"boundaryXmm"`
BoundaryYMM float64 `json:"boundaryYmm"`
RadiusMM float64 `json:"radiusMm"`
CenterXMM float64 `json:"centerXmm,omitempty"`
CenterYMM float64 `json:"centerYmm,omitempty"`
}

type AddCenterMarksArgs

AddCenterMarksArgs is the request of MethodDrawingAnnotationsAddCenterMarks: a centre mark (crosshair) at the centre of every circular model edge in ViewName. Each mark attaches to its edge, so it re-projects when the model changes. Coincident projections are marked once.

type AddCenterMarksArgs struct {
ViewName string `json:"viewName"`
}

type AddCenterlineArgs

AddCenterlineArgs adds a cosmetic centerline from Start to End in flat 2D coordinates.

type AddCenterlineArgs struct {
Start types.Point2d `json:"start"`
End types.Point2d `json:"end"`
}

type AddCenterlinesArgs

AddCenterlinesArgs is the request of MethodDrawingAnnotationsAddCenterlines: the horizontal and vertical dash-dot symmetry centerlines through ViewName's centre, spanning its extent. The lines re-derive from the view's bounds, so they track the model.

type AddCenterlinesArgs struct {
Name string `json:"name,omitempty"`
ViewName string `json:"viewName"`
}

type AddCoGMarkerArgs

AddCoGMarkerArgs is the request of MethodDrawingAnnotationsAddCoG: a centre-of-gravity marker on ViewName, positioned at the referenced model's centre of mass projected into that view.

type AddCoGMarkerArgs struct {
Name string `json:"name,omitempty"`
ViewName string `json:"viewName"`
}

type AddConstraintArgs

AddConstraintArgs is the request of MethodSketchAddConstraint — the discriminated geometric-constraint constructor. Kind is a oblikovati.org/api/types.GeometricConstraintKind; Entities are the session ids of the geometry it relates (points/lines/curves), in the kind's expected order:

  • coincident/horizontal/vertical: two point ids (or one line id)
  • parallel/perpendicular/collinear/equalLength: two line ids
  • concentric/equalRadius: two circular-curve ids
  • tangent: a line id + a circular-curve id, or two circular-curve ids
  • pointOnLine/midpoint: a point id + a line id
  • pointOnCircle: a point id + a circular-curve id
  • symmetry: two point ids + a line id (the mirror line)
  • fix: one point id
  • custom: any entity ids to tag; ClientID is the owning add-in id (required) and Name the record's name — an attribute-carrying marker, not a solver constraint (M06-F11, Oblikovati/Oblikovati#626)
type AddConstraintArgs struct {
SketchIndex int `json:"sketchIndex"`
Kind string `json:"kind"`
Entities []uint64 `json:"entities"`
ClientID string `json:"clientId,omitempty"`
Name string `json:"name,omitempty"`
}

type AddConstraintResult

AddConstraintResult is the response of MethodSketchAddConstraint: the new constraint's index in the sketch's geometric-constraint collection, its kind, and the sketch's resulting degrees of freedom (so a caller sees the DOF drop).

type AddConstraintResult struct {
Index int `json:"index"`
Kind string `json:"kind"`
DOF int `json:"dof"`
}

type AddCustomArgs

AddCustomArgs is the request of MethodAssemblyConstraintsAddCustom: register a relationship between A and B that the add-in named Kind solves, driven by Params. The built-in solver treats it as residual-free unless an add-in solver is installed.

type AddCustomArgs struct {
A ConstraintGeomRef `json:"a"`
B ConstraintGeomRef `json:"b"`
Kind string `json:"kind"`
Params []float64 `json:"params,omitempty"`
}

type AddCustomTableArgs

AddCustomTableArgs is the request of MethodDrawingAnnotationsAddCustomTable: a general-purpose table at (XMM, YMM) on the sheet (its top-left corner) with the given column Headers and Rows (each row's cells align to the headers). The table is user-supplied content, persisted verbatim.

type AddCustomTableArgs struct {
Name string `json:"name,omitempty"`
XMM float64 `json:"xmm"`
YMM float64 `json:"ymm"`
Headers []string `json:"headers"`
Rows [][]string `json:"rows,omitempty"`
}

type AddDSJointArgs

AddDSJointArgs is the request of MethodDSJointsAdd: add a DS joint of the given Type (a DSJointType string) between origins A and B.

type AddDSJointArgs struct {
A ConstraintGeomRef `json:"a"`
B ConstraintGeomRef `json:"b"`
Type string `json:"type"`
}

type AddDatumFeatureArgs

AddDatumFeatureArgs is the request of [MethodDrawingAnnotationsAddDatumFeature]: a GD&T datum feature symbol at (XMM, YMM) on the sheet — the datum Letter (e.g. "A") in a box with a filled datum triangle. The symbol is generated by the host.

type AddDatumFeatureArgs struct {
Name string `json:"name,omitempty"`
XMM float64 `json:"xmm"`
YMM float64 `json:"ymm"`
Letter string `json:"letter"`
}

type AddDetailViewArgs

AddDetailViewArgs is the request of MethodDrawingViewsAddDetail: a magnified view of the circular region (BoundaryXMM, BoundaryYMM, RadiusMM — on the parent, sheet millimetres) of ParentView, at the larger Scale, placed at (CenterXMM, CenterYMM).

type AddDetailViewArgs struct {
Name string `json:"name,omitempty"`
ParentView string `json:"parentView"`
BoundaryXMM float64 `json:"boundaryXmm"`
BoundaryYMM float64 `json:"boundaryYmm"`
RadiusMM float64 `json:"radiusMm"`
Scale float64 `json:"scale"`
CenterXMM float64 `json:"centerXmm,omitempty"`
CenterYMM float64 `json:"centerYmm,omitempty"`
}

type AddDimensionArgs

AddDimensionArgs is the request of MethodSketchAddDimension — the discriminated dimensional-constraint constructor. Kind is a oblikovati.org/api/types.DimensionConstraintKind; Entities are the session ids of the geometry being dimensioned (in the kind's order); Expression is the unit-bearing value ("40 mm", "30 deg"):

  • distance: two point ids
  • angle: two line ids
  • radius/diameter: one circle id
  • arcLength: one arc id
type AddDimensionArgs struct {
SketchIndex int `json:"sketchIndex"`
Kind string `json:"kind"`
Entities []uint64 `json:"entities"`
Expression string `json:"expression"`
// FarSide selects the far tangent point for a "tangentDistance" dimension (line→circle/arc);
// the default (false) dimensions to the near side. Ignored by other kinds (#152).
FarSide bool `json:"farSide,omitempty"`
}

type AddDimensionResult

AddDimensionResult is the response of MethodSketchAddDimension: the new dimension's index in the sketch's dimensional-constraint collection, its kind, the backing parameter name, the current measured value (model units), and the sketch's resulting DOF.

type AddDimensionResult struct {
Index int `json:"index"`
Kind string `json:"kind"`
Parameter string `json:"parameter"`
Value float64 `json:"value"`
DOF int `json:"dof"`
}

type AddDimensionSetArgs

AddDimensionSetArgs is the request of MethodDrawingDimensionsAddBaseline / MethodDrawingDimensionsAddChain: a set of linear dimensions on ViewName from a list of pick points (each [x,y] sheet mm, snapped to the nearest projected model vertex). A baseline set measures from the first point to each of the others (stacked); a chain set measures between consecutive points (in a line). Type selects the measured component (aligned/horizontal/vertical).

type AddDimensionSetArgs struct {
ViewName string `json:"viewName"`
Type string `json:"type,omitempty"`
Points [][]float64 `json:"points"`
}

type AddDocumentInterestArgs

AddDocumentInterestArgs is the request of MethodDocumentsAddInterest: an existing (ClientID, Name) record is updated in place.

type AddDocumentInterestArgs struct {
Document uint64 `json:"document"`
Interest types.DocumentInterestRecord `json:"interest"`
}

type AddDraftViewArgs

AddDraftViewArgs is the request of MethodDrawingViewsAddDraft: a model-less framed view of WidthMM × HeightMM (sheet mm) at (CenterXMM, CenterYMM) — a container for manual 2D geometry.

type AddDraftViewArgs struct {
Name string `json:"name,omitempty"`
WidthMM float64 `json:"widthMm"`
HeightMM float64 `json:"heightMm"`
CenterXMM float64 `json:"centerXmm,omitempty"`
CenterYMM float64 `json:"centerYmm,omitempty"`
}

type AddDrawingNoteArgs

AddDrawingNoteArgs is the request of MethodDrawingAnnotationsAddNote: a free text note anchored at (XMM, YMM) on the sheet. If LeaderXMM/LeaderYMM are given (non-zero), a leader is drawn from the note to that point — the feature it annotates.

type AddDrawingNoteArgs struct {
Name string `json:"name,omitempty"`
XMM float64 `json:"xmm"`
YMM float64 `json:"ymm"`
Text string `json:"text"`
LeaderXMM float64 `json:"leaderXmm,omitempty"`
LeaderYMM float64 `json:"leaderYmm,omitempty"`
}

type AddDrawingSketchArgs

AddDrawingSketchArgs is the request of MethodDrawingSketchesAdd: a new empty sketch on the active sheet. A blank Name auto-names it.

type AddDrawingSketchArgs struct {
Name string `json:"name,omitempty"`
}

type AddDrawingSketchEntityArgs

AddDrawingSketchEntityArgs is the request of MethodDrawingSketchesAddEntity: add one entity to the named sketch. Points are sheet-millimetre [x, y] pairs — two for a line (endpoints) or rectangle (opposite corners), one for a circle (centre, with Radius in millimetres).

type AddDrawingSketchEntityArgs struct {
SketchName string `json:"sketchName"`
Kind string `json:"kind"`
Points [][2]float64 `json:"points"`
Radius float64 `json:"radiusMm,omitempty"`
}

type AddEntityIDResult

AddEntityIDResult is the trivial response carrying just a created entity's id (used by MethodSketchAddFillRegion and MethodSketchAddText).

type AddEntityIDResult struct {
EntityID uint64 `json:"entityId"`
}

type AddErrorMessageArgs

AddErrorMessageArgs is the request of MethodErrorsAddMessage: report into the message center, under the innermost open section (or top-level).

type AddErrorMessageArgs struct {
Text string `json:"text"`
Severity types.MessageSeverity `json:"severity,omitempty"`
}

type AddFeatureArgs

AddFeatureArgs is the request of MethodFeaturesAdd: a feature kind and its operation-specific arguments (an opaque JSON object validated by the kind's schema).

type AddFeatureArgs struct {
Kind string `json:"kind"`
Args json.RawMessage `json:"args"`
}

type AddFeatureControlFrameArgs

AddFeatureControlFrameArgs is the request of [MethodDrawingAnnotationsAddFeatureControlFrame]: a GD&T feature control frame placed at (XMM, YMM) on the sheet. Characteristic is the geometric characteristic wire spelling (types.GeometricCharacteristic, e.g. "position"). Tolerance is the tolerance text (e.g. "0.5" or "⌀0.2"). Datums are the datum reference letters, in order (e.g. ["A","B","C"]). The frame, the characteristic symbol and the text are generated by the host.

type AddFeatureControlFrameArgs struct {
Name string `json:"name,omitempty"`
XMM float64 `json:"xmm"`
YMM float64 `json:"ymm"`
Characteristic string `json:"characteristic"`
Tolerance string `json:"tolerance"`
Datums []string `json:"datums,omitempty"`
}

type AddFillRegionArgs

AddFillRegionArgs is the request of MethodSketchAddFillRegion: fill the closed region containing Seed ([x,y] cm) with the named Style (empty ⇒ solid).

type AddFillRegionArgs struct {
SketchIndex int `json:"sketchIndex"`
Seed []float64 `json:"seed"`
Style string `json:"style,omitempty"`
}

type AddFlushArgs

AddFlushArgs is the request of MethodAssemblyConstraintsAddFlush: make faces A and B co-planar (normals aligned) at Offset.

type AddFlushArgs struct {
A ConstraintGeomRef `json:"a"`
B ConstraintGeomRef `json:"b"`
Offset float64 `json:"offset,omitempty"`
}

type AddHatchRegionArgs

AddHatchRegionArgs is the request of MethodDrawingSketchesAddHatch: fill the rectangle at (XMM, YMM) of size WidthMM×HeightMM (sheet millimetres) with a hatch pattern. Pattern is the built-in pattern name ("general", "cross", "ansi31"); ScaleMm overrides the line spacing (0 ⇒ the pattern default). The region is added to the named sketch (created if SketchName is blank).

type AddHatchRegionArgs struct {
SketchName string `json:"sketchName,omitempty"`
XMM float64 `json:"xmm"`
YMM float64 `json:"ymm"`
WidthMM float64 `json:"widthMm"`
HeightMM float64 `json:"heightMm"`
Pattern string `json:"pattern,omitempty"`
ScaleMM float64 `json:"scaleMm,omitempty"`
}

type AddHoleNotesArgs

AddHoleNotesArgs is the request of MethodDrawingAnnotationsAddHoleNotes: a feature note on each hole in the base view ViewName — a leadered diameter callout (Ø<d>) computed from the hole's circular edge. The notes re-resolve when the model changes (rowCount in the result is the hole count).

type AddHoleNotesArgs struct {
Name string `json:"name,omitempty"`
ViewName string `json:"viewName"`
// Quantity is the grouping mode ("perHole" = one callout per hole, the default; "combined" =
// one "<n>x Ø<d>" callout per distinct diameter). Empty means perHole.
Quantity string `json:"quantity,omitempty"`
// Format is an optional callout template with {d} (diameter) and {n} (hole count) placeholders —
// e.g. "Ø{d} THRU" or "TAP M8 x{n}". Empty uses the default ("Ø{d}", or "{n}x Ø{d}" combined).
// The {d} value is computed from the hole, so the callout stays associative to the model.
Format string `json:"format,omitempty"`
}

type AddHoleTableArgs

AddHoleTableArgs is the request of MethodDrawingAnnotationsAddHoleTable: a hole table at (XMM, YMM) on the sheet (its top-left corner), listing every circular edge in the base view ViewName with its X/Y position from the view's datum origin and its diameter. The table updates with the model (rowCount in the result is the hole count).

type AddHoleTableArgs struct {
Name string `json:"name,omitempty"`
ViewName string `json:"viewName"`
XMM float64 `json:"xmm"`
YMM float64 `json:"ymm"`
}

type AddInInfo

AddInInfo is one registry entry of MethodAddInsList / MethodAddInsGet: the manifest identity plus the host-side runtime state (the ApplicationAddIn equivalent). Location is the shared-library path the add-in was loaded from — empty for a first-party in-process add-in. HasAutomation reports whether MethodAddInsCallAutomation can target this add-in.

type AddInInfo struct {
ID string `json:"id"`
DisplayName string `json:"displayName,omitempty"`
Version string `json:"version,omitempty"`
Description string `json:"description,omitempty"`
Kind types.AddInKind `json:"kind,omitempty"`
LoadBehavior types.AddInLoadBehavior `json:"loadBehavior,omitempty"`
Activated bool `json:"activated"`
Location string `json:"location,omitempty"`
Capabilities []string `json:"capabilities,omitempty"`
HasAutomation bool `json:"hasAutomation,omitempty"`
}

type AddInManifest

AddInManifest is the JSON document a shared-library add-in embeds and returns from ObkAddInManifest (see include/oblikovati_addin.h) — the add-in's self-description. The host parses it into the registry entry it serves from addins.list, so the manifest is the single place an add-in declares its identity.

type AddInManifest struct {
ID string `json:"id"`
DisplayName string `json:"displayName"`
Version string `json:"version"`
Description string `json:"description,omitempty"`
Kind types.AddInKind `json:"kind,omitempty"`
Capabilities []string `json:"capabilities,omitempty"`
}

type AddInRefArgs

AddInRefArgs names the add-in a registry method targets — the request of MethodAddInsGet, MethodAddInsActivate and MethodAddInsDeactivate.

type AddInRefArgs struct {
ID string `json:"id"`
}

type AddInsertArgs

AddInsertArgs is the request of MethodAssemblyConstraintsAddInsert: an insert combines an axis mate (A's axis collinear with B's) and a plane mate at Offset — a bolt into a hole. Opposed selects the opposed (default) plane sense; false ⇒ aligned.

type AddInsertArgs struct {
A ConstraintGeomRef `json:"a"`
B ConstraintGeomRef `json:"b"`
Offset float64 `json:"offset,omitempty"`
Aligned bool `json:"aligned,omitempty"`
}

type AddJointArgs

AddJointArgs is the request of the add-joint methods (MethodAssemblyJointsAddRigidMethodAssemblyJointsAddBall): build the joint between joint origins A and B. Flip reverses the primary-axis sense (which way the components face).

type AddJointArgs struct {
A ConstraintGeomRef `json:"a"`
B ConstraintGeomRef `json:"b"`
Flip bool `json:"flip,omitempty"`
}

type AddLightArgs

AddLightArgs is the request of MethodLightingAddLight: the emission shape of the light to add (it is created with neutral defaults the caller then tunes via SetLight).

type AddLightArgs struct {
DefinitionType types.LightDefinitionTypeEnum `json:"definitionType"`
}

type AddLinearDimensionArgs

AddLinearDimensionArgs is the request of MethodDrawingDimensionsAddLinear: a linear dimension on ViewName between two pick points (sheet millimetres). Each pick is snapped to the nearest projected model vertex, so the dimension re-measures when the model changes. Type selects the measured component (aligned = true distance, default; horizontal/vertical = the view-X/Y component). OffsetMM stands the dimension line off the measured points (signed, sheet mm).

type AddLinearDimensionArgs struct {
Name string `json:"name,omitempty"`
ViewName string `json:"viewName"`
Type string `json:"type,omitempty"`
X1 float64 `json:"x1"`
Y1 float64 `json:"y1"`
X2 float64 `json:"x2"`
Y2 float64 `json:"y2"`
OffsetMM float64 `json:"offsetMm,omitempty"`
}

type AddMateArgs

AddMateArgs is the request of MethodAssemblyConstraintsAddMate: make geometry A coincident with geometry B at Offset (database units). Solution selects opposed (the default mate) or aligned (flush) normals where the geometry is directional; "" ⇒ opposed.

type AddMateArgs struct {
A ConstraintGeomRef `json:"a"`
B ConstraintGeomRef `json:"b"`
Offset float64 `json:"offset,omitempty"`
Solution string `json:"solution,omitempty"`
}

type AddOrdinateDimensionsArgs

AddOrdinateDimensionsArgs is the request of MethodDrawingDimensionsAddOrdinate: an ordinate dimension for each point in Points, each measuring that point's offset from the common Datum ([x,y] sheet mm) along Axis. Datum and every point are snapped to the nearest projected model vertex, so the values stay associative. Axis is "horizontal" (the view-X offset) or "vertical" (the view-Y offset). Each ordinate is drawn as a leader to its value with no dimension line.

type AddOrdinateDimensionsArgs struct {
ViewName string `json:"viewName"`
Axis string `json:"axis,omitempty"` // horizontal (default) | vertical
Datum []float64 `json:"datum"` // [x,y] sheet mm — the common origin
Points [][]float64 `json:"points"` // each [x,y] sheet mm
}

type AddOrientationArgs

AddOrientationArgs creates a named orientation. AlignmentType defaults to "horizontal"; an empty AlignmentAxis uses the part's natural axes; AlignmentRotation is in degrees.

type AddOrientationArgs struct {
Name string `json:"name"`
AlignmentType string `json:"alignmentType,omitempty"`
AlignmentRotation float64 `json:"alignmentRotation,omitempty"`
AlignmentAxis string `json:"alignmentAxis,omitempty"`
FlipAlignmentAxis bool `json:"flipAlignmentAxis,omitempty"`
FlipBaseFace bool `json:"flipBaseFace,omitempty"`
Activate bool `json:"activate,omitempty"`
}

type AddPartsListArgs

AddPartsListArgs is the request of MethodDrawingAnnotationsAddPartsList: a parts list table at (XMM, YMM) on the sheet (its top-left corner), sourced from the referenced assembly's parts-only BOM (item number, part number, description, quantity). The table updates with the assembly.

type AddPartsListArgs struct {
Name string `json:"name,omitempty"`
XMM float64 `json:"xmm"`
YMM float64 `json:"ymm"`
}

type AddPointCloudCropArgs

AddPointCloudCropArgs is the request of MethodPointCloudsAddCrop: add an active crop over the model-space box [Min, Max] on the named cloud. The host mints the crop name.

type AddPointCloudCropArgs struct {
Cloud string `json:"cloud"`
Min types.Point `json:"min"`
Max types.Point `json:"max"`
}

type AddProjectedViewArgs

AddProjectedViewArgs is the request of MethodDrawingViewsAddProjected: a view projected from BaseView in Direction (right/left/up/down), inheriting the base's scale and style.

type AddProjectedViewArgs struct {
Name string `json:"name,omitempty"`
BaseView string `json:"baseView"`
Direction string `json:"direction"`
CenterXMM float64 `json:"centerXmm,omitempty"`
CenterYMM float64 `json:"centerYmm,omitempty"`
}

type AddProxyCutFeatureArgs

AddProxyCutFeatureArgs is the request of MethodAssemblyFeaturesAddProxyCut: add a feature whose tool is supplied as an occurrence-context proxy — the geometry of the Source occurrence (by session id), resolved into assembly space and re-resolved on every rebuild, so the machining follows the source as it moves or changes (M11-F08 proxy inputs, #734). Operation is a [types.BooleanType] spelling ("difference" cuts). The source occurrence is excluded from the new feature's default participation (a component does not machine itself).

type AddProxyCutFeatureArgs struct {
Source uint64 `json:"source"`
Operation string `json:"operation"`
}

type AddRadialDimensionArgs

AddRadialDimensionArgs is the request of MethodDrawingDimensionsAddRadial: a radius or diameter dimension on ViewName, attached to the circular model edge nearest the pick point (sheet mm). Type is "radius" or "diameter". The dimension re-measures when the model changes.

type AddRadialDimensionArgs struct {
Name string `json:"name,omitempty"`
ViewName string `json:"viewName"`
Type string `json:"type,omitempty"` // radius (default) | diameter
PickXMM float64 `json:"pickXmm"`
PickYMM float64 `json:"pickYmm"`
}

type AddRevisionCloudArgs

AddRevisionCloudArgs is the request of MethodDrawingAnnotationsAddRevisionCloud: a scalloped cloud over the sheet rectangle (XMM, YMM, WidthMM, HeightMM), with an optional revision Tag.

type AddRevisionCloudArgs struct {
Name string `json:"name,omitempty"`
XMM float64 `json:"xmm"`
YMM float64 `json:"ymm"`
WidthMM float64 `json:"widthMm"`
HeightMM float64 `json:"heightMm"`
Tag string `json:"tag,omitempty"`
}

type AddRevisionTableArgs

AddRevisionTableArgs is the request of [MethodDrawingAnnotationsAddRevisionTable]: a revision table at (XMM, YMM) on the sheet (its top-left corner), listing the given Rows (revision, date, description). The rows are user-supplied drawing history, persisted with the drawing.

type AddRevisionTableArgs struct {
Name string `json:"name,omitempty"`
XMM float64 `json:"xmm"`
YMM float64 `json:"ymm"`
Rows []RevisionTableRow `json:"rows,omitempty"`
}

type AddRevisionTagArgs

AddRevisionTagArgs is the request of [MethodDrawingAnnotationsAddRevisionTag]: a revision tag (a triangle holding the Revision letter) centred at (XMM, YMM) on the sheet, flagging where that revision changed the drawing.

type AddRevisionTagArgs struct {
Name string `json:"name,omitempty"`
XMM float64 `json:"xmm"`
YMM float64 `json:"ymm"`
Revision string `json:"revision"`
}

type AddRotateRotateArgs

AddRotateRotateArgs is the request of MethodAssemblyConstraintsAddRotateRotate: couple rotation A to rotation B by gear Ratio (revolutions of B per revolution of A).

type AddRotateRotateArgs struct {
A ConstraintGeomRef `json:"a"`
B ConstraintGeomRef `json:"b"`
Ratio float64 `json:"ratio"`
}

type AddRotateTranslateArgs

AddRotateTranslateArgs is the request of MethodAssemblyConstraintsAddRotateTranslate: couple rotation A to translation B by Distance moved per revolution (rack and pinion).

type AddRotateTranslateArgs struct {
A ConstraintGeomRef `json:"a"`
B ConstraintGeomRef `json:"b"`
Distance float64 `json:"distance"`
}

type AddSectionArgs

AddSectionArgs adds a section/clipping plane to a design-view representation.

type AddSectionArgs struct {
Rep uint64 `json:"rep"`
Plane types.SectionPlane `json:"plane"`
}

type AddSectionViewArgs

AddSectionViewArgs is the request of MethodDrawingViewsAddSection: a section view of the parent's model, cut by the plane through the section line (X1,Y1)-(X2,Y2) on the parent (sheet millimetres), perpendicular to the parent. The near half is removed, the cut outline drawn bold and the exposed faces hatched; the view is placed at (CenterXMM, CenterYMM).

type AddSectionViewArgs struct {
Name string `json:"name,omitempty"`
ParentView string `json:"parentView"`
X1 float64 `json:"x1"`
Y1 float64 `json:"y1"`
X2 float64 `json:"x2"`
Y2 float64 `json:"y2"`
CenterXMM float64 `json:"centerXmm,omitempty"`
CenterYMM float64 `json:"centerYmm,omitempty"`
}

type AddSheetArgs

AddSheetArgs is the request of MethodDrawingAddSheet. Size is a types.SheetSize spelling; for "custom" (or an empty Size) WidthMM/HeightMM give the dimensions. An empty Name lets the host assign the next "Sheet:N" name.

type AddSheetArgs struct {
Name string `json:"name,omitempty"`
Size string `json:"size,omitempty"`
Orientation string `json:"orientation,omitempty"`
WidthMM float64 `json:"widthMm,omitempty"`
HeightMM float64 `json:"heightMm,omitempty"`
}

type AddSketch3DConstraintArgs

AddSketch3DConstraintArgs is the request of MethodSketch3DAddConstraint — the discriminated 3D geometric-constraint constructor. Kind is the constraint (oblikovati.org/api/types.Geometric3DConstraintKind). Entities are the session ids of the geometry it relates, in the kind's expected order (parallel/perpendicular: two line ids; midpoint: point id + line id; ground: a point id; parallelToAxis/Plane: a single line id; coincident/concentric: two point ids; collinear: three point ids; tangent/smooth: two curve ids (line/arc/spline — the join lands on their nearest endpoints, and smooth needs at least one spline); equal: two circle/helix ids (their radius DOFs); splineFitPoints: a fit-spline id + a point id (attached to the nearest fit point); helical: a helix id + the circle it starts on, with parallel axes; bend: an arc id + the two lines it joins — the bend radius is captured from the arc's current geometry).

type AddSketch3DConstraintArgs struct {
SketchIndex int `json:"sketchIndex"`
Kind string `json:"kind"`
Entities []uint64 `json:"entities,omitempty"`
}

type AddSketch3DConstraintResult

AddSketch3DConstraintResult is the response of MethodSketch3DAddConstraint: the new constraint's index in the sketch's geometric-constraint collection, its kind, and the sketch's resulting degree-of-freedom count.

type AddSketch3DConstraintResult struct {
Index int `json:"index"`
Kind string `json:"kind"`
DOF int `json:"dof"`
}

type AddSketch3DDimensionArgs

AddSketch3DDimensionArgs is the request of MethodSketch3DAddDimension — the discriminated 3D dimensional-constraint constructor. Kind is the dimension (oblikovati.org/api/types.Dimension3DConstraintKind). Entities are the session ids of the dimensioned geometry (distance: two point ids; lineLength/radius: one entity id; pointPlaneDistance: one point id; twoLineAngle: two line ids). Expression is the unit-bearing value ("10 mm", "30 deg"). Plane selects the reference origin plane for pointPlaneDistance ("XY" | "XZ" | "YZ").

type AddSketch3DDimensionArgs struct {
SketchIndex int `json:"sketchIndex"`
Kind string `json:"kind"`
Entities []uint64 `json:"entities,omitempty"`
Expression string `json:"expression"`
Plane string `json:"plane,omitempty"`
}

type AddSketch3DDimensionResult

AddSketch3DDimensionResult is the response of MethodSketch3DAddDimension: the dimension's index, its kind, the backing parameter name, the current measured value (cm/rad), and the sketch's resulting degree-of-freedom count.

type AddSketch3DDimensionResult struct {
Index int `json:"index"`
Kind string `json:"kind"`
Parameter string `json:"parameter"`
Value float64 `json:"value"`
DOF int `json:"dof"`
}

type AddSketch3DEntityArgs

AddSketch3DEntityArgs is the request of MethodSketch3DAddEntity — the discriminated 3D entity constructor. Kind is the base entity (oblikovati.org/api/types.Sketch3DEntityKind: point | line | circle | arc | …). Points are the defining points, each [x,y,z] in model database units (cm), in the constructor's expected order (line: A,B; circle: center; arc: center,start,end). Radius is a unit-bearing expression ("10 mm") for circular kinds. Axis is the circle plane's normal [x,y,z] (defaults to +Z when empty). CCW orients an arc. Construction marks the entity as reference geometry.

type AddSketch3DEntityArgs struct {
SketchIndex int `json:"sketchIndex"`
Kind string `json:"kind"`
Points [][]float64 `json:"points,omitempty"`
Radius string `json:"radius,omitempty"`
Axis []float64 `json:"axis,omitempty"`
CCW bool `json:"ccw,omitempty"`
Construction bool `json:"construction,omitempty"`

// Helix-only fields (kind "helical"). Mode selects which two of pitch/height/
// revolutions define the helix ("pitchHeight" | "pitchRevolution" |
// "revolutionHeight" | "spiral"); the third is derived. Pitch/Height are
// unit-bearing lengths, Revolutions a turn count, Taper a per-revolution radial
// growth length (spiral pitch). Clockwise sets the handedness; Points[0] is the
// axis-base origin and Axis the winding axis (defaults to +Z).
Mode string `json:"mode,omitempty"`
Pitch string `json:"pitch,omitempty"`
Height string `json:"height,omitempty"`
Revolutions float64 `json:"revolutions,omitempty"`
Taper string `json:"taper,omitempty"`
Clockwise bool `json:"clockwise,omitempty"`

// Conic fields (kind "ellipse"/"ellipticalArc"). Points[0] is the center, Axis the
// plane normal (defaults to +Z), MajorAxis the in-plane major direction (defaults to
// +X). MajorRadius/MinorRadius are unit-bearing lengths; StartAngle/SweepAngle are
// unit-bearing angles bounding an elliptical arc.
MajorAxis []float64 `json:"majorAxis,omitempty"`
MajorRadius string `json:"majorRadius,omitempty"`
MinorRadius string `json:"minorRadius,omitempty"`
StartAngle string `json:"startAngle,omitempty"`
SweepAngle string `json:"sweepAngle,omitempty"`

// Bend-only field (kind "bend"): the session ids of the two connected lines whose
// corner the bend fills. Radius is the bend radius ("5 mm"). The lines are trimmed
// to the tangent points, the returned arc joins them, and a bend constraint keeps
// the join tangent (the reference API's SketchArcs3D.AddAsBend).
Lines []uint64 `json:"lines,omitempty"`

// Spline fields. For spline/controlPointSpline/fixedSpline, Points are the defining
// points (each [x,y,z] in cm); Closed marks a closed loop; FitMethod is the
// interpolation parameterization ([oblikovati.org/api/types.SplineFitMethod] wire
// spelling, empty ⇒ "smooth" — M06-F11, Oblikovati/Oblikovati#626). For
// equationCurve, XExpr/YExpr/ZExpr are x(t)/y(t)/z(t) over [T0,T1].
Closed bool `json:"closed,omitempty"`
FitMethod string `json:"fitMethod,omitempty"`
XExpr string `json:"xExpr,omitempty"`
YExpr string `json:"yExpr,omitempty"`
ZExpr string `json:"zExpr,omitempty"`
T0 float64 `json:"t0,omitempty"`
T1 float64 `json:"t1,omitempty"`

// Variable-shape helix fields (kind "helical" — M06-F09, #624): a row
// table varying pitch/diameter per station replaces the constant shape;
// Start/End set the end transition conditions (nil ⇒ natural ends).
Rows []HelixShapeRow `json:"rows,omitempty"`
Start *HelixEndCondition `json:"start,omitempty"`
End *HelixEndCondition `json:"end,omitempty"`
}

type AddSketch3DEntityResult

AddSketch3DEntityResult is the response of MethodSketch3DAddEntity: the created entity's session id, its base kind, and the session ids of its defining points.

type AddSketch3DEntityResult struct {
EntityID uint64 `json:"entityId"`
Kind string `json:"kind"`
PointIDs []uint64 `json:"pointIds,omitempty"`
}

type AddSketch3DSurfaceCurveArgs

AddSketch3DSurfaceCurveArgs is the request of MethodSketch3DAddSurfaceCurve — the discriminated surface-derived curve constructor. Kind is the curve (oblikovati.org/api/types.Sketch3DEntityKind: intersection | silhouette). FaceRefs are the reference keys of the referenced part faces (intersection: two faces; silhouette: one face; onFace: one face). ViewDir [x,y,z] is the silhouette view direction. UV is the flat [u0,v0,u1,v1,…] parameter-space polyline for an onFace curve (mapped onto the referenced face's surface). The Grid* fields window the base surface's parameter domain for the tracer (required for an unbounded base such as a plane); zero values default to the surface's finite domain. SourceEntityID is the in-sketch source curve for a projectToSurface or offset curve (resolved to its kernel curve). OffsetDistance + Normal [x,y,z] parameterize an offset curve (offset direction = normal × tangent). For projectToSurface, FaceRefs[0] is the target surface.

type AddSketch3DSurfaceCurveArgs struct {
SketchIndex int `json:"sketchIndex"`
Kind string `json:"kind"`
FaceRefs []string `json:"faceRefs"`
ViewDir []float64 `json:"viewDir,omitempty"`
UV []float64 `json:"uv,omitempty"`
SourceEntityID uint64 `json:"sourceEntityId,omitempty"`
OffsetDistance float64 `json:"offsetDistance,omitempty"`
Normal []float64 `json:"normal,omitempty"`
GridUMin float64 `json:"gridUMin,omitempty"`
GridUMax float64 `json:"gridUMax,omitempty"`
GridVMin float64 `json:"gridVMin,omitempty"`
GridVMax float64 `json:"gridVMax,omitempty"`
GridUSteps int `json:"gridUSteps,omitempty"`
GridVSteps int `json:"gridVSteps,omitempty"`
}

type AddSketch3DSurfaceCurveResult

AddSketch3DSurfaceCurveResult is the response of MethodSketch3DAddSurfaceCurve: the created entity's session id, its kind, and whether every face reference resolved.

type AddSketch3DSurfaceCurveResult struct {
EntityID uint64 `json:"entityId"`
Kind string `json:"kind"`
Healthy bool `json:"healthy"`
}

type AddSketchBlockArgs

AddSketchBlockArgs is the request of MethodSketchAddBlockInstance: place an instance of the named definition in a sketch. Position is the insertion point [x,y] in sketch-plane database units (cm); RotationAngle is a unit-bearing angle ("30 deg", empty ⇒ 0); Scale is a uniform scale factor (0 ⇒ 1).

type AddSketchBlockArgs struct {
SketchIndex int `json:"sketchIndex"`
Definition string `json:"definition"`
Position []float64 `json:"position"`
RotationAngle string `json:"rotationAngle,omitempty"`
Scale float64 `json:"scale,omitempty"`
}

type AddSketchBlockResult

AddSketchBlockResult is the response of MethodSketchAddBlockInstance: the created instance's session id.

type AddSketchBlockResult struct {
EntityID uint64 `json:"entityId"`
}

type AddSketchEntityArgs

AddSketchEntityArgs is the request of MethodSketchAddEntity — the discriminated entity constructor. Kind is the base entity (oblikovati.org/api/types.SketchEntityKind: line | point | circle | arc | …); Variant selects the overload within that kind ("centerRadius" | "threePoint" | "centerStartEnd"; empty ⇒ the kind's default). Points are the defining points, each [x,y] in sketch-plane database units (cm), in the constructor's expected order. Radius is a unit-bearing expression ("10 mm") for the center-radius circle. CCW orients a center-start-end arc. Construction marks the entity as reference geometry.

type AddSketchEntityArgs struct {
SketchIndex int `json:"sketchIndex"`
Kind string `json:"kind"`
Variant string `json:"variant,omitempty"`
Points [][]float64 `json:"points,omitempty"`
// PointExprs is the parameter-expression form of Points (#189): each entry is the
// defining point as ["x-expr","y-expr"], evaluated through the document's parameter
// engine ("bore_r + 2 mm") and yielding a length in cm — so generated line/arc/point
// geometry is parametric at construction, consistent with Radius/Width. When set it
// supersedes Points; a unitless literal ("12.5") is read as cm. The two forms may be
// mixed across a kind's points only via PointExprs (set every point as expressions).
PointExprs [][]string `json:"pointExprs,omitempty"`
Radius string `json:"radius,omitempty"`
CCW bool `json:"ccw,omitempty"`
Construction bool `json:"construction,omitempty"`

// Conic fields (ellipse / ellipticalArc): Points[0] is the center, Axis is the
// major-axis direction [x,y], MajorRadius/MinorRadius are unit-bearing lengths, and
// StartAngle/EndAngle (unit-bearing angles, ellipticalArc only) bound the sweep.
Axis []float64 `json:"axis,omitempty"`
MajorRadius string `json:"majorRadius,omitempty"`
MinorRadius string `json:"minorRadius,omitempty"`
StartAngle string `json:"startAngle,omitempty"`
EndAngle string `json:"endAngle,omitempty"`

// Closed marks a spline or a polyline a closed loop (spline and polyline kinds). A
// closed polyline joins its last point back to its first, yielding one closed profile.
Closed bool `json:"closed,omitempty"`

// FitMethod is the interpolation parameterization for the spline kind
// ([oblikovati.org/api/types.SplineFitMethod] wire spelling; empty ⇒
// "smooth", the pre-field behavior — M06-F11, Oblikovati/Oblikovati#626).
FitMethod string `json:"fitMethod,omitempty"`

// Sides is the edge count for the polygon kind (≥ 3); Width is a unit-bearing slot
// width. These belong to the composite kinds (rectangle/slot/polygon/polyline). The
// polyline kind connects arbitrary Points with shared-endpoint lines (Closed ⇒ a
// closed profile) — the way to author a non-regular outline (an L-bracket, a custom
// extrusion section) over the API.
Sides int `json:"sides,omitempty"`
Width string `json:"width,omitempty"`

// EntityRefs are existing entity ids the kind operates on (the two line ids for the
// fillet/chamfer corner blends; the parent spline id for offsetSpline). Radius is the
// fillet radius / chamfer first distance / offset-spline distance; Distance2 is the
// chamfer second distance (defaults to Radius when empty).
EntityRefs []uint64 `json:"entityRefs,omitempty"`
Distance2 string `json:"distance2,omitempty"`

// Equation-curve fields: x(t)/y(t) expressions over t ∈ [T0, T1].
XExpr string `json:"xExpr,omitempty"`
YExpr string `json:"yExpr,omitempty"`
T0 float64 `json:"t0,omitempty"`
T1 float64 `json:"t1,omitempty"`
}

type AddSketchEntityResult

AddSketchEntityResult is the response of MethodSketchAddEntity: the primary entity's session id, its base kind, the session ids of its defining points, and — for composite kinds (rectangle/slot/polygon) that create several entities — every created entity id. When sketch inference is enabled (M06-F10, Oblikovati/Oblikovati#625), InferredConstraints reports the geometric constraints the engine auto-applied during creation and InferredPoints how defining points were snapped onto existing geometry.

type AddSketchEntityResult struct {
EntityID uint64 `json:"entityId"`
Kind string `json:"kind"`
PointIDs []uint64 `json:"pointIds"`
EntityIDs []uint64 `json:"entityIds,omitempty"`

InferredConstraints []AppliedConstraintInference `json:"inferredConstraints,omitempty"`
InferredPoints []AppliedPointInference `json:"inferredPoints,omitempty"`
}

type AddSketchImageArgs

AddSketchImageArgs is the request of MethodSketchAddImage: place a raster image (Ref is a package-store reference/path) anchored at Anchor ([x,y] cm) with the given unit-bearing Width/Height, Rotation (unit-bearing angle, CCW about the anchor), and Opacity (0…1).

type AddSketchImageArgs struct {
SketchIndex int `json:"sketchIndex"`
Ref string `json:"ref"`
Anchor []float64 `json:"anchor"`
Width string `json:"width"`
Height string `json:"height"`
Rotation string `json:"rotation,omitempty"`
Opacity float64 `json:"opacity,omitempty"`
}

type AddSketchImageResult

AddSketchImageResult is the response of MethodSketchAddImage: the new image's id.

type AddSketchImageResult struct {
EntityID uint64 `json:"entityId"`
}

type AddSketchPatternArgs

AddSketchPatternArgs is the request of MethodSketchAddPattern — the discriminated sketch-pattern constructor. Kind is a oblikovati.org/api/types.SketchPatternKind; Entities are the seed selection.

  • rectangular: Count1/Count2 instances stepped by Spacing1/Spacing2 (unit-bearing lengths) along Dir1/Dir2 ([x,y] directions; default [1,0] and [0,1]). The seed is cell (0,0), so the copies number Count1·Count2 − 1.
  • circular: Count instances (incl. the seed) spread over Angle (a unit-bearing angle) about Center ([x,y] cm); the copies number Count − 1.
type AddSketchPatternArgs struct {
SketchIndex int `json:"sketchIndex"`
Kind string `json:"kind"`
Entities []uint64 `json:"entities"`

Count1 int `json:"count1,omitempty"`
Count2 int `json:"count2,omitempty"`
Spacing1 string `json:"spacing1,omitempty"`
Spacing2 string `json:"spacing2,omitempty"`
Dir1 []float64 `json:"dir1,omitempty"`
Dir2 []float64 `json:"dir2,omitempty"`

Count int `json:"count,omitempty"`
Angle string `json:"angle,omitempty"`
Center []float64 `json:"center,omitempty"`
}

type AddSketchPatternResult

AddSketchPatternResult is the response of MethodSketchAddPattern: the ids of the created (non-seed) copy entities.

type AddSketchPatternResult struct {
Created []uint64 `json:"created"`
}

type AddSliceViewArgs

AddSliceViewArgs is the request of MethodDrawingViewsAddSlice: a zero-thickness slice at the section line (X1,Y1)-(X2,Y2) on the parent (sheet mm) — only the cut outline, nothing behind.

type AddSliceViewArgs struct {
Name string `json:"name,omitempty"`
ParentView string `json:"parentView"`
X1 float64 `json:"x1"`
Y1 float64 `json:"y1"`
X2 float64 `json:"x2"`
Y2 float64 `json:"y2"`
CenterXMM float64 `json:"centerXmm,omitempty"`
CenterYMM float64 `json:"centerYmm,omitempty"`
}

type AddSurfaceTextureArgs

AddSurfaceTextureArgs is the request of [MethodDrawingAnnotationsAddSurfaceTexture]: an ISO 1302 surface texture symbol at (XMM, YMM) on the sheet. Roughness is the finish value text (e.g. "1.6" or "Ra 3.2"). MaterialRemoval is the symbol variant (types.MaterialRemoval wire spelling: "any" basic, "required" machined, "prohibited" as-cast); empty means "any". The symbol and the roughness text are generated by the host.

type AddSurfaceTextureArgs struct {
Name string `json:"name,omitempty"`
XMM float64 `json:"xmm"`
YMM float64 `json:"ymm"`
Roughness string `json:"roughness,omitempty"`
MaterialRemoval string `json:"materialRemoval,omitempty"`
}

type AddSymmetryArgs

AddSymmetryArgs is the request of MethodAssemblyConstraintsAddSymmetry: position geometry A and geometry B symmetrically about the Plane (a planar face/work-plane ref).

type AddSymmetryArgs struct {
A ConstraintGeomRef `json:"a"`
B ConstraintGeomRef `json:"b"`
Plane ConstraintGeomRef `json:"plane"`
}

type AddTangentArgs

AddTangentArgs is the request of MethodAssemblyConstraintsAddTangent: keep face A tangent to curved face B. Inside selects inside tangency (B wraps A); false ⇒ outside.

type AddTangentArgs struct {
A ConstraintGeomRef `json:"a"`
B ConstraintGeomRef `json:"b"`
Inside bool `json:"inside,omitempty"`
}

type AddTextArgs

AddTextArgs is the request of MethodSketchAddText: place Text anchored at Anchor ([x,y] cm), with a unit-bearing Height, an optional unit-bearing Rotation (CCW about the anchor), Justify (horizontal: "left" | "center" | "right"), VJustify (vertical: "baseline" | "lower" | "middle" | "upper"), and an optional Font family name and unit-bearing FontSize.

The created entity is a single sketch TEXT entity (not baked line geometry): it keeps the content + font and DERIVES its glyph outlines on demand, so editing the text re-derives the geometry and an emboss that references the text recomputes from it — nothing is baked into the document. A letter's counter (the hole in A/O/B) becomes a profile hole.

type AddTextArgs struct {
SketchIndex int `json:"sketchIndex"`
Anchor []float64 `json:"anchor"`
Text string `json:"text"`
Height string `json:"height"`
Rotation string `json:"rotation,omitempty"`
Justify string `json:"justify,omitempty"` // horizontal alignment
VJustify string `json:"vJustify,omitempty"` // vertical alignment
Font string `json:"font,omitempty"` // font family name ("" ⇒ document default)
FontSize string `json:"fontSize,omitempty"` // unit-bearing; "" ⇒ track Height
}

type AddTransitionalArgs

AddTransitionalArgs is the request of MethodAssemblyConstraintsAddTransitional: keep face A in sliding contact with face B (the transition surface) as the component moves.

type AddTransitionalArgs struct {
A ConstraintGeomRef `json:"a"`
B ConstraintGeomRef `json:"b"`
}

type AddTranslateTranslateArgs

AddTranslateTranslateArgs is the request of MethodAssemblyConstraintsAddTranslateTranslate: couple translation A to translation B by Ratio (distance of B per unit distance of A).

type AddTranslateTranslateArgs struct {
A ConstraintGeomRef `json:"a"`
B ConstraintGeomRef `json:"b"`
Ratio float64 `json:"ratio"`
}

type AddViewArgs

AddViewArgs is the request of MethodViewsAdd: create a new view of a document (adds to the document's view collection). When CopyActiveCamera is set the new view starts at the active view's camera; otherwise it gets a default framed camera. The new view becomes active.

type AddViewArgs struct {
Document uint64 `json:"document,omitempty"`
Name string `json:"name,omitempty"`
CopyActiveCamera bool `json:"copyActiveCamera,omitempty"`
}

type AnalyzeInterferenceArgs

AnalyzeInterferenceArgs requests a static interference analysis. Occurrences optionally restricts the analysis to a subset (by id); empty analyses every pair in the active assembly.

type AnalyzeInterferenceArgs struct {
Occurrences []uint64 `json:"occurrences,omitempty"`
}

type AnnotationResult

AnnotationResult is the response of the add methods: the created annotation.

type AnnotationResult struct {
Annotation DrawingAnnotationInfo `json:"annotation"`
}

type AppearanceInfo

AppearanceInfo is the JSON shape of a PBR appearance. Albedo and Emissive are "#RRGGBBAA" hex (compact, readable, matching the on-disk and theme conventions); the scalar PBR terms are in [0,1].

type AppearanceInfo struct {
ID string `json:"id"`
DisplayName string `json:"displayName"`
Source string `json:"source"`
Albedo string `json:"albedo"`
Metallic float32 `json:"metallic"`
Roughness float32 `json:"roughness"`
Emissive string `json:"emissive"`
Opacity float32 `json:"opacity"`
}

type ApplicationApiVersionResult

ApplicationApiVersionResult is the response of MethodApplicationApiVersion: the semantic version of the api contract the running host implements. Version is the full "MAJOR.MINOR.PATCH" string (== api.Version, no leading "v"); Major and Minor are broken out so an add-in can gate compatibility without parsing.

The load-time handshake (ObkAddInApiMajor/ObkAddInApiMinor in include/oblikovati_addin.h) already guarantees the add-in's major matches and its minor is not newer than the host before it is loaded; this runtime query lets a loaded add-in additionally adapt to the exact minor/patch within that major.

type ApplicationApiVersionResult struct {
Version string `json:"version"`
Major int `json:"major"`
Minor int `json:"minor"`
}

type AppliedConstraintInference

AppliedConstraintInference reports one geometric constraint the engine auto-applied while an entity was created. Kind is the oblikovati.org/api/types.ConstraintInferenceKind wire spelling; ConstraintIndex addresses the created constraint in the sketch's constraint enumeration; Entities are the session ids the constraint ties together.

type AppliedConstraintInference struct {
Kind string `json:"kind"`
ConstraintIndex int `json:"constraintIndex"`
Entities []uint64 `json:"entities"`
}

type AppliedPointInference

AppliedPointInference reports how one defining point of a created entity was inferred. Kind is the oblikovati.org/api/types.SketchPointInferenceKind wire spelling; PointID is the created point's session id; Entities are the session ids of the geometry the inference referenced.

type AppliedPointInference struct {
Kind string `json:"kind"`
PointID uint64 `json:"pointId"`
Entities []uint64 `json:"entities,omitempty"`
}

type AssemblyConstraintInfo

AssemblyConstraintInfo is one row of the assembly's constraint set: its session id, kind, name, the two geometry inputs, the driven value (offset for mate/flush/insert, angle for angle, ratio for the motion kinds), the solution-type discriminator where it applies, optional limits, health, and suppression. Default-zero/false fields are omitted.

type AssemblyConstraintInfo struct {
ID uint64 `json:"id"`
Type string `json:"type"`
Name string `json:"name"`
A ConstraintGeomRef `json:"a"`
B ConstraintGeomRef `json:"b"`
Value float64 `json:"value,omitempty"`
Solution string `json:"solution,omitempty"`
Limits *ConstraintLimits `json:"limits,omitempty"`
Health string `json:"health,omitempty"`
Suppressed bool `json:"suppressed,omitempty"`
}

type AssemblyEdgeRef

AssemblyEdgeRef addresses an edge of a placed component for an assembly dress-up feature: the Occurrence (session id) whose component the edge belongs to, and the edge's reference Key on that component (a key from model.referenceKeys run on the component). The feature machines that edge on every participating instance of the component, resolved per placement (#735).

type AssemblyEdgeRef struct {
Occurrence uint64 `json:"occurrence"`
Edge string `json:"edge"`
}

type AssemblyFaceRef

AssemblyFaceRef addresses a face of a placed component for an assembly face-edit feature: the Occurrence (session id) whose component the face belongs to, and the face's reference Key on that component (from model.referenceKeys). The feature moves that face on every participating instance of the component, resolved per placement (#735).

type AssemblyFaceRef struct {
Occurrence uint64 `json:"occurrence"`
Face string `json:"face"`
}

type AssemblyFeatureHealth

AssemblyFeatureHealth is one feature's post-recompute state in an AssemblyFeaturesChangedEvent: its id, suppression, and health reason ("" healthy).

type AssemblyFeatureHealth struct {
ID uint64 `json:"id"`
Suppressed bool `json:"suppressed,omitempty"`
Health string `json:"health,omitempty"`
}

type AssemblyFeatureInfo

AssemblyFeatureInfo renders one assembly feature: its stable id, type, display name, suppression, health (empty when healthy), and the session ids of the occurrences it machines.

type AssemblyFeatureInfo struct {
ID uint64 `json:"id"`
Kind string `json:"kind"`
Name string `json:"name"`
Suppressed bool `json:"suppressed,omitempty"`
Health string `json:"health,omitempty"`
Participants []uint64 `json:"participants,omitempty"`
// ParticipantPaths is the feature's nested-path restriction (each path a sequence of
// occurrence instance names, root first), present only when the feature is restricted
// to specific placements of a sub-assembly placed more than once. Empty means it
// machines every path through a participating leaf occurrence (the default).
ParticipantPaths [][]string `json:"participantPaths,omitempty"`
// Scalars are the editable scalar inputs [MethodAssemblyFeaturesEdit] accepts (the
// same [FeatureScalar] shape the part features.* surface uses), in display order.
// Empty for kinds whose tool is fixed at construction (e.g. the box cut and the
// drilled hole), which expose nothing editable after placement.
Scalars []FeatureScalar `json:"scalars,omitempty"`
}

type AssemblyFeatureResult

AssemblyFeatureResult is the reply of the single-feature mutators (add, setParticipants): the affected feature's refreshed info.

type AssemblyFeatureResult struct {
Feature AssemblyFeatureInfo `json:"feature"`
}

type AssemblyFeaturesChangedEvent

AssemblyFeaturesChangedEvent is the JSON shape of EventAssemblyFeaturesChanged: the assembly document's id and each feature's resulting health, in program order.

type AssemblyFeaturesChangedEvent struct {
Type string `json:"type"`
Document uint64 `json:"document"`
Features []AssemblyFeatureHealth `json:"features,omitempty"`
}

type AssemblyFeaturesResult

AssemblyFeaturesResult is the reply of MethodAssemblyFeaturesList: the feature program in order plus the end-of-features marker state.

type AssemblyFeaturesResult struct {
Features []AssemblyFeatureInfo `json:"features"`
EndOfFeatures int `json:"endOfFeatures"`
RolledBack bool `json:"rolledBack"`
}

type AssemblyHealthResult

AssemblyHealthResult is the reply of MethodAssemblyConstraintsSolve and MethodAssemblyConstraintsHealth: the assembly's overall constraint health ([types.HealthStatus] string), counts of constraints and redundant (over-constraining) ones, the total remaining free DOF, and the per-occurrence DOF breakdown.

type AssemblyHealthResult struct {
Status string `json:"status"`
Constraints int `json:"constraints"`
Redundant int `json:"redundant"`
DegreesOfFreedom int `json:"degreesOfFreedom"`
Occurrences []OccurrenceDOFInfo `json:"occurrences,omitempty"`
Converged bool `json:"converged"`
}

type AssemblyJointResult

AssemblyJointResult is the reply of the single-joint add/mutate operations: the affected joint's info (after the assembly re-solves).

type AssemblyJointResult struct {
Joint JointInfo `json:"joint"`
}

type AssemblyJointsResult

AssemblyJointsResult is the reply of MethodAssemblyJointsList: the active assembly's joint set in creation order.

type AssemblyJointsResult struct {
Joints []JointInfo `json:"joints"`
}

type AssetRefArgs

AssetRefArgs identifies an asset by id (MethodAppearancesGet/MethodMaterialsGet).

type AssetRefArgs struct {
ID string `json:"id"`
}

type AssignAppearanceArgs

AssignAppearanceArgs overrides the appearance at a scope ("part", "body", or "face"). Key is the hex reference key of the body/face (empty for the part default).

type AssignAppearanceArgs struct {
Scope string `json:"scope"`
Key string `json:"key,omitempty"`
AppearanceID string `json:"appearanceId"`
}

type AssignMaterialArgs

AssignMaterialArgs assigns a material to a body, or to the part default when BodyKey is empty. BodyKey is the body's hex reference key (stable across recompute).

type AssignMaterialArgs struct {
BodyKey string `json:"bodyKey,omitempty"`
MaterialID string `json:"materialId"`
}

type AttachPointCloudArgs

AttachPointCloudArgs is the request of MethodPointCloudsAttach: read the scan file at FullFileName and attach it to the active part. Name is the unique cloud name; when empty the host mints one (Cloud1, Cloud2, …).

type AttachPointCloudArgs struct {
Name string `json:"name,omitempty"`
FullFileName string `json:"fullFileName"`
}

type AttachmentInfo

AttachmentInfo is one attachment record: the unique name other objects bind to, the kind, the linked path (resolved through the project search paths) or the embedded resource id, and the freshness state. LastKnownFileTime is RFC 3339; for linked attachments a newer on-disk time reports outOfDate.

type AttachmentInfo struct {
Name string `json:"name"`
Kind types.AttachmentKind `json:"kind"`
FullFileName string `json:"fullFileName,omitempty"`
ResolvedFileName string `json:"resolvedFileName,omitempty"`
Resource string `json:"resource,omitempty"`
Status types.ReferenceStatus `json:"status"`
LastKnownFileTime string `json:"lastKnownFileTime,omitempty"`
BrowserVisible bool `json:"browserVisible"`
}

type AttributeInfo

AttributeInfo is the JSON shape of one attribute: the set it lives in, its name, its value, and the target it is anchored to (empty for the document itself).

type AttributeInfo struct {
Set string `json:"set"`
Name string `json:"name"`
Value types.Variant `json:"value"`
Target string `json:"target,omitempty"`
}

type AttributeMatch

AttributeMatch is one hit of MethodAttributesFind: the document session id and the matching attribute on it.

type AttributeMatch struct {
Document uint64 `json:"document"`
Attribute AttributeInfo `json:"attribute"`
}

type AttributeResult

AttributeResult is the response of MethodAttributesGet / MethodAttributesSet: the addressed attribute and whether it was found (false for a get that missed).

type AttributeResult struct {
Attribute AttributeInfo `json:"attribute"`
Found bool `json:"found"`
}

type AutoDimensionResult

AutoDimensionResult is the response of MethodSketchAutoDimension: how many constraints were added and the sketch's resulting DOF (0 when it is now fully constrained).

type AutoDimensionResult struct {
Added int `json:"added"`
DOF int `json:"dof"`
}

type BOMExportArgs

BOMExportArgs is the request of MethodAssemblyBOMExport: export the View of the active assembly's BOM to CSV. Beyond the standard columns (item, part number, description, qty, structure) each name in Columns adds a column sourced from that component property.

type BOMExportArgs struct {
View types.BOMViewKind `json:"view"`
Columns []string `json:"columns,omitempty"`
}

type BOMExportResult

BOMExportResult is the reply of MethodAssemblyBOMExport: the rendered CSV document.

type BOMExportResult struct {
CSV string `json:"csv"`
}

type BOMRowInfo

BOMRowInfo is one bill-of-materials line: its 1-based item number, the component's part number/description/structure, the quantity at this level, its custom properties, and (in the structured view) the nested child rows of an expanded sub-assembly.

type BOMRowInfo struct {
ItemNumber int `json:"itemNumber"`
PartNumber string `json:"partNumber,omitempty"`
Description string `json:"description,omitempty"`
Structure types.BOMStructure `json:"structure"`
Quantity int `json:"quantity"`
Properties map[string]string `json:"properties,omitempty"`
Children []BOMRowInfo `json:"children,omitempty"`
}

type BOMViewArgs

BOMViewArgs is the request of MethodAssemblyBOMView: read the View ([types.BOMStructured] | [types.BOMPartsOnly]) of the active assembly's BOM.

type BOMViewArgs struct {
View types.BOMViewKind `json:"view"`
}

type BOMViewResult

BOMViewResult is the reply of MethodAssemblyBOMView: the requested view and its rows (the structured view's rows carry nested Children).

type BOMViewResult struct {
View types.BOMViewKind `json:"view"`
Rows []BOMRowInfo `json:"rows"`
}

type BalloonTipClickedEvent

BalloonTipClickedEvent is the push event (type EventBalloonTipClicked) fired when the user clicks a balloon's body (not its close control).

type BalloonTipClickedEvent struct {
Type string `json:"type"` // always EventBalloonTipClicked
ID string `json:"id"`
}

type BatchPlacement

BatchPlacement is one entry of a PlaceByDefinitionBatchArgs: the new occurrence's Name and its Transform (a 4×4 placement in the assembly's space).

type BatchPlacement struct {
Name string `json:"name"`
Transform types.Matrix `json:"transform"`
}

type BatchSaveArgs

BatchSaveArgs is the request of MethodDocumentsBatchSave: execute one save operation — "save", "saveAs" or "saveCopyAs" — over every item, continuing past per-item failures.

type BatchSaveArgs struct {
Operation string `json:"operation"`
Items []BatchSaveItem `json:"items"`
}

type BatchSaveItem

BatchSaveItem is one (document → target) pair of MethodDocumentsBatchSave. TargetFileName is required for the saveAs and saveCopyAs operations and ignored for save.

type BatchSaveItem struct {
Document uint64 `json:"document"`
TargetFileName string `json:"targetFileName,omitempty"`
}

type BatchSaveItemResult

BatchSaveItemResult is one per-file outcome of MethodDocumentsBatchSave.

type BatchSaveItemResult struct {
Document uint64 `json:"document"`
FullDocumentName string `json:"fullDocumentName,omitempty"`
OK bool `json:"ok"`
Error string `json:"error,omitempty"`
}

type BatchSaveResult

BatchSaveResult is the response of MethodDocumentsBatchSave.

type BatchSaveResult struct {
Saved int `json:"saved"`
Results []BatchSaveItemResult `json:"results"`
}

type BeginMessageSectionArgs

BeginMessageSectionArgs is the request of MethodErrorsBeginSection: group the following messages under a titled section (sections nest).

type BeginMessageSectionArgs struct {
Title string `json:"title"`
}

type BeginMessageSectionResult

BeginMessageSectionResult is the response of MethodErrorsBeginSection.

type BeginMessageSectionResult struct {
Section int `json:"section"`
}

type BeginProgressArgs

BeginProgressArgs is the request of MethodProgressBegin: start a progress bar of Steps steps with an initial message. Bars nest safely — each begin returns its own id and the status bar shows the innermost live bar.

type BeginProgressArgs struct {
Steps int `json:"steps"`
Message string `json:"message,omitempty"`
}

type BeginProgressResult

BeginProgressResult is the response of MethodProgressBegin.

type BeginProgressResult struct {
ID int `json:"id"`
}

type BendAllowanceArgs

BendAllowanceArgs requests the developed flat length of one bend under the active rule's unfold method. Radius defaults to the rule's bend radius when its expression is empty; Angle is the bend angle (the swept angle of the arc, e.g. "90 deg").

type BendAllowanceArgs struct {
Angle string `json:"angle"`
Radius string `json:"radius,omitempty"`
}

type BendAllowanceResult

BendAllowanceResult reports the computed bend allowance (developed arc length, in the document's length unit) plus the bend deduction (setback) for the same bend.

type BendAllowanceResult struct {
BendAllowance float64 `json:"bendAllowance"`
BendDeduction float64 `json:"bendDeduction"`
}

type BendInfo

BendInfo is one bend in the part's bend lineage (M13-F04): the feature that introduced it and the unfold values the flat pattern develops it by. Angle is in degrees; the lengths (radius/thickness/allowance/deduction) are in database units (cm), matching the rest of the sheet-metal surface. The allowance is the developed neutral-axis arc length the flat must include; the deduction is the setback subtracted from outside flange lengths. Together they let an add-in predict the flat extents before the flat is built.

type BendInfo struct {
Feature string `json:"feature"`
Angle float64 `json:"angle"`
Radius float64 `json:"radius"`
Thickness float64 `json:"thickness"`
Allowance float64 `json:"allowance"`
Deduction float64 `json:"deduction"`
}

type BendOrderInfo

BendOrderInfo is one bend's place in the press-brake sequence: the feature that created it, its 1-based order, and its bend angle (degrees) and inside radius (database units cm).

type BendOrderInfo struct {
Feature string `json:"feature"`
Order int `json:"order"`
Angle float64 `json:"angle"`
Radius float64 `json:"radius"`
}

type BendOrderResult

BendOrderResult is the reply of listBendOrder/setBendOrder: the part's bends in order.

type BendOrderResult struct {
Bends []BendOrderInfo `json:"bends"`
}

type BendsResult

BendsResult is the reply of bends: every bend in the folded part, in creation order, plus the summed bend allowance (the total developed length the flat adds for all bends).

type BendsResult struct {
Bends []BendInfo `json:"bends"`
TotalAllowance float64 `json:"totalAllowance"`
}

type BindTransientKeyArgs

BindTransientKeyArgs is the request of MethodBodyBindTransientKey.

type BindTransientKeyArgs struct {
BodyIndex int `json:"bodyIndex"`
TransientKey uint64 `json:"transientKey"`
}

type BindTransientKeyResult

BindTransientKeyResult is the response of MethodBodyBindTransientKey.

type BindTransientKeyResult struct {
Found bool `json:"found"`
Kind string `json:"kind,omitempty"`
Key string `json:"key,omitempty"`
}

type BindingInfo

BindingInfo is one bindable action in the keymap catalog (MethodKeymapList).

type BindingInfo struct {
ActionID string `json:"actionId"`
DisplayName string `json:"displayName"`
Kind string `json:"kind"` // "command" or "builtin"
Chord string `json:"chord,omitempty"` // effective shortcut; "" if unbound
DefaultChord string `json:"defaultChord,omitempty"` // out-of-the-box shortcut
Alias string `json:"alias,omitempty"` // effective user alias; "" if none
Customized bool `json:"customized,omitempty"` // chord or alias differs from default
}

type BodyIndexArgs

BodyIndexArgs addresses one body of the active part.

type BodyIndexArgs struct {
BodyIndex int `json:"bodyIndex"`
}

type BodyInfo

BodyInfo is one body's summary in MethodBodyList's result. Name is the body's display name ("Solid1" by default, overridable with MethodBodyRename); Visible reports whether it is shown, toggled with MethodBodySetVisible — the body-level API multi-body workflows (Combine, Split, Mold) need to enumerate, rename and show/hide their results. Key is the body's persistent reference key (stable across recompute), the handle used to assign a color style; Style is the assigned color-style name, empty when the body wears its plain appearance. MaterialID is the body's effective assigned material id — its own override if set, else the part-default material — and is empty when no material is assigned; resolve it to properties with MethodMaterialsGet. It is the read-back counterpart of MethodModelAssignMaterial (write-only), letting an analysis add-in build a per-body material model.

type BodyInfo struct {
Index int `json:"index"`
Name string `json:"name"`
Solid bool `json:"solid"`
Visible bool `json:"visible"`
Faces int `json:"faces"`
Edges int `json:"edges"`
Vertices int `json:"vertices"`
Shells int `json:"shells"`
Wires int `json:"wires"`
Key string `json:"key,omitempty"`
Style string `json:"style,omitempty"`
MaterialID string `json:"materialID,omitempty"`
}

type BodyInfoResult

BodyInfoResult is the response of MethodBodySetVisible: the body's refreshed summary.

type BodyInfoResult struct {
Body BodyInfo `json:"body"`
}

type BodyListResult

BodyListResult is the response of MethodBodyList.

type BodyListResult struct {
Bodies []BodyInfo `json:"bodies,omitempty"`
}

type BodyPhysicalPropertiesArgs

BodyPhysicalPropertiesArgs is the request of [MethodBodyPhysicalProperties]: the geometry and mass properties of one body (the per-body counterpart of MethodModelPhysicalProperties, which sums all bodies). DensityGCm3 0 ⇒ the part's assigned material density (1.0 g/cm³ when none); Accuracy is "low"/"medium"/"high" (empty ⇒ medium).

type BodyPhysicalPropertiesArgs struct {
BodyIndex int `json:"bodyIndex"`
DensityGCm3 float64 `json:"densityGCm3,omitempty"`
Accuracy string `json:"accuracy,omitempty"`
}

type BodyRangeBoxArgs

BodyRangeBoxArgs is the request of MethodBodyRangeBox: the topology box by default, the tessellation-tight box with Precise, the minimal oriented box with Oriented.

type BodyRangeBoxArgs struct {
BodyIndex int `json:"bodyIndex"`
Precise bool `json:"precise,omitempty"`
Oriented bool `json:"oriented,omitempty"`
}

type BodyRangeBoxResult

BodyRangeBoxResult is the response of MethodBodyRangeBox: Min/Max for the axis-aligned forms; Corner plus the three edge vectors for the oriented one.

type BodyRangeBoxResult struct {
Min []float64 `json:"min,omitempty"`
Max []float64 `json:"max,omitempty"`
Corner []float64 `json:"corner,omitempty"`
DirectionOne []float64 `json:"directionOne,omitempty"`
DirectionTwo []float64 `json:"directionTwo,omitempty"`
DirectionThree []float64 `json:"directionThree,omitempty"`
}

type BodyRenameArgs

BodyRenameArgs is the request of MethodBodyRename: set the display name of the body at BodyIndex (from MethodBodyList). The name is stored per body (keyed by its reference key), survives recompute, and round-trips in the .obk; an empty name reverts to the index-derived default ("Solid{N}").

type BodyRenameArgs struct {
BodyIndex int `json:"bodyIndex"`
Name string `json:"name"`
}

type BodySetVisibleArgs

BodySetVisibleArgs is the request of MethodBodySetVisible: show or hide the body at BodyIndex (from MethodBodyList). Visible is set, not toggled, so the call is idempotent.

type BodySetVisibleArgs struct {
BodyIndex int `json:"bodyIndex"`
Visible bool `json:"visible"`
}

type BodyShellsResult

BodyShellsResult is the response of MethodBodyShells.

type BodyShellsResult struct {
Shells []FaceShellInfo `json:"shells,omitempty"`
}

type BodyTopology

BodyTopology groups one body's faces/edges/vertices by reference key.

type BodyTopology struct {
Faces []TopologyRef `json:"faces"`
Edges []TopologyRef `json:"edges"`
Vertices []TopologyRef `json:"vertices"`
}

type BodyWiresResult

BodyWiresResult is the response of MethodBodyWires.

type BodyWiresResult struct {
Wires []WireInfo `json:"wires,omitempty"`
}

type BrepBodyRef

BrepBodyRef addresses an operation source: exactly one of Handle (transient, 1-based) or BodyIndex (document body) must be set.

type BrepBodyRef struct {
Handle int `json:"handle,omitempty"`
BodyIndex *int `json:"bodyIndex,omitempty"`
}

type BrepBodyStats

BrepBodyStats summarizes a transient body after an operation.

type BrepBodyStats struct {
Solid bool `json:"solid"`
Faces int `json:"faces"`
Edges int `json:"edges"`
Vertices int `json:"vertices"`
Shells int `json:"shells"`
Wires int `json:"wires"`
Volume float64 `json:"volume"`
}

type BrepBooleanArgs

BrepBooleanArgs is the request of MethodBrepBoolean: the blank (a transient handle — it is modified in place) combined with the tool under Operation (a oblikovati.org/api/types.BooleanType wire spelling).

type BrepBooleanArgs struct {
BlankHandle int `json:"blankHandle"`
Tool BrepBodyRef `json:"tool"`
Operation string `json:"operation"`
}

type BrepCopyArgs

BrepCopyArgs is the request of MethodBrepCopy.

type BrepCopyArgs struct {
Source BrepBodyRef `json:"source"`
}

type BrepCreateFromDefinitionArgs

BrepCreateFromDefinitionArgs is the request of MethodBrepCreateFromDefinition: the bottom-up definition graph.

type BrepCreateFromDefinitionArgs struct {
Definition types.BrepBodyDefinition `json:"definition"`
}

type BrepCreateFromDefinitionResult

BrepCreateFromDefinitionResult is the response: a handle on success, the per-definition issues otherwise (no body is created when issues exist).

type BrepCreateFromDefinitionResult struct {
Handle int `json:"handle,omitempty"`
Stats BrepBodyStats `json:"stats,omitempty"`
Issues []types.BrepDefinitionIssue `json:"issues,omitempty"`
}

type BrepDeleteFacesArgs

BrepDeleteFacesArgs is the request of MethodBrepDeleteFaces: faces named by reference key are deleted (or with KeepInstead, everything BUT them); the openings stay open (the result may become a surface body).

type BrepDeleteFacesArgs struct {
Handle int `json:"handle"`
FaceKeys []string `json:"faceKeys"`
KeepInstead bool `json:"keepInstead,omitempty"`
}

type BrepHandleArgs

BrepHandleArgs addresses one transient body.

type BrepHandleArgs struct {
Handle int `json:"handle"`
}

type BrepHandleResult

BrepHandleResult is the common "a transient body came back" payload.

type BrepHandleResult struct {
Handle int `json:"handle"`
Stats BrepBodyStats `json:"stats"`
}

type BrepIdenticalBodiesArgs

BrepIdenticalBodiesArgs is the request of MethodBrepIdenticalBodies.

type BrepIdenticalBodiesArgs struct {
Sources []BrepBodyRef `json:"sources"`
// Tolerance is relative (0 → 1e-6, the reference default).
Tolerance float64 `json:"tolerance,omitempty"`
MatchTopology bool `json:"matchTopology,omitempty"`
// MatchReflection defaults TRUE (mirrored bodies match) per the
// reference; the pointer distinguishes "unset" from explicit false.
MatchReflection *bool `json:"matchReflection,omitempty"`
}

type BrepIdenticalBodiesResult

BrepIdenticalBodiesResult groups indices into Sources; identical bodies share a group.

type BrepIdenticalBodiesResult struct {
Groups [][]int `json:"groups,omitempty"`
}

type BrepImprintArgs

BrepImprintArgs is the request of MethodBrepImprint.

type BrepImprintArgs struct {
BodyOne BrepBodyRef `json:"bodyOne"`
BodyTwo BrepBodyRef `json:"bodyTwo"`
// ImprintCoincidentEdges is accepted for reference parity; coincident
// boundary edges are always imprinted by the planar arrangement.
ImprintCoincidentEdges bool `json:"imprintCoincidentEdges,omitempty"`
}

type BrepImprintResult

BrepImprintResult is the response of MethodBrepImprint: imprinted copies plus the touched faces / new imprint edges of each, by reference key.

type BrepImprintResult struct {
HandleOne int `json:"handleOne"`
HandleTwo int `json:"handleTwo"`
OneTouchedFaceKeys []string `json:"oneTouchedFaceKeys,omitempty"`
TwoTouchedFaceKeys []string `json:"twoTouchedFaceKeys,omitempty"`
OneImprintedEdgeKeys []string `json:"oneImprintedEdgeKeys,omitempty"`
TwoImprintedEdgeKeys []string `json:"twoImprintedEdgeKeys,omitempty"`
}

type BrepListResult

BrepListResult is the response of MethodBrepList.

type BrepListResult struct {
Handles []int `json:"handles,omitempty"`
}

type BrepOffsetFacesArgs

BrepOffsetFacesArgs is the request of MethodBrepOffsetFaces: offset the faces of Source named by reference key outward by Distance along their surface normals, returning a transient body of the offset faces (addressable by the other brep.* methods — e.g. tessellate or MethodBodyFaceEvaluate to sample it). CAM uses it for 3D surfacing tool compensation: offset the part surface by the tool radius, then drop the tool onto the offset. The offset is exact for analytic surfaces (plane, cylinder, sphere, cone, torus) and a tolerant parallel surface otherwise.

The parameters are Distance, Reverse (offset the opposite way, into the solid), and Tolerance (the chordal tolerance for offsetting a freeform surface; 0 ⇒ a kernel default).

type BrepOffsetFacesArgs struct {
Source BrepBodyRef `json:"source"`
FaceKeys []string `json:"faceKeys"`
Distance float64 `json:"distance"`
Reverse bool `json:"reverse,omitempty"`
Tolerance float64 `json:"tolerance,omitempty"`
}

type BrepRuledSurfaceArgs

BrepRuledSurfaceArgs is the request of MethodBrepRuledSurface.

type BrepRuledSurfaceArgs struct {
SectionOne BrepWireRef `json:"sectionOne"`
SectionTwo BrepWireRef `json:"sectionTwo"`
}

type BrepSectionArgs

BrepSectionArgs is the request of MethodBrepSectionWithPlane.

type BrepSectionArgs struct {
Source BrepBodyRef `json:"source"`
PlaneOrigin []float64 `json:"planeOrigin"`
PlaneNormal []float64 `json:"planeNormal"`
}

type BrepSilhouetteArgs

BrepSilhouetteArgs is the request of MethodBrepSilhouette: the silhouette curves of one face viewed along ViewDirection.

type BrepSilhouetteArgs struct {
Source BrepBodyRef `json:"source"`
FaceKey string `json:"faceKey"`
ViewDirection []float64 `json:"viewDirection"`
// IncludeBoundary keeps silhouette runs lying on the face's own edges.
IncludeBoundary bool `json:"includeBoundary,omitempty"`
}

type BrepTransformArgs

BrepTransformArgs is the request of MethodBrepTransform: a 4×4 row-major matrix restricted to rotation/translation/reflection/uniform scale.

type BrepTransformArgs struct {
Handle int `json:"handle"`
Matrix []float64 `json:"matrix"`
}

type BrepWireRef

BrepWireRef addresses one wire of a body for the ruled surface.

type BrepWireRef struct {
Body BrepBodyRef `json:"body"`
WireIndex int `json:"wireIndex"`
}

type BrepWiresResult

BrepWiresResult is the payload of section/silhouette results: the wires land on a new transient body and are also returned sampled.

type BrepWiresResult struct {
Handle int `json:"handle"`
Wires []WirePolyline `json:"wires,omitempty"`
}

type BrowserMenuItem

BrowserMenuItem is one entry of a node's right-click context menu. ID names the item in the BrowserNodeEvent when chosen; Label is what's shown; Disabled greys it out (the zero value is enabled, the common case).

type BrowserMenuItem struct {
ID string `json:"id"`
Label string `json:"label"`
Disabled bool `json:"disabled,omitempty"`
}

type BrowserNodeEvent

BrowserNodeEvent is the push event (type EventBrowserNode) an add-in receives when the user interacts with one of its pane nodes. Gesture is "select", "double", "expand", "collapse", or "menu". For "menu", MenuItem is the chosen item's ID.

type BrowserNodeEvent struct {
Type string `json:"type"` // always EventBrowserNode
Pane string `json:"pane"`
Node string `json:"node"`
Gesture string `json:"gesture"`
MenuItem string `json:"menuItem,omitempty"` // chosen context-menu item id (Gesture "menu")
}

type BrowserNodeSpec

BrowserNodeSpec is one node of an add-in browser pane: a label with an optional icon and children, drawn like a built-in document-tree node. ID must be unique within its pane — it names the node in the BrowserNodeEvent the add-in receives when the user interacts with it. Expanded is the node's initial state; the user's expansion is kept across re-sets of the pane (the spec declares content, not view state). IconSVG is an inline themed glyph (the ribbon's sentinel-colour SVG convention) the host rasterises beside the label, so an add-in node looks like a document node. Menu is the node's right-click context menu; choosing an item reports a BrowserNodeEvent with Gesture "menu" and MenuItem set.

type BrowserNodeSpec struct {
ID string `json:"id"`
Label string `json:"label"`
Icon string `json:"icon,omitempty"` // built-in icon key (host nodes)
IconSVG string `json:"iconSVG,omitempty"` // inline themed glyph (add-in nodes)
Expanded bool `json:"expanded,omitempty"`
Menu []BrowserMenuItem `json:"menu,omitempty"`
Children []BrowserNodeSpec `json:"children,omitempty"`
}

type BrowserPaneSpec

BrowserPaneSpec is one add-in browser pane: a named tree shown alongside the built-in Model pane (the ClientBrowserNodeDefinition equivalent, M05-F03 #256). Setting a pane replaces its whole tree — the declared-bulk-state model the clientGraphics groups established — so an add-in never patches node-by-node.

type BrowserPaneSpec struct {
ID string `json:"id"`
Title string `json:"title"`
Nodes []BrowserNodeSpec `json:"nodes,omitempty"`
}

type CalculateFacetsArgs

CalculateFacetsArgs is the request of MethodBodyCalculateFacets and MethodBodyExistingFacets.

type CalculateFacetsArgs struct {
BodyIndex int `json:"bodyIndex"`
Tolerance float64 `json:"tolerance"`
// IncludeTextureMap adds per-vertex surface-parameter (u, v) pairs.
IncludeTextureMap bool `json:"includeTextureMap,omitempty"`
}

type CalculateStrokesArgs

CalculateStrokesArgs is the request of MethodBodyCalculateStrokes and MethodBodyExistingStrokes.

type CalculateStrokesArgs struct {
BodyIndex int `json:"bodyIndex"`
Tolerance float64 `json:"tolerance"`
}

type CallAddInAutomationArgs

CallAddInAutomationArgs is the request of MethodAddInsCallAutomation: invoke a method on another add-in's automation surface (ApplicationAddIn.Automation). Args is the target's own request shape, passed through opaquely — the host routes, it does not interpret.

type CallAddInAutomationArgs struct {
ID string `json:"id"`
Method string `json:"method"`
Args json.RawMessage `json:"args,omitempty"`
}

type CallAddInAutomationResult

CallAddInAutomationResult is the response of MethodAddInsCallAutomation: the target add-in's reply, passed through opaquely.

type CallAddInAutomationResult struct {
Result json.RawMessage `json:"result,omitempty"`
}

type CameraChangedEvent

CameraChangedEvent is the payload of the EventCameraChanged push event: the document whose active-view camera moved and the new frame.

type CameraChangedEvent struct {
Document uint64 `json:"document"`
Camera CameraView `json:"camera"`
}

type CameraView

CameraView is the JSON shape of the viewport's camera as a look-at frame: the eye position, the target it looks at, the up vector, and the vertical field of view in radians. It is the response of MethodViewGetCamera and MethodViewSetCamera.

The look-at form is the host-native representation (lossless round-trip with the renderer's camera). A collaboration add-in that wants a position+orientation form (e.g. for slerp during presenter-follow, see the oblikovati-meeting ADR-0003) derives the rotation from eye→target and up on its own side.

Eye and Target are positions, Up a direction — the M01-F05 geometry value types, whose [x, y, z] JSON form is identical to the [3]float64 encoding this type used before they existed.

type CameraView struct {
Eye types.Point `json:"eye"`
Target types.Point `json:"target"`
Up types.Vector `json:"up"`
FOV float64 `json:"fov"`
}

type CaptureNamedViewArgs

CaptureNamedViewArgs is the request of MethodViewsCaptureNamed: save the active view's current camera under Name (replacing any existing named view of that name).

type CaptureNamedViewArgs struct {
Document uint64 `json:"document,omitempty"`
Name string `json:"name"`
}

type CaptureRepArgs

CaptureRepArgs captures the current scene state into a new representation of its family.

type CaptureRepArgs struct {
Name string `json:"name"`
}

type CaptureViewportArgs

CaptureViewportArgs is the request of MethodViewportCapture: write the active document's viewport framebuffer to a PNG at Path (empty ⇒ a default temp location). The capture reflects the NEXT rendered frame, so the host writes the file asynchronously and the caller reads it once written.

type CaptureViewportArgs struct {
Path string `json:"path,omitempty"`
}

type CaptureViewportResult

CaptureViewportResult is the reply of MethodViewportCapture: the PNG path the host will write and the viewport's pixel size. The file appears within a frame of the call (poll Path / its mtime).

type CaptureViewportResult struct {
Path string `json:"path"`
Width int `json:"width"`
Height int `json:"height"`
}

type CaptureWindowArgs

CaptureWindowArgs is the request of MethodViewportCaptureWindow: write the WHOLE application window — the ImGui chrome (ribbon, browser, dialogs) composited with the 3D viewport, i.e. everything the user sees — to a PNG at Path (empty ⇒ a default temp location). Unlike CaptureViewportArgs, which captures only the 3D framebuffer, this captures the full swapchain image, so it shows open dialogs and UI state. The host writes the file asynchronously (within a frame); the caller reads it once written.

type CaptureWindowArgs struct {
Path string `json:"path,omitempty"`
}

type CaptureWindowResult

CaptureWindowResult is the reply of MethodViewportCaptureWindow: the PNG path the host will write and the window's pixel size. The file appears within a frame of the call (poll Path / its mtime).

type CaptureWindowResult struct {
Path string `json:"path"`
Width int `json:"width"`
Height int `json:"height"`
}

type CenterMarksResult

CenterMarksResult is the response of MethodDrawingAnnotationsAddCenterMarks: the marks created.

type CenterMarksResult struct {
Annotations []DrawingAnnotationInfo `json:"annotations"`
}

type CenterlineInfo

CenterlineInfo is one cosmetic centerline on the flat: its index and the line segment (start→end) in flat 2D coordinates (database units, cm).

type CenterlineInfo struct {
Index int `json:"index"`
Start types.Point2d `json:"start"`
End types.Point2d `json:"end"`
}

type CenterlinesResult

CenterlinesResult is the reply of addCenterline/listCenterlines/deleteCenterline: the flat's cosmetic centerlines.

type CenterlinesResult struct {
Centerlines []CenterlineInfo `json:"centerlines"`
}

type CircularPatternFeatureArgs

CircularPatternFeatureArgs is the args object for a FeatureKindPatternCircular MethodFeaturesAdd call: replicate SourceFeatures (tree names) in a circular array about an axis. Count is the occurrence count; CountExpr is its parameter-expression form ("slots", "poles/2") evaluated through the document's parameter engine and, when set, supersedes Count — so the pattern count is parameter-driven (#189). Angle is the unit-bearing total sweep ("360 deg"). AxisPoint/AxisDir default to the origin and +Z.

type CircularPatternFeatureArgs struct {
SourceFeatures []string `json:"sourceFeatures"`
Count int `json:"count,omitempty"`
CountExpr string `json:"countExpr,omitempty"`
Angle string `json:"angle,omitempty"`
AxisPoint []float64 `json:"axisPoint,omitempty"`
AxisDir []float64 `json:"axisDir,omitempty"`
}

type ClientApplicationInfo

ClientApplicationInfo is one entry of MethodClientAppsList: an external client application (an out-of-process automation driver, e.g. an MCP client connected through the bridge) registered for the session — the ClientApplications equivalent, distinct from in-process add-ins.

type ClientApplicationInfo struct {
ID int `json:"id"`
Name string `json:"name"`
}

type ClientGraphicsInfo

ClientGraphicsInfo is one row of MethodClientGraphicsList.

type ClientGraphicsInfo struct {
ClientId string `json:"clientId"`
Lane string `json:"lane"`
Visible bool `json:"visible"`
NodeCount int `json:"nodeCount"`
PrimitiveCount int `json:"primitiveCount"`
}

type ClientOperationEvent

ClientOperationEvent is the push event (type EventClientOperation) telling a subtype's owner its flavored document needs servicing: Operation is "created", "opened", "activated" or "saved".

type ClientOperationEvent struct {
Type string `json:"type"` // always EventClientOperation
Document uint64 `json:"document"`
SubType string `json:"subType"`
Operation string `json:"operation"`
}

type CloseAllDocumentsArgs

CloseAllDocumentsArgs is the request of MethodDocumentsCloseAll: close every open document. Force discards unsaved changes (the usual choice to start a clean session).

type CloseAllDocumentsArgs struct {
Force bool `json:"force"`
}

type CloseDocumentArgs

CloseDocumentArgs is the request of MethodDocumentsClose: the session id of the document to close. Force discards unsaved changes instead of saving them first.

type CloseDocumentArgs struct {
ID uint64 `json:"id"`
Force bool `json:"force"`
}

type CloseDocumentsResult

CloseDocumentsResult is the response of MethodDocumentsClose / MethodDocumentsCloseAll: how many documents were closed.

type CloseDocumentsResult struct {
Closed int `json:"closed"`
}

type CloseTaskPanelArgs

CloseTaskPanelArgs is the request of MethodTaskPanelClose (programmatic dismissal).

type CloseTaskPanelArgs struct {
ID string `json:"id"`
}

type CloseViewArgs

CloseViewArgs is the request of MethodViewsClose: remove the indexed view. Closing the last remaining view of a document is refused (a document always has ≥1 view).

type CloseViewArgs struct {
Document uint64 `json:"document,omitempty"`
Index int `json:"index"`
}

type CloseViewTabArgs

CloseViewTabArgs is the request of MethodWindowsCloseTab; Force discards unsaved changes (otherwise the document is saved first).

type CloseViewTabArgs struct {
Document uint64 `json:"document"`
Force bool `json:"force,omitempty"`
}

type CloseWebDialogArgs

CloseWebDialogArgs is the request of MethodDialogsCloseWebDialog.

type CloseWebDialogArgs struct {
ID string `json:"id"`
}

type ColorMapperInfo

ColorMapperInfo is one entry of ColorMappersResult: a registered named mapper.

type ColorMapperInfo struct {
Name string `json:"name"`
StopCount int `json:"stopCount"`
}

type ColorMappersResult

ColorMappersResult is the response of MethodClientGraphicsListMappers.

type ColorMappersResult struct {
Mappers []ColorMapperInfo `json:"mappers"`
}

type ColorSchemeView

ColorSchemeView is the JSON shape of one color scheme — the element of ColorSchemesResult and the response of MethodColorSchemesGetActive / MethodColorSchemesSetActive. The background colors honor BackgroundType: ScreenColor for a solid background, Top/BottomScreenColor for a gradient. Highlight/select colors feed the selection pipeline.

type ColorSchemeView struct {
Name string `json:"name"`
Active bool `json:"active"`
BackgroundType types.BackgroundTypeEnum `json:"backgroundType"`
ScreenColor types.Color `json:"screenColor"`
TopScreen types.Color `json:"topScreenColor"`
BottomScreen types.Color `json:"bottomScreenColor"`
Highlight types.Color `json:"highlightColor"`
PrimarySelect types.Color `json:"primarySelectColor"`
SecondSelect types.Color `json:"secondarySelectColor"`
}

type ColorSchemesResult

ColorSchemesResult is the response of MethodColorSchemesList: every scheme, with the active one flagged.

type ColorSchemesResult struct {
Schemes []ColorSchemeView `json:"schemes"`
}

type ColorStyleView

ColorStyleView is the JSON shape of one color style — the element of ColorStylesResult and the response of MethodStylesGet / MethodStylesSet and the request of the latter. The color components are full [types.Color] value objects; Shininess/Opacity are in [0,1].

type ColorStyleView struct {
Name string `json:"name"`
Diffuse types.Color `json:"diffuse"`
Ambient types.Color `json:"ambient"`
Specular types.Color `json:"specular"`
Emissive types.Color `json:"emissive"`
Shininess float64 `json:"shininess"`
Opacity float64 `json:"opacity"`
Location types.StyleLocationEnum `json:"location"`
}

type ColorStylesResult

ColorStylesResult is the response of MethodStylesList: every color style in the document.

type ColorStylesResult struct {
Styles []ColorStyleView `json:"styles"`
}

type CommandInfo

CommandInfo is the JSON shape of a registered command (its control-definition metadata) plus its current enabled state.

type CommandInfo struct {
ID string `json:"id"`
DisplayName string `json:"displayName"`
Ribbon types.RibbonKey `json:"ribbon,omitempty"`
Tab string `json:"tab,omitempty"`
Category string `json:"category,omitempty"`
Environment types.Environment `json:"environment,omitempty"`
Alias string `json:"alias,omitempty"`
Tooltip string `json:"tooltip,omitempty"`
// TooltipTitle / TooltipExpanded are the progressive tooltip (M05-F09): the
// title heads the hover tip; the expanded text appears after a longer hover.
TooltipTitle string `json:"tooltipTitle,omitempty"`
TooltipExpanded string `json:"tooltipExpanded,omitempty"`
Icon string `json:"icon,omitempty"`
// IconSVG is inline SVG markup the add-in supplied for this button (see
// [CreateCommandArgs.IconSVG]); empty when the button uses a host-bundled Icon key.
IconSVG string `json:"iconSvg,omitempty"`
ButtonStyle types.ButtonStyle `json:"buttonStyle,omitempty"`
Enabled bool `json:"enabled"`
}

type CommandLineResult

CommandLineResult is the response of MethodCommandLineSubmit. Output is the scrollback lines this submission produced (echoes, prompts, results). Prompt is the active command's next step prompt, and Awaiting is true while a command is mid-interaction (more input expected). Error carries a command-line error (e.g. an unknown command) as a message rather than a transport failure, so the caller can show it inline like the UI does.

type CommandLineResult struct {
Output []string `json:"output,omitempty"`
Prompt string `json:"prompt,omitempty"`
Awaiting bool `json:"awaiting"`
Error string `json:"error,omitempty"`
}

type CommandStartedEvent

CommandStartedEvent is the push event (type EventCommandStarted) fired when a command begins — the OnStartCommand observation; command.ended already reports completion.

type CommandStartedEvent struct {
Type string `json:"type"` // always EventCommandStarted
Command string `json:"command"`
}

type CompatibleUnitsResult

CompatibleUnitsResult reports whether an expression's resolved unit is dimensionally compatible with the target category (response of MethodUnitsCompatibleUnits).

type CompatibleUnitsResult struct {
Compatible bool `json:"compatible"`
}

type Constraint3DInfo

Constraint3DInfo is one enumerated geometric constraint from MethodSketch3DConstraints: its index, kind (oblikovati.org/api/types.Geometric3DConstraintKind), and the session ids of the entities/points it relates.

type Constraint3DInfo struct {
Index int `json:"index"`
Kind string `json:"kind"`
Entities []uint64 `json:"entities,omitempty"`
}

type ConstraintEventPayload

ConstraintEventPayload is the body of the assembly relationship events (EventAssemblyConstraintAdded, EventAssemblyConstraintDeleted, EventAssemblyResolved): which assembly (Document), and for add/delete the affected constraint's id and kind. The resolved event carries no constraint (Constraint is 0, Kind empty).

type ConstraintEventPayload struct {
Type string `json:"type"`
Document uint64 `json:"document"`
Constraint uint64 `json:"constraint,omitempty"`
Kind string `json:"kind,omitempty"`
}

type ConstraintGeomRef

ConstraintGeomRef addresses one geometry input of a constraint: the Occurrence (session id) whose component carries the geometry, and the Entity's reference key on that component (a face, edge, or vertex key). The solver resolves it to assembly-space geometry through the occurrence's placement.

type ConstraintGeomRef struct {
Occurrence uint64 `json:"occurrence"`
Entity string `json:"entity"`
}

type ConstraintInfo

ConstraintInfo is one enumerated geometric constraint from MethodSketchConstraints: its index, kind (oblikovati.org/api/types.GeometricConstraintKind), and the session ids of the entities it relates. Deletable is false for system-owned constraints (the textBox anchor — M06-F11, Oblikovati/Oblikovati#626); sketch.deleteConstraint rejects those. ClientID and Name carry the owning add-in and the record name of a "custom" tag constraint.

type ConstraintInfo struct {
Index int `json:"index"`
Kind string `json:"kind"`
Entities []uint64 `json:"entities"`
Deletable bool `json:"deletable"`
ClientID string `json:"clientId,omitempty"`
Name string `json:"name,omitempty"`
}

type ConstraintLimits

ConstraintLimits bounds a constraint's driven value (offset/angle). Each bound is optional; an absent bound (its Has* flag false) does not clamp. Resting is the value a drive returns to when released.

type ConstraintLimits struct {
HasMin bool `json:"hasMin,omitempty"`
Min float64 `json:"min,omitempty"`
HasMax bool `json:"hasMax,omitempty"`
Max float64 `json:"max,omitempty"`
HasResting bool `json:"hasResting,omitempty"`
Resting float64 `json:"resting,omitempty"`
}

type ConstraintResult

ConstraintResult is the reply of the single-constraint add operations: the new constraint's info (after the assembly re-solves).

type ConstraintResult struct {
Constraint AssemblyConstraintInfo `json:"constraint"`
}

type ConstraintStatusResult

ConstraintStatusResult is the response of MethodSketchConstraintStatus: the sketch's constraint state without moving geometry (a non-mutating DOF analysis). Status is a oblikovati.org/api/types.ConstraintStatus; DOF is the remaining free degrees of freedom; Variables/Equations are the system size; Redundant counts the dependent constraints (> 0 ⇒ over-constrained).

type ConstraintStatusResult struct {
Status string `json:"status"`
DOF int `json:"dof"`
Variables int `json:"variables"`
Equations int `json:"equations"`
Redundant int `json:"redundant"`
}

type ConstraintsResult

ConstraintsResult is the reply of MethodAssemblyConstraintsList: the active assembly's constraint set in creation order.

type ConstraintsResult struct {
Constraints []AssemblyConstraintInfo `json:"constraints"`
}

type ContactMemberArgs

ContactMemberArgs adds or removes an occurrence to/from a contact set.

type ContactMemberArgs struct {
Set uint64 `json:"set"`
Occurrence uint64 `json:"occurrence"`
}

type ContactSetInfo

ContactSetInfo is one contact set: its id, name, and member occurrence ids.

type ContactSetInfo struct {
ID uint64 `json:"id"`
Name string `json:"name"`
Members []uint64 `json:"members,omitempty"`
}

type ContactSetRef

ContactSetRef names a contact set by id (the request of delete).

type ContactSetRef struct {
ID uint64 `json:"id"`
}

type ContactSetResult

Result envelopes.

type ContactSetResult struct {
ContactSet ContactSetInfo `json:"contactSet"`
}

type ContactSetsResult

Result envelopes.

type ContactSetsResult struct {
ContactSets []ContactSetInfo `json:"contactSets"`
}

type ContactSolverEnableArgs

ContactSolverEnableArgs enables or disables the contact solver.

type ContactSolverEnableArgs struct {
Enabled bool `json:"enabled"`
}

type ContactSolverInfo

ContactSolverInfo is the contact solver's state: whether it is enabled and how many sets it governs.

type ContactSolverInfo struct {
Enabled bool `json:"enabled"`
SetCount int `json:"setCount,omitempty"`
}

type ContactSolverResult

Result envelopes.

type ContactSolverResult struct {
Solver ContactSolverInfo `json:"solver"`
}

type ContextMenuItemSpec

ContextMenuItemSpec is one injected context-menu entry: the label shown and the command it runs.

type ContextMenuItemSpec struct {
Label string `json:"label"`
CommandID string `json:"commandId"`
}

type ConvertUnitsArgs

ConvertUnitsArgs is the request of MethodUnitsConvert: a numeric value to convert From one unit name To another (both must name the same category).

type ConvertUnitsArgs struct {
Value float64 `json:"value"`
From string `json:"from"`
To string `json:"to"`
}

type ConvertUnitsResult

ConvertUnitsResult is the converted value (response of MethodUnitsConvert).

type ConvertUnitsResult struct {
Value float64 `json:"value"`
}

type ConvexityEdgesArgs

ConvexityEdgesArgs is the request of MethodBodyConvexityEdges; Collection is an oblikovati.org/api/types.EdgeCollectionKind wire spelling.

type ConvexityEdgesArgs struct {
BodyIndex int `json:"bodyIndex"`
Collection string `json:"collection"`
}

type ConvexityEdgesResult

ConvexityEdgesResult is the response of MethodBodyConvexityEdges.

type ConvexityEdgesResult struct {
Edges []TopologyRef `json:"edges,omitempty"`
}

type CopyComponentsArgs

CopyComponentsArgs is the request of MethodAssemblyCopy: add an independent copy of each Source occurrence (by session id) — same component and placement, a new instance.

type CopyComponentsArgs struct {
Sources []uint64 `json:"sources"`
}

type CopySketchArgs

CopySketchArgs is the request of MethodSketchCopyTo. SourceIndex/TargetIndex are the sketches' indices. EntityIDs selects the source entities to copy (from sketch.entities); empty copies the whole sketch's contents. Position (target-plane [x, y] in cm) offsets the copies; absent (nil) copies in place.

type CopySketchArgs struct {
SourceIndex int `json:"sourceIndex"`
TargetIndex int `json:"targetIndex"`
EntityIDs []uint64 `json:"entityIds,omitempty"`
Position []float64 `json:"position,omitempty"`
}

type CopySketchResult

CopySketchResult is the response of MethodSketchCopyTo: the session ids of the entities created in the target sketch, and their count. The geometric constraints and dimensions whose operands lie entirely within the copied set are carried over too — remapped onto the clones — while relations that reference geometry outside the set are dropped (Oblikovati/Oblikovati#1083). A copied driving dimension mints a fresh parameter in the target.

type CopySketchResult struct {
Created []uint64 `json:"created"`
Count int `json:"count"`
}

type CreaseFreeformEdgesArgs

CreaseFreeformEdgesArgs is the request of MethodFreeformCreaseEdges: set the crease sharpness on the selected cage edges, each addressed by its two cage vertex indices. Sharpness runs 0 (smooth) to 1 (fully sharp).

type CreaseFreeformEdgesArgs struct {
ID uint64 `json:"id"`
Edges [][2]int `json:"edges"`
Sharpness float64 `json:"sharpness"`
}

type CreateBlockDefinitionArgs

CreateBlockDefinitionArgs is the request of MethodSketchBlockDefinitionCreate. Name must be unique among the part's block definitions. When SourceSketchIndex and EntityRefs are set, the definition is created from that selection: the referenced entities (with their defining points) move out of the sketch into the definition and one instance replaces them in place (the interactive "create block from selection"). Without them, an empty definition is created to be populated by later edits.

type CreateBlockDefinitionArgs struct {
Name string `json:"name"`
SourceSketchIndex int `json:"sourceSketchIndex,omitempty"`
EntityRefs []uint64 `json:"entityRefs,omitempty"`
}

type CreateCommandArgs

CreateCommandArgs is the request of MethodCommandsCreate: an add-in registering a ribbon button. The host creates a command with this metadata that appears in the ribbon; clicking it runs no host logic but fires a command-ended event the add-in receives via its Notify entry point and acts on. ID and DisplayName are required; the rest place and style the button.

Ribbon picks which document ribbon the button lands on (empty ⇒ the Part ribbon); Environment scopes it to a context (empty/base ⇒ always shown; sketch ⇒ the contextual Sketch tab). Together with Tab/Category this places a button on a named panel of a named tab of a chosen ribbon (e.g. the Draw panel of the Sketch tab of the Part ribbon). Kind picks the control's behavior (default a one-shot button). A PopupControl names other registered commands in Items: the button opens a menu of them and each item runs its own command — the CommandBarPopUp equivalent (M05-F03, #247).

type CreateCommandArgs struct {
ID string `json:"id"`
DisplayName string `json:"displayName"`
Ribbon types.RibbonKey `json:"ribbon,omitempty"`
Tab string `json:"tab,omitempty"`
Category string `json:"category,omitempty"`
Environment types.Environment `json:"environment,omitempty"`
Alias string `json:"alias,omitempty"`
Tooltip string `json:"tooltip,omitempty"`
// The progressive tooltip (M05-F09): title heads the hover tip; the expanded
// text appears after a longer hover.
TooltipTitle string `json:"tooltipTitle,omitempty"`
TooltipExpanded string `json:"tooltipExpanded,omitempty"`
Icon string `json:"icon,omitempty"`
// IconSVG lets an add-in ship its own button glyph as inline SVG markup instead of
// referencing a host-bundled Icon key — so an add-in is not limited to the icons the
// host happens to embed. When set it takes precedence over Icon. The markup should
// follow the host's glyph conventions: a square (24×24) viewBox and the theme's sentinel
// paints (the outline, a fill role, and an accent role), which the host recolours per
// theme. Oversized markup is rejected by the host. (Oblikovati#671)
IconSVG string `json:"iconSvg,omitempty"`
ButtonStyle types.ButtonStyle `json:"buttonStyle,omitempty"`
Kind types.ControlKind `json:"kind,omitempty"`
Items []string `json:"items,omitempty"`
}

type CreateContactSetArgs

CreateContactSetArgs creates a new contact set named Name.

type CreateContactSetArgs struct {
Name string `json:"name"`
}

type CreateDocumentArgs

CreateDocumentArgs is the request of MethodDocumentsCreate: the kind (part|assembly|drawing|presentation) and the document name. SubType, when set, stamps the new document with a REGISTERED flavored subtype (documents.registerSubType) whose base type must match Type (M05-F15).

type CreateDocumentArgs struct {
Type string `json:"type"`
Name string `json:"name"`
SubType string `json:"subType,omitempty"`
}

type CreateHighlightSetArgs

CreateHighlightSetArgs is the request of MethodModelHighlightSetCreate: a unique Name and a "#rrggbb" Color. The set starts empty; add references with MethodModelHighlightSetAddItems.

type CreateHighlightSetArgs struct {
Name string `json:"name"`
Color string `json:"color"`
}

type CreateModelStateArgs

CreateModelStateArgs creates a model state selecting one representation of each family by name (an empty family name leaves that family unchanged on activate).

type CreateModelStateArgs struct {
Name string `json:"name"`
DesignView string `json:"designView,omitempty"`
Positional string `json:"positional,omitempty"`
LevelOfDetail string `json:"levelOfDetail,omitempty"`
}

type CreatePatternArgs

CreatePatternArgs is the request of MethodAssemblyPatternCreate: replicate the Seed occurrence (by session id) across an arrangement, adding one occurrence per generated element beyond the seed. Kind selects the arrangement and the fields it reads:

  • "circular": Origin, Axis, Angle (radians between adjacent elements), Count (total, including the seed);
  • "rectangular": Direction1/Spacing1/Count1 and Direction2/Spacing2/Count2 (a Count1×Count2 grid; the seed is element 0,0).
type CreatePatternArgs struct {
Seed uint64 `json:"seed"`
Kind string `json:"kind"`

// Circular arrangement.
Origin [3]float64 `json:"origin,omitempty"`
Axis [3]float64 `json:"axis,omitempty"`
Angle float64 `json:"angle,omitempty"`
Count int `json:"count,omitempty"`

// Rectangular arrangement.
Direction1 [3]float64 `json:"direction1,omitempty"`
Spacing1 float64 `json:"spacing1,omitempty"`
Count1 int `json:"count1,omitempty"`
Direction2 [3]float64 `json:"direction2,omitempty"`
Spacing2 float64 `json:"spacing2,omitempty"`
Count2 int `json:"count2,omitempty"`
}

type CreatePrimitiveArgs

CreatePrimitiveArgs is the request of MethodBrepCreatePrimitive. Kind selects the shape and which fields apply:

  • "block": Min, Max (opposite box corners);
  • "cylinderCone": Bottom, Top (section centers), BottomRadius, TopRadius (equal = cylinder, one zero = full cone);
  • "sphere": Center, Radius;
  • "torus": Center, Axis, MajorRadius, MinorRadius.
type CreatePrimitiveArgs struct {
Kind string `json:"kind"`
Min []float64 `json:"min,omitempty"`
Max []float64 `json:"max,omitempty"`
Bottom []float64 `json:"bottom,omitempty"`
Top []float64 `json:"top,omitempty"`
BottomRadius float64 `json:"bottomRadius,omitempty"`
TopRadius float64 `json:"topRadius,omitempty"`
Center []float64 `json:"center,omitempty"`
Axis []float64 `json:"axis,omitempty"`
Radius float64 `json:"radius,omitempty"`
MajorRadius float64 `json:"majorRadius,omitempty"`
MinorRadius float64 `json:"minorRadius,omitempty"`
}

type CreateSketch3DArgs

CreateSketch3DArgs is the request of MethodSketch3DCreate: an optional name for the new (empty) 3D sketch. A 3D sketch has no host plane — its geometry lives directly in model space.

type CreateSketch3DArgs struct {
Name string `json:"name,omitempty"`
}

type CreateSketch3DResult

CreateSketch3DResult is the response of MethodSketch3DCreate: the new sketch's index.

type CreateSketch3DResult struct {
SketchIndex int `json:"sketchIndex"`
}

type CreateSketchArgs

CreateSketchArgs is the request of MethodSketchCreate: where to start the new sketch. By default it is an origin plane (Plane: XY | XZ | YZ; empty defaults to XY). Set WorkPlaneIndex to sketch on a user work plane instead (its index in list_work_planes) — the way to sketch on a plane built on a feature-created face, so later features reference earlier geometry. WorkPlaneIndex, when set, takes precedence over Plane.

type CreateSketchArgs struct {
Plane string `json:"plane,omitempty"`
WorkPlaneIndex *int `json:"workPlaneIndex,omitempty"`
}

type CreateSketchResult

CreateSketchResult is the response of MethodSketchCreate: the new sketch's index (for sketch.rectangle / features.add) and the normalized plane label.

type CreateSketchResult struct {
SketchIndex int `json:"sketchIndex"`
Plane string `json:"plane"`
}

type CreateWorkPlaneArgs

CreateWorkPlaneArgs is the request of MethodWorkPlanesCreate: which constructor (Kind, a oblikovati.org/api/types.WorkPlaneKind value) and its inputs.

  • Refs are work-feature references the plane is built on — origin constants (types.WorkRefXYPlane …), refs returned by MethodWorkPlanesList, or a face reference for the tangent kinds. Each kind expects a fixed count/order (e.g. "plane-offset" wants one plane ref; "three-points" wants three point refs).
  • Offset and Angle are unit-bearing expressions ("10 mm", "45 deg") for the offset and line-plane-angle kinds.
  • Origin, XAxis, YAxis give the AddFixed frame: the origin point [x,y,z] (model units) and two in-plane axis direction components.
type CreateWorkPlaneArgs struct {
Kind string `json:"kind"`
Refs []string `json:"refs,omitempty"`
Offset string `json:"offset,omitempty"`
Angle string `json:"angle,omitempty"`
Origin []float64 `json:"origin,omitempty"`
XAxis []float64 `json:"xaxis,omitempty"`
YAxis []float64 `json:"yaxis,omitempty"`
}

type CreateWorkPlaneResult

CreateWorkPlaneResult is the response of MethodWorkPlanesCreate: the new plane's index in the work-planes collection, its stable reference (for building further datums), its name, and whether it resolved (an unsatisfiable definition reports healthy=false rather than failing the call).

type CreateWorkPlaneResult struct {
Index int `json:"index"`
Ref string `json:"ref"`
Name string `json:"name"`
Healthy bool `json:"healthy"`
}

type CreateWorkPointArgs

CreateWorkPointArgs is the request of MethodWorkPointsCreate: a datum point fixed at a position. At is the point [x, y, z] in model units.

type CreateWorkPointArgs struct {
At []float64 `json:"at"`
}

type CreateWorkPointResult

CreateWorkPointResult is the response of MethodWorkPointsCreate: the new point's index in the work-points collection, its stable reference (usable as a point input to a work plane — e.g. a three-point plane — or to MethodWorkPlanesRedefine's Repick), and its name.

type CreateWorkPointResult struct {
Index int `json:"index"`
Ref string `json:"ref"`
Name string `json:"name"`
}

type CustomPropertyFormatInfo

CustomPropertyFormatInfo is the JSON shape of how a parameter value is formatted when exposed as a custom document property. PropertyType and Precision carry the wire spellings of types.CustomPropertyType and types.CustomPropertyPrecision; Units empty means the document display unit.

type CustomPropertyFormatInfo struct {
PropertyType string `json:"propertyType"`
Units string `json:"units,omitempty"`
Precision string `json:"precision"`
ShowLeadingZeros bool `json:"showLeadingZeros,omitempty"`
ShowTrailingZeros bool `json:"showTrailingZeros,omitempty"`
ShowUnitsString bool `json:"showUnitsString,omitempty"`
}

type DSDOFInfo

DSDOFInfo is one degree of freedom of a DS joint: whether it is translational or rotational, how its motion is imposed (free/driven/locked), and its current value (cm or radians).

type DSDOFInfo struct {
Rotational bool `json:"rotational"`
ImposedMotion string `json:"imposedMotion"`
Value float64 `json:"value,omitempty"`
}

type DSJointInfo

DSJointInfo is one row of the DS-joint set: its id, kind, name, and per-DOF imposed-motion breakdown — the kinematic (degrees-of-freedom) view of a joint that motion/simulation consumers read.

type DSJointInfo struct {
ID uint64 `json:"id"`
Type string `json:"type"`
Name string `json:"name"`
A ConstraintGeomRef `json:"a"`
B ConstraintGeomRef `json:"b"`
DegreesOfFreedom []DSDOFInfo `json:"degreesOfFreedom"`
}

type DSJointResult

DSJointResult is the reply of the single DS-joint operations.

type DSJointResult struct {
Joint DSJointInfo `json:"joint"`
}

type DSJointsResult

DSJointsResult is the reply of MethodDSJointsList: the DS-joint set.

type DSJointsResult struct {
Joints []DSJointInfo `json:"joints"`
}

type DatabaseUnitsResult

DatabaseUnitsResult is the evaluated database-unit value of an expression and the category it resolved to (response of MethodUnitsGetDatabaseUnitsFromExpression).

type DatabaseUnitsResult struct {
Value float64 `json:"value"`
UnitsType string `json:"unitsType"`
}

type DeleteAnnotationArgs

DeleteAnnotationArgs is the request of MethodDrawingAnnotationsDelete.

type DeleteAnnotationArgs struct {
Name string `json:"name"`
}

type DeleteAssemblyConstraintArgs

DeleteAssemblyConstraintArgs is the request of MethodAssemblyConstraintsDelete: remove the constraint with id ID from the active assembly.

type DeleteAssemblyConstraintArgs struct {
ID uint64 `json:"id"`
}

type DeleteAttributeArgs

DeleteAttributeArgs is the request of MethodAttributesDelete: remove the named attribute in the set, or the whole set when Name is empty, on the target (empty = the document itself).

type DeleteAttributeArgs struct {
Document uint64 `json:"document"`
Set string `json:"set"`
Name string `json:"name,omitempty"`
Target string `json:"target,omitempty"`
}

type DeleteAttributeResult

DeleteAttributeResult is the response of MethodAttributesDelete: how many attributes were removed (0 when nothing matched).

type DeleteAttributeResult struct {
Removed int `json:"removed"`
}

type DeleteBlockDefinitionArgs

DeleteBlockDefinitionArgs is the request of MethodSketchBlockDefinitionDelete. A definition that still has instances cannot be deleted; the error names the block and the sketches consuming it.

type DeleteBlockDefinitionArgs struct {
Name string `json:"name"`
}

type DeleteBrowserPaneArgs

DeleteBrowserPaneArgs is the request of MethodBrowserDeletePane.

type DeleteBrowserPaneArgs struct {
ID string `json:"id"`
}

type DeleteCenterlineArgs

DeleteCenterlineArgs removes the cosmetic centerline at Index.

type DeleteCenterlineArgs struct {
Index int `json:"index"`
}

type DeleteClientGraphicsArgs

DeleteClientGraphicsArgs is the request of MethodClientGraphicsDelete.

type DeleteClientGraphicsArgs struct {
ClientId string `json:"clientId"`
}

type DeleteConstraintArgs

DeleteConstraintArgs is the request of MethodSketchDeleteConstraint: which sketch and the index of the geometric constraint to remove (as listed by MethodSketchConstraints).

type DeleteConstraintArgs struct {
SketchIndex int `json:"sketchIndex"`
ConstraintIndex int `json:"constraintIndex"`
}

type DeleteDSJointArgs

DeleteDSJointArgs is the request of MethodDSJointsDelete: remove the DS joint with id ID.

type DeleteDSJointArgs struct {
ID uint64 `json:"id"`
}

type DeleteDimensionArgs

DeleteDimensionArgs is the request of MethodDrawingDimensionsDelete.

type DeleteDimensionArgs struct {
Name string `json:"name"`
}

type DeleteDockableWindowArgs

DeleteDockableWindowArgs is the request of MethodDockableWindowsDelete.

type DeleteDockableWindowArgs struct {
ID string `json:"id"`
}

type DeleteFeatureResult

DeleteFeatureResult is the response of MethodFeaturesDelete.

type DeleteFeatureResult struct {
ID uint64 `json:"id"`
Deleted bool `json:"deleted"`
}

type DeleteJointArgs

DeleteJointArgs is the request of MethodAssemblyJointsDelete: remove the joint with id ID.

type DeleteJointArgs struct {
ID uint64 `json:"id"`
}

type DeleteOrientationArgs

type DeleteOrientationArgs struct {
Name string `json:"name"`
}

type DeletePointCloudCropResult

DeletePointCloudCropResult is the response of MethodPointCloudsDeleteCrop.

type DeletePointCloudCropResult struct {
Crop string `json:"crop"`
Deleted bool `json:"deleted"`
}

type DeletePointCloudResult

DeletePointCloudResult is the response of MethodPointCloudsDelete.

type DeletePointCloudResult struct {
Name string `json:"name"`
Deleted bool `json:"deleted"`
}

type DeleteSketch3DConstraintArgs

DeleteSketch3DConstraintArgs is the request of MethodSketch3DDeleteConstraint: which sketch and which geometric constraint (by index) to remove.

type DeleteSketch3DConstraintArgs struct {
SketchIndex int `json:"sketchIndex"`
ConstraintIndex int `json:"constraintIndex"`
}

type DeleteViewArgs

DeleteViewArgs is the request of MethodDrawingViewsDelete: the view to remove (deleting a base view also removes the views projected from it).

type DeleteViewArgs struct {
Name string `json:"name"`
}

type DeriveBreakLinkArgs

DeriveBreakLinkArgs is the request of MethodAssemblyDeriveBreakLink: freeze and sever the source link of the derived-assembly or shrinkwrap feature with this id (from model.tree), so the part keeps the current geometry without further updates.

type DeriveBreakLinkArgs struct {
ID uint64 `json:"id"`
}

type DeriveCreateArgs

DeriveCreateArgs is the request of MethodAssemblyDeriveCreate: derive the open assembly document Source into the active part as a base body, merging every component (the include-all derive). Source is a document session id from documents.list; it must name an open assembly document.

type DeriveCreateArgs struct {
Source uint64 `json:"source"`
}

type DeriveStatusArgs

DeriveStatusArgs is the request of MethodAssemblyDeriveStatus and MethodAssemblyDeriveUpdate: address a derive-family feature (derived-assembly, derived-part, or shrinkwrap) by its id (from model.tree).

type DeriveStatusArgs struct {
ID uint64 `json:"id"`
}

type DeriveStatusResult

DeriveStatusResult reports whether a derived component is out of date relative to its source document — the reference API's drive state. OutOfDate is true when the source's current recipe revision (CurrentRevision) differs from the one captured when the derive was last created/updated (SavedRevision); it is the basis for the "out of date" badge. Linked is false after a break-link (the source is frozen). SourceDocument is the source's full document name. CurrentRevision is empty when the source is not currently resolvable.

type DeriveStatusResult struct {
OutOfDate bool `json:"outOfDate"`
Linked bool `json:"linked"`
SourceDocument string `json:"sourceDocument"`
SavedRevision string `json:"savedRevision,omitempty"`
CurrentRevision string `json:"currentRevision,omitempty"`
}

type DerivedParameterReference

DerivedParameterReference is one derived parameter's link back to its source — the JSON projection of the reference API's DerivedParameter.ReferencedEntity (#1561): the local derived parameter's name, the document it derives from, and the source parameter's name there.

type DerivedParameterReference struct {
Parameter string `json:"parameter"`
SourceDocument string `json:"sourceDocument"`
SourceParameter string `json:"sourceParameter"`
}

type DerivedParameterTableAddArgs

DerivedParameterTableAddArgs is the request of MethodParametersDerivedTablesAdd: the source document and the source parameter names to link. An empty Linked links nothing yet — the table still records the connection and lists candidates.

type DerivedParameterTableAddArgs struct {
SourceDocument string `json:"sourceDocument"`
Linked []string `json:"linked,omitempty"`
}

type DerivedParameterTableDeleteArgs

DerivedParameterTableDeleteArgs is the request of MethodParametersDerivedTablesDelete. Deleting a table deletes its derived parameters; a table owned by a derived component cannot be deleted directly (delete the component instead).

type DerivedParameterTableDeleteArgs struct {
ID int `json:"id"`
}

type DerivedParameterTableInfo

DerivedParameterTableInfo is the JSON shape of one table: its stable id, the source document (full document name), the linked source-parameter names, the source parameters available to link (the candidates), the table's health — "" when every link resolves, otherwise a reason (e.g. the source document is missing or a linked parameter was removed at the source) — the per-derived-parameter references back to their source (the reference API's DerivedParameter.ReferencedEntity), and the table's provenance.

type DerivedParameterTableInfo struct {
ID int `json:"id"`
SourceDocument string `json:"sourceDocument"`
Linked []string `json:"linked,omitempty"`
Available []string `json:"available,omitempty"`
Health string `json:"health,omitempty"`
// References pairs each produced derived parameter with the source parameter
// it tracks (#1561). One entry per linked-and-produced parameter.
References []DerivedParameterReference `json:"references,omitempty"`
// HasReferenceComponent reports whether this table was created by a derived
// component (the reference API's DerivedParameterTable.HasReferenceComponent).
// Such a table dies with its component and cannot be deleted directly.
HasReferenceComponent bool `json:"hasReferenceComponent,omitempty"`
// ReferenceComponent is the document the owning derived component sources from,
// when HasReferenceComponent; "" otherwise.
ReferenceComponent string `json:"referenceComponent,omitempty"`
}

type DerivedParameterTableSetLinkedArgs

DerivedParameterTableSetLinkedArgs is the request of MethodParametersDerivedTablesSetLinked: it replaces the table's linked subset — newly linked names gain derived parameters, unlinked ones lose theirs.

type DerivedParameterTableSetLinkedArgs struct {
ID int `json:"id"`
Linked []string `json:"linked,omitempty"`
}

type DeselectArgs

DeselectArgs is the request of MethodModelDeselect (#157): remove the named entities from the current selection (references not currently selected are ignored). The reply is the new selection.

type DeselectArgs struct {
Refs []string `json:"refs"`
}

type DesignViewInfo

DesignViewInfo is one design-view representation: its identity, the count of hidden occurrences and appearance overrides, its section planes, and the captured camera (if any).

type DesignViewInfo struct {
RepresentationInfo
HiddenCount int `json:"hiddenCount,omitempty"`
AppearanceCount int `json:"appearanceCount,omitempty"`
SectionPlanes []types.SectionPlane `json:"sectionPlanes,omitempty"`
Camera *CameraView `json:"camera,omitempty"`
}

type DesignViewResult

Result envelopes.

type DesignViewResult struct {
Representation DesignViewInfo `json:"representation"`
}

type DesignViewsResult

Result envelopes.

type DesignViewsResult struct {
Representations []DesignViewInfo `json:"representations"`
}

type Dimension3DInfo

Dimension3DInfo is one enumerated dimensional constraint from MethodSketch3DDimensions: its index, kind (oblikovati.org/api/types.Dimension3DConstraintKind), backing parameter name + expression, current model value (cm/rad), and whether it is driven (reports) rather than driving (constrains).

type Dimension3DInfo struct {
Index int `json:"index"`
Kind string `json:"kind"`
Name string `json:"name"`
Expression string `json:"expression"`
Value float64 `json:"value"`
Driven bool `json:"driven"`
}

type DimensionInfo

DimensionInfo is one enumerated dimensional constraint from MethodSketchDimensions: its index, kind (oblikovati.org/api/types.DimensionConstraintKind), backing parameter name + expression, current model value (cm/rad), and whether it is driven (reports) rather than driving (constrains).

type DimensionInfo struct {
Index int `json:"index"`
Kind string `json:"kind"`
Name string `json:"name"`
Expression string `json:"expression"`
Value float64 `json:"value"`
Driven bool `json:"driven"`
}

type DimensionResult

DimensionResult is the response of MethodDrawingDimensionsAddLinear: the created dimension.

type DimensionResult struct {
Dimension DrawingDimensionInfo `json:"dimension"`
}

type DimensionSetResult

DimensionSetResult is the response of the dimension-set methods: the created dimensions.

type DimensionSetResult struct {
Dimensions []DrawingDimensionInfo `json:"dimensions"`
}

type DimensionStyleInfo

DimensionStyleInfo is the JSON shape of a dimension style.

type DimensionStyleInfo struct {
Name string `json:"name"`
TextHeightMM float64 `json:"textHeightMm"`
ArrowSizeMM float64 `json:"arrowSizeMm"`
DecimalPlaces int `json:"decimalPlaces"`
Unit string `json:"unit"` // types.DimensionUnit spelling ("mm"/"in")
LineWeightMM float64 `json:"lineWeightMm"`
}

type DisplayHelpArgs

DisplayHelpArgs is the request of MethodHelpDisplay: open a topic of a registered source ("" ⇒ the host's own documentation).

type DisplayHelpArgs struct {
Source string `json:"source,omitempty"`
Topic string `json:"topic,omitempty"`
}

type DisplayModeInfo

DisplayModeInfo is one entry of ListDisplayModesResult: a selectable mode, its label, and whether it is the active one — enough to populate a display-mode picker.

type DisplayModeInfo struct {
Mode types.DisplayModeEnum `json:"mode"`
Name string `json:"name"`
Active bool `json:"active"`
}

type DisplayModeOptionsView

DisplayModeOptionsView is the JSON shape of the application-level display options — the response of MethodDisplayGetOptions and the request of MethodDisplaySetOptions.

type DisplayModeOptionsView struct {
DisplayQuality types.DisplayQualityEnum `json:"displayQuality"`
ViewTransitionTime float64 `json:"viewTransitionTime"`
MinimumFrameRate float64 `json:"minimumFrameRate"`
HiddenLineDimmingPercent int `json:"hiddenLineDimmingPercent"`
EdgeColor types.Color `json:"edgeColor"`
NewWindowDisplayMode types.DisplayModeEnum `json:"newWindowDisplayMode"`
NewWindowProjection types.ProjectionTypeEnum `json:"newWindowProjection"`
BackFaceCulling types.BackFaceCullingEnum `json:"backFaceCulling"`
UseRayTracing bool `json:"useRayTracing"`
RayTracingQuality types.RayTracingQualityEnum `json:"rayTracingQuality"`
Shaded ShadedDisplayModeOptionsView `json:"shaded"`
Wireframe WireframeDisplayModeOptionsView `json:"wireframe"`
}

type DisplayModeView

DisplayModeView is the JSON shape of the viewport's current display mode: the enum value and its label. The response of MethodViewGetDisplayMode and MethodViewSetDisplayMode.

type DisplayModeView struct {
Mode types.DisplayModeEnum `json:"mode"`
Name string `json:"name"`
}

type DisplayOptionsView

DisplayOptionsView is the "display" group: the color scheme (the active theme's name — themes themselves are managed by the theme.* methods) and the ViewCube. CubeCorner is the viewport corner the cube anchors to (0=top-right, 1=top-left, 2=bottom-right, 3=bottom-left).

type DisplayOptionsView struct {
ColorScheme string `json:"colorScheme"`
ViewCubeHidden bool `json:"viewCubeHidden,omitempty"`
CompassHidden bool `json:"compassHidden,omitempty"`
LockToSelection bool `json:"lockToSelection,omitempty"`
CubeInactiveOpacity float64 `json:"cubeInactiveOpacity,omitempty"`
CubeSizePx int `json:"cubeSizePx,omitempty"`
CubeCorner int `json:"cubeCorner,omitempty"`
}

type DisplaySettingsView

DisplaySettingsView is the JSON shape of a document's per-document display settings — the response of MethodDocumentGetDisplaySettings and the request of MethodDocumentSetDisplaySettings.

type DisplaySettingsView struct {
BackgroundType types.BackgroundTypeEnum `json:"backgroundType"`
EdgeColor types.Color `json:"edgeColor"`
DepthDimming bool `json:"depthDimming"`
DisplaySilhouettes bool `json:"displaySilhouettes"`
HiddenLineDimmingPercent int `json:"hiddenLineDimmingPercent"`
NewWindowDisplayMode types.DisplayModeEnum `json:"newWindowDisplayMode"`
DisplayModeSource types.DisplayModeSourceTypeEnum `json:"displayModeSource"`
NewWindowProjection types.ProjectionTypeEnum `json:"newWindowProjection"`
GroundPlane GroundPlaneView `json:"groundPlane"`
GroundShadow types.GroundShadowEnum `json:"groundShadow"`
ShadowDirection types.ShadowDirectionEnum `json:"shadowDirection"`
ShowGroundReflections bool `json:"showGroundReflections"`
ShowObjectShadows bool `json:"showObjectShadows"`
ShowAmbientShadows bool `json:"showAmbientShadows"`
TexturesOn bool `json:"texturesOn"`
}

type DockableWindowChangedEvent

DockableWindowChangedEvent is the push event (type EventDockableWindowChanged) fired when a dockable window's visibility changes — whether by the add-in, a host menu toggle, or the user closing the window (the DockableWindowsEvents OnShow/OnHide equivalent).

type DockableWindowChangedEvent struct {
Type string `json:"type"` // always EventDockableWindowChanged
ID string `json:"id"`
Visible bool `json:"visible"`
}

type DockableWindowSpec

DockableWindowSpec is one add-in dockable window (M05-F03, #247): a titled panel the host docks into its layout (or floats), holding declarative content the host renders. Setting it again replaces title/content; Dock is only the initial placement (the user's re-docking wins afterwards).

type DockableWindowSpec struct {
ID string `json:"id"`
Title string `json:"title"`
Dock types.DockingState `json:"dock,omitempty"`
Visible bool `json:"visible"`
Controls []PanelControlSpec `json:"controls,omitempty"`
}

type DocumentFileReferenceInfo

DocumentFileReferenceInfo is one entry of MethodDocumentsListFileReferences: the document-side view of a file reference, bridging to the resolved document when one was found.

type DocumentFileReferenceInfo struct {
DisplayName string `json:"displayName,omitempty"`
FullFileName string `json:"fullFileName"`
Status types.ReferenceStatus `json:"status"`
DocumentFound bool `json:"documentFound"`
DifferentDocument bool `json:"differentDocument,omitempty"`
}

type DocumentInfo

DocumentInfo is the JSON shape of an open document.

type DocumentInfo struct {
ID uint64 `json:"id"`
Name string `json:"name"`
Type string `json:"type"`
SubType string `json:"subType,omitempty"` // add-in flavored subtype id (M05-F15)
Dirty bool `json:"dirty"`
Visible bool `json:"visible"`
Active bool `json:"active"`
}

type DocumentSubTypeInfo

DocumentSubTypeInfo is one entry of MethodDocumentsListSubTypes.

type DocumentSubTypeInfo struct {
ID string `json:"id"`
BaseType string `json:"baseType"`
DisplayName string `json:"displayName,omitempty"`
}

type DocumentUnitsInfo

DocumentUnitsInfo is the document's display-unit preferences and precision (response of MethodDocumentsGetUnits, request body of partial updates via SetDocumentUnitsArgs). Unit fields carry unit-name spellings ("mm", "deg", "kg", "s"); the precisions are decimal places; LengthDisplayFormat is a types.ParameterDisplayFormat spelling ("decimal"/"fractional"/"architectural").

type DocumentUnitsInfo struct {
LengthUnit string `json:"lengthUnit"`
AngleUnit string `json:"angleUnit"`
MassUnit string `json:"massUnit"`
TimeUnit string `json:"timeUnit"`
LengthDisplayPrecision int `json:"lengthDisplayPrecision"`
AngleDisplayPrecision int `json:"angleDisplayPrecision"`
LengthDisplayFormat string `json:"lengthDisplayFormat,omitempty"`
// WorkingScaleCm is the centimetre size of one stored (working) length unit (ADR-0042
// Phase 2). The kernel stores and reports geometry in working units; 1.0 means they are
// centimetres (the default). A document centred on an extreme unit (µm/pm, km) reports a
// different value, so an add-in reading raw geometry quantities multiplies by the
// appropriate power of this to recover centimetres. Omitted (0) means the centimetre default.
WorkingScaleCm float64 `json:"workingScaleCm,omitempty"`
}

type DragContext

DragContext rides every drag event: where the gesture started, the current pointer ray, the modifiers, and any point inference the position snapped to.

type DragContext struct {
Start types.Point `json:"start"`
RayOrigin types.Point `json:"rayOrigin"`
RayDir types.Vector `json:"rayDir"`
Shift bool `json:"shift,omitempty"`
Ctrl bool `json:"ctrl,omitempty"`
Inference types.PointInferenceKind `json:"inference,omitempty"`
}

type DrawingAnnotationInfo

DrawingAnnotationInfo is the JSON shape of one drawing annotation.

type DrawingAnnotationInfo struct {
Name string `json:"name"`
Kind string `json:"kind"` // types.DrawingAnnotationKind ("cog"/"revisionCloud"/"centerMark"/"centerline"/"featureControlFrame"/"datumFeature"/"surfaceTexture"/"partsList"/"balloon"/"holeTable")
ViewName string `json:"viewName,omitempty"` // the view a CoG marker / centre mark is on
Tag string `json:"tag,omitempty"` // a revision cloud's label
CurveCount int `json:"curveCount"`
RowCount int `json:"rowCount,omitempty"` // a parts list's data-row count (BOM items)
}

type DrawingCurveSegment

DrawingCurveSegment is one projected edge segment in sheet millimetres: its endpoints, its visibility (solid vs dashed), and the hex reference key of the source model edge.

type DrawingCurveSegment struct {
AX float64 `json:"ax"`
AY float64 `json:"ay"`
BX float64 `json:"bx"`
BY float64 `json:"by"`
Visible bool `json:"visible"`
Kind string `json:"kind,omitempty"` // types.DrawingCurveKind ("edge" default; section/hatch/break)
EdgeKey string `json:"edgeKey,omitempty"`
}

type DrawingDimensionInfo

DrawingDimensionInfo is the JSON shape of one drawing dimension.

type DrawingDimensionInfo struct {
Name string `json:"name"`
Type string `json:"type"` // types.DrawingDimensionType: aligned|horizontal|vertical|radius|diameter|angular|ordinate|arcLength
ViewName string `json:"viewName"`
ValueMM float64 `json:"valueMm"` // measured model distance (mm), scale-independent; 0 for angular
ValueDeg float64 `json:"valueDeg,omitempty"` // measured angle (degrees) for an angular dimension
Text string `json:"text"` // displayed dimension text
CurveCount int `json:"curveCount"`
}

type DrawingSketchInfo

DrawingSketchInfo flattens a drawing sketch for the wire.

type DrawingSketchInfo struct {
Name string `json:"name"`
EntityCount int `json:"entityCount"`
CurveCount int `json:"curveCount"`
}

type DrawingSketchResult

DrawingSketchResult is the response of the sketch add methods: the affected sketch.

type DrawingSketchResult struct {
Sketch DrawingSketchInfo `json:"sketch"`
}

type DrawingViewInfo

DrawingViewInfo is the JSON shape of one drawing view.

type DrawingViewInfo struct {
Name string `json:"name"`
Type string `json:"type"` // types.DrawingViewType spelling (base/projected/auxiliary/…)
Projected bool `json:"projected"` // true only for an orthographic projected view
BaseView string `json:"baseView,omitempty"` // the parent view (projected/auxiliary/…)
Orientation string `json:"orientation"` // types.BaseViewOrientation spelling
Direction string `json:"direction,omitempty"` // types.ProjectionDirection (projected views)
FoldAngleDeg float64 `json:"foldAngleDeg,omitempty"` // fold-line angle on the parent (auxiliary views)
Scale float64 `json:"scale"`
Style string `json:"style"` // types.DrawingViewStyle spelling
CenterXMM float64 `json:"centerXmm"`
CenterYMM float64 `json:"centerYmm"`
VisibleCount int `json:"visibleCount"`
HiddenCount int `json:"hiddenCount"`
}

type DriveDimensionArgs

DriveDimensionArgs is the request of MethodSketchDriveDimension: which dimension (by collection index) to edit, an optional new value (a unit-bearing expression; empty leaves it), whether to set its driven flag (SetDriven + Driven), and optional limits.

type DriveDimensionArgs struct {
SketchIndex int `json:"sketchIndex"`
DimensionIndex int `json:"dimensionIndex"`
Expression string `json:"expression,omitempty"`
SetDriven bool `json:"setDriven,omitempty"`
Driven bool `json:"driven,omitempty"`
SetLimits bool `json:"setLimits,omitempty"`
Min float64 `json:"min,omitempty"`
Max float64 `json:"max,omitempty"`
}

type DriveFrame

DriveFrame is one step of a drive: the driven value and the occurrence placements the assembly solved to there. Collided marks the frame at which interference was detected.

type DriveFrame struct {
Value float64 `json:"value"`
Placements []DrivePlacement `json:"placements"`
Collided bool `json:"collided,omitempty"`
}

type DriveJointArgs

DriveJointArgs is the request of MethodAssemblyDrivePreview: sweep the joint with the given id through Settings and return the resulting frames.

type DriveJointArgs struct {
Joint uint64 `json:"joint"`
Settings DriveSettingsDTO `json:"settings"`
}

type DrivePlacement

DrivePlacement is one occurrence's resulting transform at a drive frame (row-major, in the assembly's space).

type DrivePlacement struct {
Occurrence uint64 `json:"occurrence"`
Transform types.Matrix `json:"transform"`
}

type DriveResult

DriveResult is the response of a drive preview: the frames in play order, and — when collision detection halted the sweep — the flag and the index of the last (collided) frame.

type DriveResult struct {
Frames []DriveFrame `json:"frames"`
StoppedByCollision bool `json:"stoppedByCollision,omitempty"`
StoppedAtStep int `json:"stoppedAtStep,omitempty"`
}

type DriveSettingsDTO

DriveSettingsDTO describes a sweep: which variable, the value range and (positive) step, repetitions, ping-pong, and the collision-stop flag. Units follow the variable — radians for angular, centimetres for linear.

type DriveSettingsDTO struct {
Variable string `json:"variable,omitempty"` // natural (default) | angular | linear
Start float64 `json:"start"`
End float64 `json:"end"`
Step float64 `json:"step"`
RepetitionCount int `json:"repetitionCount,omitempty"`
RepetitionStartEndStart bool `json:"repetitionStartEndStart,omitempty"`
CollisionDetection bool `json:"collisionDetection,omitempty"`
}

type DriveSketch3DDimensionArgs

DriveSketch3DDimensionArgs is the request of MethodSketch3DDriveDimension: which dimension to edit, an optional new value expression, and an optional driving/driven toggle (SetDriven gates whether Driven is applied).

type DriveSketch3DDimensionArgs struct {
SketchIndex int `json:"sketchIndex"`
DimensionIndex int `json:"dimensionIndex"`
Expression string `json:"expression,omitempty"`
SetDriven bool `json:"setDriven,omitempty"`
Driven bool `json:"driven,omitempty"`
}

type DrivingParametersResult

DrivingParametersResult lists the parameter names an expression references (response of MethodUnitsGetDrivingParameters).

type DrivingParametersResult struct {
Names []string `json:"names"`
}

type DuplicateAssetArgs

DuplicateAssetArgs creates a custom asset by copying an existing one under a new name (MethodAppearancesCreate/MethodMaterialsCreate).

type DuplicateAssetArgs struct {
BaseID string `json:"baseId"`
Name string `json:"name"`
}

type EdgesOfTypeArgs

EdgesOfTypeArgs filters the flat's classified edges to a single type ("bendUp", "bendDown" or "tangent"); an empty Type returns all classified edges.

type EdgesOfTypeArgs struct {
Type string `json:"type,omitempty"`
}

type EdgesResult

EdgesResult is the reply of edgesOfType: the matching classified edges.

type EdgesResult struct {
Edges []FlatEdgeInfo `json:"edges"`
}

type EditAssemblyFeatureArgs

EditAssemblyFeatureArgs is the request of MethodAssemblyFeaturesEdit: set editable scalars of assembly feature ID in place (the assembly-context Edit Feature), mirroring the part EditFeatureArgs. Scalar indices come from AssemblyFeatureInfo.Scalars; values are unit-bearing expressions ("5 mm", "30 deg"). Every edit is validated before any is applied, then the feature program recomputes once.

type EditAssemblyFeatureArgs struct {
ID uint64 `json:"id"`
Scalars []ScalarEdit `json:"scalars"`
}

type EditCommittedEvent

EditCommittedEvent is the JSON shape of an EventEditCommitted push event: a model mutation that was committed on a document, expressed as the very wire request that produced it. The host delivers it to an add-in's Notify entry point (ADR-0016); there is no request/response method and no client call — an add-in matches on Type.

It is the basis for operational replication in a collaboration session (oblikovati-meeting ADR-0004): a remote add-in can replay the edit by dispatching Method with Args through its own client, since the payload is the same frozen contract.

Method is a method-name constant from this package (e.g. MethodParametersSet); Args is that method's request DTO, left raw so the receiver decodes it with the matching type. Document is the affected document's id.

NOTE (v1 scope): only edits that arrive through the host's method router are emitted. Edits performed directly in the host UI are not yet captured — a known gap tracked in oblikovati-meeting ADR-0004.

type EditCommittedEvent struct {
Type string `json:"type"` // always EventEditCommitted
Document uint64 `json:"document"`
Method string `json:"method"`
Args json.RawMessage `json:"args,omitempty"`
}

type EditFeatureArgs

EditFeatureArgs is the request of MethodFeaturesEdit: edit the feature in place — set editable scalars AND/OR re-pick its geometric references. Every edit (scalar parse, slot resolution) is validated before ANY is applied, so a failed batch (bad value, unbindable key, wrong slot kind) leaves the definition untouched; then the part recomputes once. Scalar indices come from FeatureDetail.Scalars; Repick slot indices from FeatureDetail.Slots.

type EditFeatureArgs struct {
ID uint64 `json:"id"`
Scalars []ScalarEdit `json:"scalars,omitempty"`
Repick []FeatureRepick `json:"repick,omitempty"`
}

type EditHelixArgs

EditHelixArgs is the request of MethodSketch3DEditHelix: redefine an existing helical curve in place. Entity is the helix's session id. Mode, Pitch, Height, Revolutions, Taper and Clockwise have the same meaning as in AddSketch3DEntityArgs and replace the constant-shape definition; a non-empty Rows replaces the definition with a variable shape instead. Start/End set the end conditions (nil keeps the current ones). The curve is regenerated and dependents resolve against the new shape.

type EditHelixArgs struct {
SketchIndex int `json:"sketchIndex"`
Entity uint64 `json:"entity"`

Mode string `json:"mode,omitempty"`
Pitch string `json:"pitch,omitempty"`
Height string `json:"height,omitempty"`
Revolutions float64 `json:"revolutions,omitempty"`
Taper string `json:"taper,omitempty"`
Clockwise bool `json:"clockwise,omitempty"`

Rows []HelixShapeRow `json:"rows,omitempty"`
Start *HelixEndCondition `json:"start,omitempty"`
End *HelixEndCondition `json:"end,omitempty"`
}

type EditSketch3DResult

EditSketch3DResult is the response of MethodSketch3DEdit/MethodSketch3DExitEdit: the sketch index and its resulting edit state.

type EditSketch3DResult struct {
SketchIndex int `json:"sketchIndex"`
Editing bool `json:"editing"`
}

type EditSketchResult

EditSketchResult is the response of MethodSketchEdit / MethodSketchExitEdit: the sketch index and its resulting edit state.

type EditSketchResult struct {
SketchIndex int `json:"sketchIndex"`
Editing bool `json:"editing"`
}

type EditTextArgs

EditTextArgs is the request of MethodSketchEditText: edit the existing sketch text entity EntityID in sketch SketchIndex. Only the non-empty/non-nil fields are applied (a partial edit), so an add-in can change just the content or just the font. Height and FontSize are unit-bearing; Justify/VJustify use the AddTextArgs vocabularies.

type EditTextArgs struct {
SketchIndex int `json:"sketchIndex"`
EntityID uint64 `json:"entityId"`
Text *string `json:"text,omitempty"`
Height string `json:"height,omitempty"`
Rotation string `json:"rotation,omitempty"`
Justify string `json:"justify,omitempty"`
VJustify string `json:"vJustify,omitempty"`
Font string `json:"font,omitempty"`
FontSize string `json:"fontSize,omitempty"`
}

type EndMessageSectionArgs

EndMessageSectionArgs is the request of MethodErrorsEndSection.

type EndMessageSectionArgs struct {
Section int `json:"section"`
}

type EndOfFeaturesResult

EndOfFeaturesResult is the reply of MethodAssemblyGetEndOfFeatures: the marker position (-1 at the end) and whether the assembly is currently rolled back.

type EndOfFeaturesResult struct {
Position int `json:"position"`
RolledBack bool `json:"rolledBack"`
}

type EndOfPartResult

EndOfPartResult is the reply of MethodDocumentGetEndOfPart and MethodDocumentSetEndOfPart: the marker position (-1 at the end) and whether the part is currently rolled back.

type EndOfPartResult struct {
Position int `json:"position"`
RolledBack bool `json:"rolledBack"`
}

type EndProgressArgs

EndProgressArgs is the request of MethodProgressEnd.

type EndProgressArgs struct {
ID int `json:"id"`
}

type EnumerateEntities3DResult

EnumerateEntities3DResult is the response of MethodSketch3DEntities.

type EnumerateEntities3DResult struct {
Entities []Sketch3DEntityInfo `json:"entities"`
}

type EnumerateEntitiesResult

EnumerateEntitiesResult is the response of MethodSketchEntities.

type EnumerateEntitiesResult struct {
Entities []SketchEntityInfo `json:"entities"`
}

type EnumeratorPage

EnumeratorPage is the canonical paged-result envelope for query methods that enumerate large sets: embed it next to the items slice in the result DTO. NextCursor is the opaque position to pass back to fetch the following page; Done reports that no further pages exist. (logs.tail predates this envelope and keeps its frozen NextSeq spelling.)

type EnumeratorPage struct {
NextCursor uint64 `json:"nextCursor,omitempty"`
Done bool `json:"done,omitempty"`
}

type EnvironmentChangedEvent

EnvironmentChangedEvent is the push event (type EventEnvironmentChanged) fired when the UI environment switches (base ↔ sketch) — the OnEnvironmentChange equivalent, so add-ins re-aim their contextual UI.

type EnvironmentChangedEvent struct {
Type string `json:"type"` // always EventEnvironmentChanged
Environment types.Environment `json:"environment"`
}

type EnvironmentInfo

EnvironmentInfo is one entry of MethodUIListEnvironments: a UI environment the command framework scopes by (base = always shown; others are contextual tab sets), flagging the active one. Add-in-created environments are tracked by Oblikovati/Oblikovati#667.

type EnvironmentInfo struct {
Environment types.Environment `json:"environment"`
Name string `json:"name"`
Active bool `json:"active"`
}

type EnvironmentPresetInfo

EnvironmentPresetInfo is one entry of EnvironmentPresetListResult: a selectable built-in environment and whether it is the active one.

type EnvironmentPresetInfo struct {
Name string `json:"name"`
Active bool `json:"active"`
}

type EnvironmentPresetListResult

EnvironmentPresetListResult is the response of MethodEnvironmentListPresets.

type EnvironmentPresetListResult struct {
Presets []EnvironmentPresetInfo `json:"presets"`
}

type EnvironmentView

EnvironmentView is the JSON shape of the active IBL environment — the response of MethodEnvironmentGet / MethodEnvironmentSet / MethodEnvironmentLoadImage. Preset is the built-in name (empty when a file is loaded); FilePath is the loaded HDR (empty for a preset). Rotation is radians about vertical; Intensity scales the IBL; ShowImage draws the sky as the background.

type EnvironmentView struct {
Preset string `json:"preset"`
FilePath string `json:"filePath"`
Rotation float64 `json:"rotation"`
Intensity float64 `json:"intensity"`
ShowImage bool `json:"showImage"`
}

type ExecuteCommandArgs

ExecuteCommandArgs is the request of MethodCommandsExecute: the id of the command to run.

type ExecuteCommandArgs struct {
ID string `json:"id"`
}

type ExportDXFArgs

ExportDXFArgs is the request of MethodExportDXF: the host-side path to write and the DXF version to target. The active 2D sketch is exported. Version is a types.DXFVersion string ("r2000" or "r2018"); empty defaults to r2000.

type ExportDXFArgs struct {
Path string `json:"path"`
Version string `json:"version,omitempty"`
}

type ExportDXFResult

ExportDXFResult is the response of MethodExportDXF: how many sketch curves were written.

type ExportDXFResult struct {
EntityCount int `json:"entityCount"`
}

type ExportDrawingDXFArgs

ExportDrawingDXFArgs is the request of MethodDrawingExportDXF: write the active sheet to the DXF file at Path. Version is a types.DXFVersion spelling ("r2000"/"r2018"; "" ⇒ r2000).

type ExportDrawingDXFArgs struct {
Path string `json:"path"`
Version string `json:"version,omitempty"`
}

type ExportDrawingDXFResult

ExportDrawingDXFResult is the response of MethodDrawingExportDXF: the file written and the number of DXF entities (view edges, border and title-block lines/text) in it.

type ExportDrawingDXFResult struct {
Path string `json:"path"`
Entities int `json:"entities"`
}

type ExportRequest

ExportRequest is the request of MethodDocumentsExport: write the active part's bodies to Path in Format at the given tessellation Resolution (an oblikovati.org/api/types.MeshResolution string; "" ⇒ medium).

type ExportRequest struct {
Path string `json:"path"`
Format string `json:"format"`
Resolution string `json:"resolution,omitempty"`
}

type ExportResponse

ExportResponse is the reply of MethodDocumentsExport: the total triangle count written and any non-fatal warnings.

type ExportResponse struct {
TriangleCount int `json:"triangleCount"`
Warnings []string `json:"warnings,omitempty"`
}

type ExpressionArgs

ExpressionArgs is the request of the expression methods that auto-detect the unit: MethodUnitsGetDatabaseUnitsFromExpression, MethodUnitsGetLocaleCorrectedExpression, and MethodUnitsGetDrivingParameters.

type ExpressionArgs struct {
Expression string `json:"expression"`
}

type ExpressionListInfo

ExpressionListInfo is the JSON shape of a parameter's multi-value choices. An absent/empty Expressions means the parameter is single-valued.

type ExpressionListInfo struct {
Expressions []string `json:"expressions,omitempty"`
AllowCustomValues bool `json:"allowCustomValues,omitempty"`
CustomOrder bool `json:"customOrder,omitempty"`
}

type ExpressionValidResult

ExpressionValidResult reports whether an expression is valid for the target category, with the parse/dimension error when not (response of MethodUnitsIsExpressionValid).

type ExpressionValidResult struct {
Valid bool `json:"valid"`
Error string `json:"error,omitempty"`
}

type ExpressionWithTypeArgs

ExpressionWithTypeArgs is the request of the expression methods that need a target category: MethodUnitsGetValueFromExpression, MethodUnitsIsExpressionValid, and MethodUnitsCompatibleUnits. UnitsType is a types.UnitsType spelling.

type ExpressionWithTypeArgs struct {
Expression string `json:"expression"`
UnitsType string `json:"unitsType"`
}

type FaceEvaluateArgs

FaceEvaluateArgs is the request of MethodBodyFaceEvaluate: a batched evaluation of one face's surface, addressed by reference key. Inputs is a flat array — (u, v) parameter pairs for the parametric modes, or (x, y, z) point triples (database units, cm) for closestPoint. Batching matters: callers that sample a surface densely (surface-following toolpaths, drop-cutter projection) issue one request, not one per point.

type FaceEvaluateArgs struct {
BodyIndex int `json:"bodyIndex"`
FaceKey string `json:"faceKey"`
Mode string `json:"mode"`
Inputs []float64 `json:"inputs,omitempty"`
}

type FaceEvaluateResult

FaceEvaluateResult is the response of MethodBodyFaceEvaluate. Only the arrays relevant to the requested mode are populated; each is flat and parallel to the inputs (xyz triples for points/normals/tangents, uv pairs for UVs). ParamRange is always returned as [uMin, vMin, uMax, vMax] (infinite surface domains are clamped to a finite window). Points and tangents are in database units (cm); normals are unit vectors.

type FaceEvaluateResult struct {
Points []float64 `json:"points,omitempty"`
Normals []float64 `json:"normals,omitempty"`
UTangents []float64 `json:"uTangents,omitempty"`
VTangents []float64 `json:"vTangents,omitempty"`
UVs []float64 `json:"uvs,omitempty"`
ParamRange []float64 `json:"paramRange"`
}

type FaceFacetsArgs

FaceFacetsArgs is the request of MethodFaceCalculateFacets and MethodFaceCalculateStrokes: one face addressed by its reference key.

type FaceFacetsArgs struct {
BodyIndex int `json:"bodyIndex"`
FaceKey string `json:"faceKey"`
Tolerance float64 `json:"tolerance"`
}

type FaceShellInfo

FaceShellInfo is one shell in MethodBodyShells's result.

type FaceShellInfo struct {
Index int `json:"index"`
// Closed: the shell bounds a region; Void: it is an inner cavity skin.
Closed bool `json:"closed"`
Void bool `json:"void,omitempty"`
Faces int `json:"faces"`
Edges int `json:"edges"`
// Volume is the magnitude of the bounded region's volume in cm³.
Volume float64 `json:"volume"`
// RangeBox is [minX, minY, minZ, maxX, maxY, maxZ].
RangeBox []float64 `json:"rangeBox,omitempty"`
// Key is the persistent reference key; TransientKey the session id.
Key string `json:"key"`
TransientKey uint64 `json:"transientKey"`
}

type FacesResult

FacesResult is the reply of faces: the developed flat's classified faces (front and back).

type FacesResult struct {
Faces []FlatFaceInfo `json:"faces"`
}

type FacetSetResult

FacetSetResult is the facet payload: triangle mesh plus the per-face triangle-index counts (in body face order; one entry for a face-level set).

type FacetSetResult struct {
VertexCount int `json:"vertexCount"`
FacetCount int `json:"facetCount"`
VertexCoordinates []float64 `json:"vertexCoordinates,omitempty"`
NormalVectors []float64 `json:"normalVectors,omitempty"`
VertexIndices []int `json:"vertexIndices,omitempty"`
TextureCoordinates []float64 `json:"textureCoordinates,omitempty"`
IndexCountPerFace []int `json:"indexCountPerFace,omitempty"`
}

type FacetTolerancesResult

FacetTolerancesResult is the response of MethodBodyFacetTolerances and MethodBodyStrokeTolerances: the tolerances cached sets exist at, ascending.

type FacetTolerancesResult struct {
Tolerances []float64 `json:"tolerances,omitempty"`
}

type FeatureDetail

FeatureDetail is one placed feature with its history position and the editable inputs MethodFeaturesEdit accepts: scalar fields (FeatureScalar) and re-pickable geometry slots (FeatureSlot). Both are empty for features whose definition exposes nothing of that kind (e.g. a cosmetic feature has neither).

type FeatureDetail struct {
FeatureInfo
Index int `json:"index"`
Scalars []FeatureScalar `json:"scalars,omitempty"`
Slots []FeatureSlot `json:"slots,omitempty"`
}

type FeatureDetailResult

FeatureDetailResult is the response of MethodFeaturesGet, MethodFeaturesEdit, MethodFeaturesRename, MethodFeaturesSetSuppressed, and MethodFeaturesReorder: the feature's refreshed state after the call (post-recompute health included).

type FeatureDetailResult struct {
Feature FeatureDetail `json:"feature"`
}

type FeatureError

FeatureError is one feature that failed to evaluate during an update/rebuild: its stable id (from model.tree), display name, kind, and the reason it is sick.

type FeatureError struct {
ID uint64 `json:"id"`
Name string `json:"name"`
Kind string `json:"kind"`
Message string `json:"message,omitempty"`
}

type FeatureHealth

FeatureHealth is one feature's health on the wire: its Name, Status ("ok"/"warning"/"sick"/ "suppressed", matching oblikovati.org/api/types.HealthStatus) and a Reason when not OK.

type FeatureHealth struct {
Name string `json:"name"`
Status string `json:"status"`
Reason string `json:"reason,omitempty"`
}

type FeatureInfo

FeatureInfo is the JSON shape of one feature in the model tree. Health is empty when the feature is healthy.

type FeatureInfo struct {
ID uint64 `json:"id"`
Name string `json:"name"`
Kind string `json:"kind"`
Suppressed bool `json:"suppressed"`
Health string `json:"health,omitempty"`
}

type FeatureKindInfo

FeatureKindInfo is the self-describing entry for one feature operation: its name, summary, and JSON Schema for arguments — enough for a client (or an LLM) to call MethodFeaturesAdd.

type FeatureKindInfo struct {
Kind string `json:"kind"`
Summary string `json:"summary"`
Schema json.RawMessage `json:"schema"`
}

type FeatureLifecycleEvent

FeatureLifecycleEvent is the JSON shape of the EventFeatureAdded / EventFeatureEdited / EventFeatureDeleted push events (#148): a feature was created, modified, or removed on a document. Delivered to an add-in's Notify entry point (ADR-0016) with no request/response — an add-in matches on Type and reads the affected feature's identity from the payload (so it need not diff model.tree). Kind is the feature's operation kind (e.g. "extrude", "circular- pattern"); Name is its tree name. The Feature id is stable across rename/reorder.

Fires for both UI-driven and add-in-driven feature creation, editing, and deletion — the host emits at its session-level feature seams, so an interactive extrude and a features.add call alike reach the add-in (Oblikovati/Oblikovati#1085, lifting #148's router-only v1 scope). The batched ModelChangedEvent remains the coarse signal that also covers other model paths.

type FeatureLifecycleEvent struct {
Type string `json:"type"` // EventFeatureAdded, EventFeatureEdited, or EventFeatureDeleted
Document uint64 `json:"document"`
Feature uint64 `json:"feature"`
Name string `json:"name,omitempty"`
Kind string `json:"kind,omitempty"`
}

type FeatureRefArgs

FeatureRefArgs is the request of MethodFeaturesGet and MethodFeaturesDelete: one placed feature, addressed by the stable id from FeatureInfo (model.tree). The id survives rename and reorder; an index does not, so the wire never uses one to address a feature.

type FeatureRefArgs struct {
ID uint64 `json:"id"`
}

type FeatureRepick

FeatureRepick re-points one geometric Slot (a FeatureSlot index) of a placed feature. The fields read by the slot's Kind:

  • edges/faces/face: Ref is a topology reference key from MethodModelReferenceKeys.
  • profile: SketchIndex + ProfileIndex name a sketch region (from model.tree / sketch.profiles).
  • plane: Ref is a planar-face key, a work-plane ref ("plane/N"), or an origin plane ("origin/plane/xy").

Clear empties a clearable multi-slot (edges/faces) and ignores the other fields.

type FeatureRepick struct {
Slot int `json:"slot"`
Ref string `json:"ref,omitempty"`
SketchIndex int `json:"sketchIndex,omitempty"`
ProfileIndex int `json:"profileIndex,omitempty"`
Clear bool `json:"clear,omitempty"`
}

type FeatureScalar

FeatureScalar describes one editable scalar of a placed feature — a distance, radius, angle, or pattern count — mirroring WorkPlaneScalar: its slot Index, Label, the Unit its value is shown in ("mm", "deg", …), and the current Value in that unit. Integer marks a whole-number input (a pattern count). An edit sets it via ScalarEdit keyed on Index.

type FeatureScalar struct {
Index int `json:"index"`
Label string `json:"label"`
Unit string `json:"unit,omitempty"`
Value float64 `json:"value"`
Integer bool `json:"integer,omitempty"`
}

type FeatureSlot

FeatureSlot describes one re-pickable geometric input of a placed feature — the edges of a fillet, the removed faces of a shell, a hole's face, an extrude's profile, a mirror's plane. Index addresses it in a FeatureRepick; Kind ("edges"|"faces"|"face"| "profile"|"plane") says what reference it accepts; Multi marks a slot that accumulates several references (edges/faces) and can be cleared; Count is how many it currently holds.

type FeatureSlot struct {
Index int `json:"index"`
Label string `json:"label"`
Kind string `json:"kind"`
Multi bool `json:"multi,omitempty"`
Count int `json:"count"`
}

type FileDialogChosenEvent

FileDialogChosenEvent is the push event (type EventFileDialogChosen) that delivers the user's choice; Cancelled true means they dismissed the dialog.

type FileDialogChosenEvent struct {
Type string `json:"type"` // always EventFileDialogChosen
ID string `json:"id"`
Paths []string `json:"paths,omitempty"`
Cancelled bool `json:"cancelled,omitempty"`
}

type FileDialogHookPayload

FileDialogHookPayload is the JSON shape of the file-UI hook events (EventFileNew, EventFileNewDialog, EventFileOpenDialog, EventFileSaveAsDialog, EventFileOpenFromMRU, EventFilePopulateMetadata). Only the fields relevant to the hook are set: DocumentType for a new document, TemplateFile/FileName for the dialog flows (the path a subscriber pre-seeded, or the one the user chose), SaveCopyAs for the save-as variant, Metadata for the populate-metadata collection.

type FileDialogHookPayload struct {
Type string `json:"type"`
DocumentType types.DocumentType `json:"documentType,omitempty"`
TemplateFile string `json:"templateFile,omitempty"`
FileName string `json:"fileName,omitempty"`
SaveCopyAs bool `json:"saveCopyAs,omitempty"`
Metadata []FileMetadataEntry `json:"metadata,omitempty"`
}

type FileDirtyEventPayload

FileDirtyEventPayload is the JSON shape of EventFileDirty: a document gained unsaved changes (the clean→dirty transition; further edits while already dirty do not re-fire).

type FileDirtyEventPayload struct {
Type string `json:"type"` // always EventFileDirty
Document uint64 `json:"document"`
FullDocumentName string `json:"fullDocumentName"`
}

type FileInfo

FileInfo is the response of MethodFilesGet: one file's identity and load state. InternalName is the stable GUID minted at creation; RevisionID stamps the file's content as of its last save, DatabaseRevisionID stamps only the model (geometry/reference) content, so an unchanged model keeps its database revision across property-only saves.

type FileInfo struct {
FullFileName string `json:"fullFileName"`
InternalName string `json:"internalName"`
RevisionID string `json:"revisionId"`
DatabaseRevisionID string `json:"databaseRevisionId"`
SaveCounter int `json:"saveCounter"`
VersionCreated string `json:"versionCreated,omitempty"`
VersionSaved string `json:"versionSaved,omitempty"`
Loaded bool `json:"loaded"`
Referenced bool `json:"referenced"`
Documents []uint64 `json:"documents,omitempty"`
}

type FileMetadataEntry

FileMetadataEntry is one name/value pair collected by the EventFilePopulateMetadata hook (file properties gathered around a save).

type FileMetadataEntry struct {
Name string `json:"name"`
Value string `json:"value"`
}

type FileReferenceInfo

FileReferenceInfo is one persisted file-to-file reference record of MethodFilesListReferences — the as-saved logical name (relative + library), where it resolved this session, and the broken-reference detail flags that explain a non-upToDate status.

type FileReferenceInfo struct {
FullFileName string `json:"fullFileName"`
RelativeFileName string `json:"relativeFileName,omitempty"`
LibraryName string `json:"libraryName,omitempty"`
LocationType types.FileLocationType `json:"locationType"`
ResolvedFileName string `json:"resolvedFileName,omitempty"`
ReferencedInternalName string `json:"referencedInternalName,omitempty"`
SaveCounter int `json:"saveCounter,omitempty"`
Status types.ReferenceStatus `json:"status"`
Missing bool `json:"missing,omitempty"`
Replaced bool `json:"replaced,omitempty"`
LocationDifferent bool `json:"locationDifferent,omitempty"`
InternalNameDifferent bool `json:"internalNameDifferent,omitempty"`
}

type FileResolutionEventPayload

FileResolutionEventPayload is the JSON shape of EventFileResolution: a referenced document name failed to resolve. ResolvedName is the substitute a subscriber supplied ("" when nothing resolved it and the open failed).

type FileResolutionEventPayload struct {
Type string `json:"type"` // always EventFileResolution
RequestedName string `json:"requestedName"`
ResolvedName string `json:"resolvedName,omitempty"`
}

type FindByAttributeArgs

FindByAttributeArgs is the request of MethodAttributesFind: locate the open documents carrying an attribute in Set; restrict to a given Name when it is non-empty.

type FindByAttributeArgs struct {
Set string `json:"set"`
Name string `json:"name,omitempty"`
}

type FindByAttributeResult

FindByAttributeResult is the response of MethodAttributesFind: every match across open documents.

type FindByAttributeResult struct {
Matches []AttributeMatch `json:"matches"`
}

type FindUsingRayArgs

FindUsingRayArgs is the request of MethodBodyFindUsingRay.

type FindUsingRayArgs struct {
BodyIndex int `json:"bodyIndex"`
Origin []float64 `json:"origin"`
Direction []float64 `json:"direction"`
// Radius widens the ray into a pick cylinder for edges and vertices.
Radius float64 `json:"radius,omitempty"`
FindFirstOnly bool `json:"findFirstOnly,omitempty"`
}

type FindUsingRayResult

FindUsingRayResult is the response of MethodBodyFindUsingRay, nearest first.

type FindUsingRayResult struct {
Hits []LocatedEntityInfo `json:"hits,omitempty"`
}

type FitPointCloudPlaneArgs

FitPointCloudPlaneArgs is the request of MethodPointCloudsFitPlane: fit a work plane to the named cloud's currently displayed points — those in model space passing the cloud's active crops — so cropping to a planar region first selects what the plane is fitted to.

type FitPointCloudPlaneArgs struct {
Cloud string `json:"cloud"`
}

type FitPointCloudPlaneResult

FitPointCloudPlaneResult is the response of MethodPointCloudsFitPlane: the created work plane's browser name, and the fitted plane's Origin (the points' centroid) and unit Normal (the least-variance direction). Normal is a direction, not a position.

type FitPointCloudPlaneResult struct {
WorkPlane string `json:"workPlane"`
Origin types.Point `json:"origin"`
Normal types.Point `json:"normal"`
}

type FlatBendLineInfo

FlatBendLineInfo is one fold line in the flat pattern: the segment (in base-plane 2D, cm) and the bend angle in degrees — what a DXF export draws on the bend layer.

type FlatBendLineInfo struct {
Start types.Point2d `json:"start"`
End types.Point2d `json:"end"`
Angle float64 `json:"angle"`
}

type FlatEdgeInfo

FlatEdgeInfo is one classified edge of the developed flat: the fold/tangent line segment (in flat 2D, database units cm) and its type, plus the bend angle for a fold line.

type FlatEdgeInfo struct {
Start types.Point2d `json:"start"`
End types.Point2d `json:"end"`
Type string `json:"type"`
Angle float64 `json:"angle,omitempty"`
}

type FlatFaceInfo

FlatFaceInfo is one classified flat face: its type ("front"/"back"/…) and developed area (cm²).

type FlatFaceInfo struct {
Type string `json:"type"`
Area float64 `json:"area"`
}

type FlatPatternInfo

FlatPatternInfo is the developed flat: its 2D extents (the footprint bounding box in base-plane coordinates), the gauge, the developed footprint area, and the fold lines. All lengths are in database units (cm), matching the rest of the sheet-metal surface; areas in cm². It lets an add-in size stock and place bend lines before cutting.

type FlatPatternInfo struct {
Extents types.Box2d `json:"extents"`
Thickness float64 `json:"thickness"`
Area float64 `json:"area"`
Bends []FlatBendLineInfo `json:"bends"`
}

type FlatPatternOrientationInfo

FlatPatternOrientationInfo is one orientation, as reported by listOrientations and returned by addOrientation/activateOrientation. AlignmentRotation is in degrees; Length and Width are the flat's extents under this orientation (database units, cm). AlignmentAxis is a topology reference key, empty when the orientation uses the part's natural axes.

type FlatPatternOrientationInfo struct {
Name string `json:"name"`
AlignmentType string `json:"alignmentType"`
AlignmentRotation float64 `json:"alignmentRotation"`
AlignmentAxis string `json:"alignmentAxis,omitempty"`
FlipAlignmentAxis bool `json:"flipAlignmentAxis,omitempty"`
FlipBaseFace bool `json:"flipBaseFace,omitempty"`
Active bool `json:"active,omitempty"`
Length float64 `json:"length"`
Width float64 `json:"width"`
}

type FlatPatternSettings

FlatPatternSettings is the per-document flat-pattern settings. DeferUpdate suppresses the automatic flat-pattern recompute, so a heavy flat is only developed on demand.

type FlatPatternSettings struct {
DeferUpdate bool `json:"deferUpdate"`
}

type FontFace

FontFace is one selectable font in the picker: a family + style, its Source ("embedded" for an application-bundled face, "system" for a host-installed one), and — for a system face — the file Path whose bytes are embedded into the document when it is chosen (ADR-0031).

type FontFace struct {
Family string `json:"family"`
Style string `json:"style,omitempty"`
Source string `json:"source"` // "embedded" | "system"
Path string `json:"path,omitempty"` // system fonts only: the file to embed on select
}

type GeneralOptionsView

GeneralOptionsView is the "general" group: application-level behavior.

type GeneralOptionsView struct {
StartupAction types.StartupActionType `json:"startupAction"`
}

type GetAttributeArgs

GetAttributeArgs is the request of MethodAttributesGet: address one attribute by its set and name on the document, anchored to Target (empty = the document itself).

type GetAttributeArgs struct {
Document uint64 `json:"document"`
Set string `json:"set"`
Name string `json:"name"`
Target string `json:"target,omitempty"`
}

type GetCameraArgs

GetCameraArgs is the request of MethodViewGetCamera: which document's active-view camera to read. Document is optional and defaults to the active document (so a no-arg call reads the active document's active view, as before camera became per-view).

type GetCameraArgs struct {
Document uint64 `json:"document,omitempty"` // 0 ⇒ active document; reads that document's active view
}

type GetDisplaySettingsArgs

GetDisplaySettingsArgs is the request of MethodDocumentGetDisplaySettings: which document's settings to read (empty selects the active document).

type GetDisplaySettingsArgs struct {
Document string `json:"document,omitempty"`
}

type GetFileArgs

GetFileArgs is the request of MethodFilesGet and MethodFilesListReferences: the full file name of an open file.

type GetFileArgs struct {
FullFileName string `json:"fullFileName"`
}

type GetMarkingMenuArgs

GetMarkingMenuArgs is the request of MethodUIGetMarkingMenu.

type GetMarkingMenuArgs struct {
Environment types.Environment `json:"environment"`
}

type GetOptionGroupArgs

GetOptionGroupArgs is the request of MethodOptionsGetGroup.

type GetOptionGroupArgs struct {
Group string `json:"group"`
}

type GetPropertyArgs

GetPropertyArgs is the request of MethodDocumentsGetProperty: address one property by its set and name on the document.

type GetPropertyArgs struct {
Document uint64 `json:"document"`
Set string `json:"set"`
Name string `json:"name"`
}

type GetSketchSettingsArgs

GetSketchSettingsArgs is the request of MethodDocumentGetSketchSettings: the document whose sketch settings to read.

type GetSketchSettingsArgs struct {
Document uint64 `json:"document"`
}

type GetStyleArgs

GetStyleArgs is the request of MethodStylesGet / MethodStylesDelete: the style by name.

type GetStyleArgs struct {
Name string `json:"name"`
}

type GetTextArgs

GetTextArgs is the request of MethodSketchGetText: read back the style of sketch text entity EntityID in sketch SketchIndex.

type GetTextArgs struct {
SketchIndex int `json:"sketchIndex"`
EntityID uint64 `json:"entityId"`
}

type GraphicsColorMapper

GraphicsColorMapper maps scalar vertex values to colors — the heatmap legend. Values is an ascending list of scalar stops; Colors is the rgba quad for each stop (len(Colors) == 4*len(Values)). The host interpolates piecewise-linearly between stops and clamps outside the range. A primitive carrying both Scalars and ColorMapper resolves per-vertex colors from them.

type GraphicsColorMapper struct {
Values []float64 `json:"values"`
Colors []float32 `json:"colors"`
}

type GraphicsNode

GraphicsNode groups primitives under one transform and visibility/opacity. Transform (optional 16-element row-major matrix) places the node's geometry; Visible nil means "inherit the group's visibility".

type GraphicsNode struct {
Id string `json:"id,omitempty"`
Transform []float64 `json:"transform,omitempty"`
Visible *bool `json:"visible,omitempty"`
Opacity float32 `json:"opacity,omitempty"`
Primitives []GraphicsPrimitive `json:"primitives"`

// Selectable makes the node's primitives pickable (default false: overlay graphics do not
// intercept picks). ComponentKey anchors the node to a component/feature by reference key so
// it transforms with that owner rather than the document root (the ComponentGraphics case).
Selectable bool `json:"selectable,omitempty"`
ComponentKey string `json:"componentKey,omitempty"`
}

type GraphicsPrimitive

GraphicsPrimitive is one drawable primitive in a node (a line, point, triangle, or text primitive). Geometry travels inline as flat arrays.

  • Kind is a oblikovati.org/api/types.GraphicsPrimitiveKind value.
  • Coordinates/Indices define the vertices and topology.
  • Per-vertex color is resolved in priority order: Colors (rgba quads) if present; else Scalars+ColorMapper; else the overall Color broadcast to every vertex.
  • ColorBinding/NormalBinding are the binding modes (types.GraphicsColorBinding/…).
  • Text/Anchor/FontSize apply to the "text" kind (Anchor is the xyz world anchor).
  • OnTop draws the primitive ignoring the depth test (always visible, drawn through occluders); Opacity 0..1 (0 = use the lane/node default, i.e. opaque).
type GraphicsPrimitive struct {
Kind string `json:"kind"`
Coordinates []float64 `json:"coordinates,omitempty"`
Indices []int `json:"indices,omitempty"`
Colors []float32 `json:"colors,omitempty"`
Normals []float64 `json:"normals,omitempty"`
Scalars []float64 `json:"scalars,omitempty"`
ColorMapper *GraphicsColorMapper `json:"colorMapper,omitempty"`
Color []float32 `json:"color,omitempty"`
ColorBinding string `json:"colorBinding,omitempty"`
NormalBinding string `json:"normalBinding,omitempty"`
LineType string `json:"lineType,omitempty"`
LineWeight float64 `json:"lineWeight,omitempty"`
PointStyle string `json:"pointStyle,omitempty"`
PointSize float64 `json:"pointSize,omitempty"`
Text string `json:"text,omitempty"`
Anchor []float64 `json:"anchor,omitempty"`
FontSize float64 `json:"fontSize,omitempty"`
Opacity float32 `json:"opacity,omitempty"`
OnTop bool `json:"onTop,omitempty"`
DepthPriority int `json:"depthPriority,omitempty"`

// Body-derived primitives ("surface"/"curve"): render an existing B-rep body/face/edge by
// its persistent reference key (BodyKey) or transient handle (TransientKey) with the override
// Color/Transform — the geometry stays host-side (no mesh shipped over the wire).
BodyKey string `json:"bodyKey,omitempty"`
TransientKey uint64 `json:"transientKey,omitempty"`

// Image billboards ("image"): ImagePath is the source image; ImageWidth/ImageHeight size the
// quad (model units, or pixels when Behavior is pixel-scaling); Anchor is its world point.
ImagePath string `json:"imagePath,omitempty"`
ImageWidth float64 `json:"imageWidth,omitempty"`
ImageHeight float64 `json:"imageHeight,omitempty"`

// TextureCoords are uv pairs (len%2==0, one per vertex) for an image-mapped overlay mesh.
TextureCoords []float64 `json:"textureCoords,omitempty"`

// MapperName references a color mapper registered via [MethodClientGraphicsRegisterMapper]
// (an alternative to the inline ColorMapper) so a legend is shared across primitives.
MapperName string `json:"mapperName,omitempty"`

// Selectable makes this primitive participate in picking (nil = inherit the node default);
// Behavior is the view-relative behavior of an image/text billboard (front-facing / pixel
// scaling); LineSpace is the coordinate space a line's width/pattern is defined in.
Selectable *bool `json:"selectable,omitempty"`
Behavior types.DisplayTransformBehaviorEnum `json:"behavior,omitempty"`
LineSpace types.LineDefinitionSpaceEnum `json:"lineSpace,omitempty"`
}

type GroundOccurrenceArgs

GroundOccurrenceArgs is the request of MethodAssemblyGround: fix (Grounded=true) or release the occurrence with id ID in the assembly's space.

type GroundOccurrenceArgs struct {
ID uint64 `json:"id"`
Grounded bool `json:"grounded"`
}

type GroundPlaneView

GroundPlaneView is the JSON shape of a document's ground-plane settings — a member of DisplaySettingsView. Lengths are cm; Opacity/Reflectivity in [0,1].

type GroundPlaneView struct {
Visible bool `json:"visible"`
Color types.Color `json:"color"`
HeightOffset float64 `json:"heightOffset"`
DisplayGridLines bool `json:"displayGridLines"`
MinorGridLineSpacing float64 `json:"minorGridLineSpacing"`
MinorLinesPerMajorGridLine int `json:"minorLinesPerMajorGridLine"`
Opacity float64 `json:"opacity"`
Reflectivity float64 `json:"reflectivity"`
}

type HasDocumentInterestArgs

HasDocumentInterestArgs is the request of MethodDocumentsHasInterest: Client matches either a record's ClientID or its Name — the cheap discovery probe ("does anyone hold data here?").

type HasDocumentInterestArgs struct {
Document uint64 `json:"document"`
Client string `json:"client"`
}

type HasDocumentInterestResult

HasDocumentInterestResult is the response of MethodDocumentsHasInterest.

type HasDocumentInterestResult struct {
HasInterest bool `json:"hasInterest"`
}

type HelixDefinitionView

HelixDefinitionView is the response of MethodSketch3DEditHelix: the definition as stored. ShapeKind is the oblikovati.org/api/types.HelicalShapeDefinitionKind wire spelling; Variable reports a row-table definition (Rows then carries the resolved stations with both height and revolution filled in, in database units — diameter/pitch in cm). Start/End are always present with resolved angles in radians.

type HelixDefinitionView struct {
ShapeKind string `json:"shapeKind"`
Variable bool `json:"variable"`
Pitch float64 `json:"pitch,omitempty"`
Height float64 `json:"height,omitempty"`
Revolutions float64 `json:"revolutions,omitempty"`
Taper float64 `json:"taper,omitempty"`
Clockwise bool `json:"clockwise,omitempty"`
Rows []HelixShapeRow `json:"rows,omitempty"`
Start *HelixEndCondition `json:"start,omitempty"`
End *HelixEndCondition `json:"end,omitempty"`
}

type HelixEndCondition

HelixEndCondition is the treatment of one helix end. Kind is the oblikovati.org/api/types.HelixEndKind wire spelling (empty ⇒ "natural"); TransitionAngle and FlatAngle (unit-bearing angles) shape a flat end: the transition sweep blends from the true helix pitch down to flat, then the flat sweep continues at zero pitch.

type HelixEndCondition struct {
Kind string `json:"kind,omitempty"`
TransitionAngle string `json:"transitionAngle,omitempty"`
FlatAngle string `json:"flatAngle,omitempty"`
}

type HelixShapeRow

HelixShapeRow is one station of a variable-shape helix. Diameter and Pitch are unit-bearing lengths; exactly one of Height (unit-bearing length from the helix base) or Revolution (turn count from the start) positions the station, matching the definition's shape kind. Empty fields interpolate between neighboring rows.

type HelixShapeRow struct {
Diameter string `json:"diameter,omitempty"`
Pitch string `json:"pitch,omitempty"`
Height string `json:"height,omitempty"`
Revolution float64 `json:"revolution,omitempty"`
}

type HelpPathResult

HelpPathResult is the response of MethodHelpPath: a source's registered base.

type HelpPathResult struct {
Source string `json:"source,omitempty"`
Base string `json:"base"`
}

type HighlightSetInfo

HighlightSetInfo is one highlight set's summary: its name, "#rrggbb" colour, and how many references it holds. The response of create/addItems/setColor and a row of the list.

type HighlightSetInfo struct {
Name string `json:"name"`
Color string `json:"color"`
Count int `json:"count"`
}

type HighlightSetItemsArgs

HighlightSetItemsArgs is the request of MethodModelHighlightSetAddItems: add the given model references (from model.referenceKeys) to the named set.

type HighlightSetItemsArgs struct {
Name string `json:"name"`
Refs []string `json:"refs"`
}

type HighlightSetRefArgs

HighlightSetRefArgs addresses a highlight set by Name (MethodModelHighlightSetDelete).

type HighlightSetRefArgs struct {
Name string `json:"name"`
}

type ImportDWGArgs

ImportDWGArgs is the request of MethodImportDWG: the host-side path of a .dwg file and the target work plane for a 2D drawing. Plane names a plane from list_work_planes (e.g. "XY Plane", or a user work plane); empty defaults to the first origin plane. A non-planar drawing imports into a 3D sketch and ignores Plane. The DWG world origin maps onto the chosen plane's origin.

type ImportDWGArgs struct {
Path string `json:"path"`
Plane string `json:"plane,omitempty"`
}

type ImportDWGResult

ImportDWGResult is the response of MethodImportDWG: whether the drawing landed in a 3D sketch (vs a 2D sketch on the chosen plane), how many curve entities were added, and any per-entity warnings (unmapped/undecodable objects that were skipped).

type ImportDWGResult struct {
Is3D bool `json:"is3D"`
EntityCount int `json:"entityCount"`
Warnings []string `json:"warnings,omitempty"`
}

type ImportDXFArgs

ImportDXFArgs is the request of MethodImportDXF: the host-side path of a .dxf file and the target work plane for a 2D drawing. Plane names a plane from list_work_planes (e.g. "XY Plane", or a user work plane); empty defaults to the first origin plane. A non-planar drawing imports into a 3D sketch and ignores Plane. The DXF world origin maps onto the chosen plane's origin. (DXF is DWG's open text sibling; the import behaves identically.)

type ImportDXFArgs struct {
Path string `json:"path"`
Plane string `json:"plane,omitempty"`
}

type ImportDXFResult

ImportDXFResult is the response of MethodImportDXF: whether the drawing landed in a 3D sketch (vs a 2D sketch on the chosen plane), how many curve entities were added, and any per-entity warnings (unmapped/undecodable objects that were skipped).

type ImportDXFResult struct {
Is3D bool `json:"is3D"`
EntityCount int `json:"entityCount"`
Warnings []string `json:"warnings,omitempty"`
}

type ImportPDFArgs

ImportPDFArgs is the request of MethodImportPDF: the host-side path of a vector .pdf file and the target work plane for its 2D geometry. Plane names a plane from list_work_planes (e.g. "XY Plane", or a user work plane); empty defaults to the first origin plane. Every page imports onto the same plane (one 2D sketch per page), the PDF page origin mapping onto the plane origin.

type ImportPDFArgs struct {
Path string `json:"path"`
Plane string `json:"plane,omitempty"`
}

type ImportPDFResult

ImportPDFResult is the response of MethodImportPDF: whether any page landed in a 3D sketch (always false for the page-flat PDFs this importer targets, but kept parallel to the DWG/DXF results), how many curve entities were added across all pages, and any per-page warnings (unsupported operators, skipped text/raster content, or pages that could not be decoded).

type ImportPDFResult struct {
Is3D bool `json:"is3D"`
EntityCount int `json:"entityCount"`
Warnings []string `json:"warnings,omitempty"`
}

type ImportRequest

ImportRequest is the request of MethodDocumentsImport: read the file at Path (interpreted as Format — an oblikovati.org/api/types.ExchangeFormat string) into the active part as an imported-body feature. Options carries free-form translator knobs (e.g. "weldTolerance"); unknown keys are ignored.

type ImportRequest struct {
Path string `json:"path"`
Format string `json:"format"`
Options map[string]string `json:"options,omitempty"`
}

type ImportResponse

ImportResponse is the reply of MethodDocumentsImport: how many bodies were imported, whether the (first) body came in as a watertight solid (vs an open surface body), and any non-fatal warnings (non-manifold edges, dropped attributes).

type ImportResponse struct {
BodyCount int `json:"bodyCount"`
Solid bool `json:"solid"`
Warnings []string `json:"warnings,omitempty"`
}

type ImportStyleLibraryArgs

ImportStyleLibraryArgs is the request of MethodStylesImportLibrary: the path to a style library file to load into the cascade.

type ImportStyleLibraryArgs struct {
Path string `json:"path"`
}

type IncludeSketch2DArgs

IncludeSketch2DArgs is the request of MethodSketch3DIncludeSketch: include geometry of an existing 2D sketch into a 3D sketch as associative reference geometry, lifted through the 2D sketch's host plane. SketchIndex is the target 3D sketch; SourceSketchIndex is the source 2D sketch; EntityIDs are the session ids of the 2D points/curves to include.

type IncludeSketch2DArgs struct {
SketchIndex int `json:"sketchIndex"`
SourceSketchIndex int `json:"sourceSketchIndex"`
EntityIDs []uint64 `json:"entityIDs"`
}

type IncludeSketch3DArgs

IncludeSketch3DArgs is the request of MethodSketch3DInclude: include referenced part geometry (edges/vertices, by reference key) into a 3D sketch as associative reference geometry. Refs are the reference keys of the part edges/vertices to include.

type IncludeSketch3DArgs struct {
SketchIndex int `json:"sketchIndex"`
Refs []string `json:"refs"`
}

type IncludeSketch3DResult

IncludeSketch3DResult is the response of MethodSketch3DInclude: the session ids of the created included entities, and whether every reference resolved (Healthy false ⇒ a reference was lost, its include skipped).

type IncludeSketch3DResult struct {
Created []uint64 `json:"created,omitempty"`
Healthy bool `json:"healthy"`
}

type InferenceOptionsView

InferenceOptionsView is the sketch inference configuration: whether point and constraint inference run at all, and which constraint family wins when two could apply (the oblikovati.org/api/types.ConstraintInferencePriority wire spelling). It is the result of MethodSketchGetInferenceOptions and the request of MethodSketchSetInferenceOptions; on set, empty Priority keeps the current value.

type InferenceOptionsView struct {
InferEnabled bool `json:"inferEnabled"`
ConstrainEnabled bool `json:"constrainEnabled"`
Priority string `json:"priority,omitempty"`
}

type InteractionState

InteractionState is the JSON shape of the host's current interaction status — whether the local user is mid-action — the response of MethodInteractionState.

It exists so a collaboration add-in can gate incoming remote edits: applying a remote mutation while the local user is dragging a handle or running a tool risks a race in the host's recompute/undo state, so the add-in buffers remote operations while Busy is true (oblikovati-meeting ADR-0005).

Busy is the single predicate add-ins should branch on (true when an interactive tool or command is active, or an explicit transaction is open). ActiveCommand/ActiveTool name what is running, for diagnostics/UI; they are empty when nothing is active.

type InteractionState struct {
Busy bool `json:"busy"`
ActiveCommand string `json:"activeCommand,omitempty"`
ActiveTool string `json:"activeTool,omitempty"`
InTransaction bool `json:"inTransaction"`
}

type InterferenceResultInfo

InterferenceResultInfo is one overlapping pair: the two occurrence ids, the overlap volume (cm³), and a representative point inside the overlap.

type InterferenceResultInfo struct {
OccurrenceA uint64 `json:"occurrenceA"`
OccurrenceB uint64 `json:"occurrenceB"`
Volume float64 `json:"volume"`
Center types.Point `json:"center"`
}

type InterferenceResultsResult

Result envelopes.

type InterferenceResultsResult struct {
Results []InterferenceResultInfo `json:"results"`
TotalVolume float64 `json:"totalVolume,omitempty"`
}

type IsPointInsideArgs

IsPointInsideArgs is the request of MethodBodyIsPointInside. ShellIndex (when non-nil) classifies against one shell's bounded region instead of the whole body's material.

type IsPointInsideArgs struct {
BodyIndex int `json:"bodyIndex"`
ShellIndex *int `json:"shellIndex,omitempty"`
Point []float64 `json:"point"`
// OnTolerance is the distance treated as ON the boundary (0 → 1e-6 cm).
OnTolerance float64 `json:"onTolerance,omitempty"`
}

type IsPointInsideResult

IsPointInsideResult is the response of MethodBodyIsPointInside.

type IsPointInsideResult struct {
Containment string `json:"containment"`
}

type JointEventPayload

JointEventPayload is the body of the assembly joint events (EventAssemblyJointAdded, EventAssemblyJointDeleted): which assembly (Document), and the affected joint's id and kind.

type JointEventPayload struct {
Type string `json:"type"`
Document uint64 `json:"document"`
Joint uint64 `json:"joint"`
Kind string `json:"kind,omitempty"`
}

type JointInfo

JointInfo is one row of the assembly's joint set: its session id, kind, name, the two joint-origin geometry inputs, the flip flag, optional limits, the free DOF the joint leaves, health, and suppression.

type JointInfo struct {
ID uint64 `json:"id"`
Type string `json:"type"`
Name string `json:"name"`
A ConstraintGeomRef `json:"a"`
B ConstraintGeomRef `json:"b"`
Flip bool `json:"flip,omitempty"`
DegreesOfFreedom int `json:"degreesOfFreedom"`
Limits *JointLimits `json:"limits,omitempty"`
Health string `json:"health,omitempty"`
Suppressed bool `json:"suppressed,omitempty"`
}

type JointLimits

JointLimits bounds a joint's driven values: a linear range (slider/cylindrical translation, cm) and an angular range (rotational/cylindrical rotation, radians). Each bound is independently optional.

type JointLimits struct {
HasLinearMin bool `json:"hasLinearMin,omitempty"`
LinearMin float64 `json:"linearMin,omitempty"`
HasLinearMax bool `json:"hasLinearMax,omitempty"`
LinearMax float64 `json:"linearMax,omitempty"`

HasAngularMin bool `json:"hasAngularMin,omitempty"`
AngularMin float64 `json:"angularMin,omitempty"`
HasAngularMax bool `json:"hasAngularMax,omitempty"`
AngularMax float64 `json:"angularMax,omitempty"`
}

type KeyedObjectRef

KeyedObjectRef is one string-keyed object reference: the canonical element of an ObjectCollectionByVariant over the wire.

type KeyedObjectRef struct {
Key string `json:"key"`
Ref types.ObjectRef `json:"ref"`
}

type KeyedObjectRefList

KeyedObjectRefList is the ordered, string-keyed object-reference list.

type KeyedObjectRefList []KeyedObjectRef

type KeymapExport

KeymapExport is the response of MethodKeymapExport and the request of MethodKeymapImport: the user's full customization delta, portable across installs. Keys are action ids; chord values are canonical chord strings. Importing replaces the current customization.

type KeymapExport struct {
Chords map[string]string `json:"chords,omitempty"`
Aliases map[string]string `json:"aliases,omitempty"`
}

type LODInfo

LODInfo is one level-of-detail representation: its identity and the count of suppressed occurrences.

type LODInfo struct {
RepresentationInfo
SuppressedCount int `json:"suppressedCount,omitempty"`
}

type LODResult

Result envelopes.

type LODResult struct {
Representation LODInfo `json:"representation"`
}

type LODsResult

Result envelopes.

type LODsResult struct {
Representations []LODInfo `json:"representations"`
}

type LanguageInfoResult

LanguageInfoResult is the response of MethodLanguageInfo: the host's locale as a BCP-47 tag (e.g. "en-US"), for add-ins formatting numbers/dates to match. Translated-name catalogs do not exist yet; command display names are canonical (the #160 ADR records the declined translation surface).

type LanguageInfoResult struct {
Locale string `json:"locale"`
}

type LayoutResult

LayoutResult is the response of MethodViewsGetLayout / MethodViewsSetLayout: the document's current tiling layout.

type LayoutResult struct {
Document uint64 `json:"document,omitempty"`
Layout types.ViewLayout `json:"layout"`
}

type LightInfo

LightInfo is the JSON shape of one scene light — the element of LightListResult and the payload of MethodLightingAddLight / MethodLightingSetLight. Direction/Position are world-space (cm); Color is the light color and Intensity scales it.

type LightInfo struct {
Index int `json:"index"`
LightType types.LightTypeEnum `json:"lightType"`
LightDefinitionType types.LightDefinitionTypeEnum `json:"definitionType"`
On bool `json:"on"`
Color types.Rgba `json:"color"`
Intensity float64 `json:"intensity"`
Direction types.Vector `json:"direction"`
Position types.Point `json:"position"`
SpotInnerAngle float64 `json:"spotInnerAngle"`
SpotOuterAngle float64 `json:"spotOuterAngle"`
Attenuation [3]float64 `json:"attenuation"`
}

type LightListResult

LightListResult is the response of MethodLightingListLights.

type LightListResult struct {
Lights []LightInfo `json:"lights"`
}

type LightingStyleInfo

LightingStyleInfo is one entry of LightingStyleListResult: a selectable style and whether it is the active one.

type LightingStyleInfo struct {
Name string `json:"name"`
Active bool `json:"active"`
}

type LightingStyleListResult

LightingStyleListResult is the response of MethodLightingListStyles.

type LightingStyleListResult struct {
Styles []LightingStyleInfo `json:"styles"`
}

type LightingStyleView

LightingStyleView is the JSON shape of the active lighting style — the response of MethodLightingGetStyle and MethodLightingSetStyle.

type LightingStyleView struct {
Name string `json:"name"`
StyleType types.LightingStyleTypeEnum `json:"styleType"`
Ambience float64 `json:"ambience"`
Brightness float64 `json:"brightness"`
Exposure float64 `json:"exposure"`
IBLBrightness float64 `json:"iblBrightness"`
IBLRotation float64 `json:"iblRotation"`
ShadowDensity float64 `json:"shadowDensity"`
ShadowSoftness float64 `json:"shadowSoftness"`
ShadowDir types.ShadowDirectionEnum `json:"shadowDirection"`
}

type LineStyleInfo

LineStyleInfo is the JSON shape of a drawing line style.

type LineStyleInfo struct {
Name string `json:"name"`
WeightMM float64 `json:"weightMm"`
}

type ListAddInsResult

ListAddInsResult is the response of MethodAddInsList, in registration order.

type ListAddInsResult struct {
AddIns []AddInInfo `json:"addIns"`
}

type ListAppearancesResult

ListAppearancesResult / ListMaterialsResult are the list responses.

type ListAppearancesResult struct {
Appearances []AppearanceInfo `json:"appearances"`
}

type ListAttachmentsArgs

ListAttachmentsArgs is the request of MethodDocumentsListAttachments.

type ListAttachmentsArgs struct {
Document uint64 `json:"document"`
}

type ListAttachmentsResult

ListAttachmentsResult is the response of MethodDocumentsListAttachments.

type ListAttachmentsResult struct {
Attachments []AttachmentInfo `json:"attachments"`
}

type ListAttributeSetsArgs

ListAttributeSetsArgs is the request of MethodAttributesListSets: the document whose attribute set names to enumerate.

type ListAttributeSetsArgs struct {
Document uint64 `json:"document"`
}

type ListAttributeSetsResult

ListAttributeSetsResult is the response of MethodAttributesListSets: the set names, sorted.

type ListAttributeSetsResult struct {
Sets []string `json:"sets"`
}

type ListAttributesArgs

ListAttributesArgs is the request of MethodAttributesList: every attribute on the document, or only those in Set when it is non-empty. By default it lists the document-scoped attributes; set Target to list a specific entity's attributes, or set AllTargets to list every attribute on every target (each carrying its Target in the result).

type ListAttributesArgs struct {
Document uint64 `json:"document"`
Set string `json:"set,omitempty"`
Target string `json:"target,omitempty"`
AllTargets bool `json:"allTargets,omitempty"`
}

type ListAttributesResult

ListAttributesResult is the response of MethodAttributesList: the matching attributes in set then insertion order.

type ListAttributesResult struct {
Attributes []AttributeInfo `json:"attributes"`
}

type ListBindingsResult

ListBindingsResult is the response of MethodKeymapList: the full catalog, in a stable display order (commands first in registration order, then built-ins).

type ListBindingsResult struct {
Bindings []BindingInfo `json:"bindings"`
}

type ListBlockDefinitionsResult

ListBlockDefinitionsResult is the response of MethodSketchBlockDefinitionList: every block definition of the active part's component definition.

type ListBlockDefinitionsResult struct {
Definitions []SketchBlockDefinitionInfo `json:"definitions"`
}

type ListBlockInstancesResult

ListBlockInstancesResult is the response of MethodSketchListBlockInstances.

type ListBlockInstancesResult struct {
Instances []SketchBlockInfo `json:"instances"`
}

type ListBrowserPanesResult

ListBrowserPanesResult is the response of MethodBrowserListPanes: every add-in pane in creation order (the built-in Model pane is not listed — it is the document tree, served by model.tree).

type ListBrowserPanesResult struct {
Panes []BrowserPaneSpec `json:"panes"`
}

type ListClientApplicationsResult

ListClientApplicationsResult is the response of MethodClientAppsList, in registration order.

type ListClientApplicationsResult struct {
Clients []ClientApplicationInfo `json:"clients"`
}

type ListClientGraphicsResult

ListClientGraphicsResult is the response of MethodClientGraphicsList.

type ListClientGraphicsResult struct {
Groups []ClientGraphicsInfo `json:"groups"`
}

type ListCommandsResult

ListCommandsResult is the response of MethodCommandsList.

type ListCommandsResult struct {
Commands []CommandInfo `json:"commands"`
}

type ListConstraints3DResult

ListConstraints3DResult is the response of MethodSketch3DConstraints.

type ListConstraints3DResult struct {
Constraints []Constraint3DInfo `json:"constraints"`
}

type ListConstraintsResult

ListConstraintsResult is the response of MethodSketchConstraints.

type ListConstraintsResult struct {
Constraints []ConstraintInfo `json:"constraints"`
}

type ListDerivedParameterTablesResult

ListDerivedParameterTablesResult is the response of MethodParametersDerivedTablesList.

type ListDerivedParameterTablesResult struct {
Tables []DerivedParameterTableInfo `json:"tables,omitempty"`
}

type ListDimensions3DResult

ListDimensions3DResult is the response of MethodSketch3DDimensions.

type ListDimensions3DResult struct {
Dimensions []Dimension3DInfo `json:"dimensions"`
}

type ListDimensionsResult

ListDimensionsResult is the response of MethodSketchDimensions.

type ListDimensionsResult struct {
Dimensions []DimensionInfo `json:"dimensions"`
}

type ListDisplayModesResult

ListDisplayModesResult is the response of MethodViewListDisplayModes.

type ListDisplayModesResult struct {
Modes []DisplayModeInfo `json:"modes"`
}

type ListDockableWindowsResult

ListDockableWindowsResult is the response of MethodDockableWindowsList, in creation order.

type ListDockableWindowsResult struct {
Windows []DockableWindowSpec `json:"windows"`
}

type ListDocumentFileReferencesArgs

ListDocumentFileReferencesArgs is the request of MethodDocumentsListFileReferences: the session id of the document whose file references to enumerate.

type ListDocumentFileReferencesArgs struct {
Document uint64 `json:"document"`
}

type ListDocumentFileReferencesResult

ListDocumentFileReferencesResult is the response of MethodDocumentsListFileReferences.

type ListDocumentFileReferencesResult struct {
References []DocumentFileReferenceInfo `json:"references"`
}

type ListDocumentInterestsArgs

ListDocumentInterestsArgs is the request of MethodDocumentsListInterests.

type ListDocumentInterestsArgs struct {
Document uint64 `json:"document"`
}

type ListDocumentInterestsResult

ListDocumentInterestsResult is the response of MethodDocumentsListInterests.

type ListDocumentInterestsResult struct {
Interests []types.DocumentInterestRecord `json:"interests"`
}

type ListDocumentSubTypesResult

ListDocumentSubTypesResult is the response of MethodDocumentsListSubTypes.

type ListDocumentSubTypesResult struct {
SubTypes []DocumentSubTypeInfo `json:"subTypes"`
}

type ListDocumentsResult

ListDocumentsResult is the response of MethodDocumentsList: every open document and (via each DocumentInfo.Active flag) which one is active.

type ListDocumentsResult struct {
Documents []DocumentInfo `json:"documents"`
}

type ListDrawingAnnotationsResult

ListDrawingAnnotationsResult is the response of MethodDrawingAnnotationsList.

type ListDrawingAnnotationsResult struct {
Annotations []DrawingAnnotationInfo `json:"annotations"`
}

type ListDrawingDimensionsResult

ListDrawingDimensionsResult is the response of MethodDrawingDimensionsList.

type ListDrawingDimensionsResult struct {
Dimensions []DrawingDimensionInfo `json:"dimensions"`
}

type ListDrawingSketchesResult

ListDrawingSketchesResult is the response of MethodDrawingSketchesList.

type ListDrawingSketchesResult struct {
Sketches []DrawingSketchInfo `json:"sketches"`
}

type ListDrawingViewsResult

ListDrawingViewsResult is the response of MethodDrawingViewsList: the active sheet's views.

type ListDrawingViewsResult struct {
Views []DrawingViewInfo `json:"views"`
}

type ListEnvironmentsResult

ListEnvironmentsResult is the response of MethodUIListEnvironments.

type ListEnvironmentsResult struct {
Environments []EnvironmentInfo `json:"environments"`
}

type ListErrorsResult

ListErrorsResult is the response of MethodErrorsList: the message tree and the aggregate flags (the ErrorManager HasErrors/HasWarnings equivalents).

type ListErrorsResult struct {
Root MessageSectionView `json:"root"`
HasErrors bool `json:"hasErrors"`
HasWarnings bool `json:"hasWarnings"`
LastMessage string `json:"lastMessage,omitempty"`
}

type ListFeatureKindsResult

ListFeatureKindsResult is the response of MethodFeaturesList.

type ListFeatureKindsResult struct {
Kinds []FeatureKindInfo `json:"kinds"`
}

type ListFileReferencesResult

ListFileReferencesResult is the response of MethodFilesListReferences.

type ListFileReferencesResult struct {
References []FileReferenceInfo `json:"references"`
}

type ListFontsResult

ListFontsResult is the response of MethodFontsList: every face the picker can offer — the application's bundled faces plus the fonts installed on the host.

type ListFontsResult struct {
Faces []FontFace `json:"faces"`
}

type ListHighlightSetsResult

ListHighlightSetsResult is the response of MethodModelHighlightSetList.

type ListHighlightSetsResult struct {
Sets []HighlightSetInfo `json:"sets"`
}

type ListMaterialsResult

type ListMaterialsResult struct {
Materials []MaterialInfo `json:"materials"`
}

type ListMiniToolbarsResult

ListMiniToolbarsResult is the response of MethodMiniToolbarList, in creation order.

type ListMiniToolbarsResult struct {
Toolbars []MiniToolbarSpec `json:"toolbars"`
}

type ListOptionGroupsResult

ListOptionGroupsResult is the response of MethodOptionsListGroups.

type ListOptionGroupsResult struct {
Groups []string `json:"groups"`
}

type ListParameterGroupsResult

ListParameterGroupsResult is the response of MethodParametersGroupsList.

type ListParameterGroupsResult struct {
Groups []ParameterGroupInfo `json:"groups,omitempty"`
}

type ListParametersResult

ListParametersResult is the response of MethodParametersList.

type ListParametersResult struct {
Parameters []ParameterInfo `json:"parameters"`
}

type ListPaths3DResult

ListPaths3DResult is the response of MethodSketch3DPaths.

type ListPaths3DResult struct {
Paths []Path3DInfo `json:"paths"`
}

type ListPointCloudCropsArgs

ListPointCloudCropsArgs is the request of MethodPointCloudsListCrops: the owning cloud's name.

type ListPointCloudCropsArgs struct {
Cloud string `json:"cloud"`
}

type ListPointCloudCropsResult

ListPointCloudCropsResult is the response of MethodPointCloudsListCrops.

type ListPointCloudCropsResult struct {
Crops []PointCloudCropInfo `json:"crops"`
}

type ListPointCloudsResult

ListPointCloudsResult is the response of MethodPointCloudsList.

type ListPointCloudsResult struct {
PointClouds []PointCloudInfo `json:"pointClouds"`
}

type ListProfiles3DResult

ListProfiles3DResult is the response of MethodSketch3DProfiles.

type ListProfiles3DResult struct {
Profiles []Profile3DInfo `json:"profiles"`
}

type ListProfilesResult

ListProfilesResult is the response of MethodSketchProfiles.

type ListProfilesResult struct {
Profiles []ProfileInfo `json:"profiles"`
}

type ListPropertiesArgs

ListPropertiesArgs is the request of MethodDocumentsListProperties: the document whose properties to enumerate (by session id from documents.list).

type ListPropertiesArgs struct {
Document uint64 `json:"document"`
}

type ListPropertiesResult

ListPropertiesResult is the response of MethodDocumentsListProperties: every property of the document, across all its sets, in set then insertion order.

type ListPropertiesResult struct {
Properties []PropertyInfo `json:"properties"`
}

type ListRibbonResult

ListRibbonResult is the response of MethodRibbonList: the ribbon currently shown for the active document (Key is ZeroDoc when none is open), with its tabs/panels/controls. It is the discovery surface an add-in reads to find the internal names to insert into (it lists the contents of the ribbon). Contextual tabs (e.g. Sketch) appear only when their environment is active.

type ListRibbonResult struct {
Key types.RibbonKey `json:"key"`
Tabs []RibbonTabInfo `json:"tabs,omitempty"`
}

type ListSheetsResult

ListSheetsResult is the response of MethodDrawingListSheets: every sheet (the active one flagged) and the drawing's primary referenced model, if set.

type ListSheetsResult struct {
Sheets []SheetInfo `json:"sheets"`
ModelReference string `json:"modelReference,omitempty"`
}

type ListSketches3DResult

ListSketches3DResult is the response of MethodSketch3DList.

type ListSketches3DResult struct {
Sketches []Sketch3DInfo `json:"sketches"`
}

type ListSketchesResult

ListSketchesResult is the response of MethodSketchList.

type ListSketchesResult struct {
Sketches []SketchInfo `json:"sketches"`
}

type ListStandardsResult

ListStandardsResult is the response of MethodDrawingStylesListStandards: the available drafting standards and the active one.

type ListStandardsResult struct {
Standards []string `json:"standards"`
Active string `json:"active"`
}

type ListThemesResult

ListThemesResult is the response of MethodThemeList.

type ListThemesResult struct {
Themes []ThemeSummary `json:"themes"`
}

type ListViewFramesResult

ListViewFramesResult is the response of MethodWindowsListFrames.

type ListViewFramesResult struct {
Frames []ViewFrameInfo `json:"frames"`
}

type ListViewTabsResult

ListViewTabsResult is the response of MethodWindowsListTabs, in strip order.

type ListViewTabsResult struct {
Tabs []ViewTabInfo `json:"tabs"`
}

type ListViewsArgs

ListViewsArgs is the request of MethodViewsList: which document to enumerate.

type ListViewsArgs struct {
Document uint64 `json:"document,omitempty"` // 0 ⇒ active document
}

type ListViewsResult

ListViewsResult is the response of MethodViewsList: every view of a document, which one is active, and the current tiling layout.

type ListViewsResult struct {
Views []ViewInfo `json:"views"`
ActiveIndex int `json:"activeIndex"`
Layout types.ViewLayout `json:"layout"`
}

type ListWebViewsResult

ListWebViewsResult is the response of MethodDialogsListWebViews, in creation order — the WebView(s) enumeration.

type ListWebViewsResult struct {
Views []WebDialogSpec `json:"views"`
}

type ListWorkPlanesResult

ListWorkPlanesResult is the response of MethodWorkPlanesList.

type ListWorkPlanesResult struct {
Planes []WorkPlaneInfo `json:"planes"`
}

type ListWorkSurfacesResult

ListWorkSurfacesResult is the response of MethodWorkSurfacesList.

type ListWorkSurfacesResult struct {
Surfaces []WorkSurfaceInfo `json:"surfaces"`
}

type LoadEnvironmentImageArgs

LoadEnvironmentImageArgs is the request of MethodEnvironmentLoadImage: the path to an equirectangular HDR file (.hdr) to use as the environment.

type LoadEnvironmentImageArgs struct {
FilePath string `json:"filePath"`
}

type LocateUsingPointArgs

LocateUsingPointArgs is the request of MethodBodyLocateUsingPoint.

type LocateUsingPointArgs struct {
BodyIndex int `json:"bodyIndex"`
Point []float64 `json:"point"`
// EntityKind filters the search ("vertex"/"edge"/"face"; empty = any).
EntityKind string `json:"entityKind,omitempty"`
// ProximityTolerance bounds the accepted distance (cm).
ProximityTolerance float64 `json:"proximityTolerance"`
}

type LocateUsingPointResult

LocateUsingPointResult is the response of MethodBodyLocateUsingPoint.

type LocateUsingPointResult struct {
Found bool `json:"found"`
Entity LocatedEntityInfo `json:"entity,omitempty"`
}

type LocatedEntityInfo

LocatedEntityInfo describes one located/hit entity.

type LocatedEntityInfo struct {
Kind string `json:"kind"`
// Key is the persistent reference key; TransientKey the session id.
Key string `json:"key"`
TransientKey uint64 `json:"transientKey"`
// Point is the closest/hit point on the entity; Distance from the query
// point (or along the ray for [MethodBodyFindUsingRay]).
Point []float64 `json:"point,omitempty"`
Distance float64 `json:"distance"`
}

type LogRecord

LogRecord is one entry of the host operation trace. A record is either an operation entry (Method set — a router call, with DurationMicros and OK/Error/Panic) or a structured log entry (Method empty — a captured slog record with Message). Panic carries the recovered value and Stack the goroutine stack when a handler panicked (the kernel-bug signal).

type LogRecord struct {
Seq uint64 `json:"seq"`
TimeMillis int64 `json:"timeMillis"` // Unix ms when the record was created
Level string `json:"level"` // debug|info|warn|error
Method string `json:"method,omitempty"`
DurationMicros int64 `json:"durationMicros,omitempty"`
OK bool `json:"ok,omitempty"`
Message string `json:"message,omitempty"`
Error string `json:"error,omitempty"`
Panic string `json:"panic,omitempty"`
Stack string `json:"stack,omitempty"`
}

type LogsResult

LogsResult is the response of MethodLogsTail: the matching records oldest-first, the next cursor to poll with (the highest Seq seen, or SinceSeq when none matched), and Dropped — how many records aged out of the ring buffer before this poll (a hint that the caller polled too slowly to see everything).

type LogsResult struct {
Records []LogRecord `json:"records"`
NextSeq uint64 `json:"nextSeq"`
Dropped uint64 `json:"dropped,omitempty"`
}

type LogsTailArgs

LogsTailArgs is the request of MethodLogsTail. SinceSeq returns only records with a sequence strictly greater than it (0 ⇒ from the oldest retained record); Level filters to records at or above a minimum severity ("debug"|"info"|"warn"|"error", empty ⇒ all); Max caps how many records are returned (0 ⇒ a server default).

type LogsTailArgs struct {
SinceSeq uint64 `json:"sinceSeq,omitempty"`
Level string `json:"level,omitempty"`
Max int `json:"max,omitempty"`
}

type ManipulatorDragEvent

ManipulatorDragEvent is the push event (type EventManipulatorDrag) streaming a handle gesture: Phase is "start", "move" or "end"; Position is the handle's dragged world position (on the view plane through its start, snapped per the context's inference).

type ManipulatorDragEvent struct {
Type string `json:"type"` // always EventManipulatorDrag
Gizmo string `json:"gizmo"`
Handle string `json:"handle"`
Phase string `json:"phase"`
Position types.Point `json:"position"`
Context DragContext `json:"context"`
}

type ManipulatorHandleSpec

ManipulatorHandleSpec is one add-in drag handle: a world-space hotspot of RadiusPx pixels, typically placed over the add-in's client graphics — the custom-gizmo building block (ManipulatorEvents).

type ManipulatorHandleSpec struct {
ID string `json:"id"`
Position types.Point `json:"position"`
RadiusPx float64 `json:"radiusPx,omitempty"`
}

type MapEntityArgs

MapEntityArgs maps one topology entity between the folded model and the developed flat by reference key. Key is a topology reference key as model.referenceKeys reports it (so a key can be fed straight back in); ToFlat maps folded→flat (false maps flat→folded). The mapping is face-level: a folded top/bottom face maps to the flat front/back face and back.

type MapEntityArgs struct {
Key string `json:"key"`
ToFlat bool `json:"toFlat,omitempty"`
}

type MapEntityResult

MapEntityResult is the reply of mapEntity: the corresponding entity's reference key, its kind ("face"), and whether a counterpart was found.

type MapEntityResult struct {
Key string `json:"key,omitempty"`
Kind string `json:"kind,omitempty"`
Found bool `json:"found"`
}

type MarkingMenuItem

MarkingMenuItem is one radial slot: the command it runs, placed at a quadrant.

type MarkingMenuItem struct {
Quadrant types.ScreenQuadrant `json:"quadrant"`
CommandID string `json:"commandId"`
}

type MarkingMenuView

MarkingMenuView is one environment's radial marking menu: up to eight quadrant slots plus the linear overflow items below them.

type MarkingMenuView struct {
Environment types.Environment `json:"environment"`
Quadrants []MarkingMenuItem `json:"quadrants,omitempty"`
Overflow []string `json:"overflow,omitempty"`
}

type MassPropertiesArgs

MassPropertiesArgs is the request of MethodAnalysisMassProperties: compute the active part's mass properties. DensityGCm3 is the material density in g/cm³ used for the mass (0 ⇒ 1.0, so the mass equals the volume in cm³).

type MassPropertiesArgs struct {
// DensityGCm3 overrides the material density (g/cm³). 0 ⇒ the part's assigned material density,
// falling back to 1.0 when no material is assigned.
DensityGCm3 float64 `json:"densityGCm3,omitempty"`
// Accuracy is the tessellation fidelity ("low"/"medium"/"high"; empty ⇒ medium).
Accuracy string `json:"accuracy,omitempty"`
}

type MassPropertiesResult

MassPropertiesResult is the response of MethodAnalysisMassProperties: the part's combined geometry properties (over all its solid bodies), mass, and mass moment of inertia about the centroid. Lengths are millimetres; inertia is g·mm².

type MassPropertiesResult struct {
VolumeMm3 float64 `json:"volumeMm3"`
SurfaceAreaMm2 float64 `json:"surfaceAreaMm2"`
MassG float64 `json:"massG"`
DensityGCm3 float64 `json:"densityGCm3"`
CentroidXMm float64 `json:"centroidXMm"`
CentroidYMm float64 `json:"centroidYMm"`
CentroidZMm float64 `json:"centroidZMm"`
// Mass moment of inertia about the centroid (g·mm²); Ixy/Iyz/Izx are products of inertia.
InertiaXxGmm2 float64 `json:"inertiaXxGmm2"`
InertiaYyGmm2 float64 `json:"inertiaYyGmm2"`
InertiaZzGmm2 float64 `json:"inertiaZzGmm2"`
InertiaXyGmm2 float64 `json:"inertiaXyGmm2"`
InertiaYzGmm2 float64 `json:"inertiaYzGmm2"`
InertiaZxGmm2 float64 `json:"inertiaZxGmm2"`
// Principal moments of inertia (g·mm²) and their axes (unit vectors, rows aligned to the
// moments) about the centroid.
PrincipalMomentsGmm2 [3]float64 `json:"principalMomentsGmm2"`
PrincipalAxes [3][3]float64 `json:"principalAxes"`
}

type MaterialInfo

MaterialInfo is the JSON shape of a material: identity, density, the property groups, and the id of the appearance it renders with.

type MaterialInfo struct {
ID string `json:"id"`
DisplayName string `json:"displayName"`
Source string `json:"source"`
Density float64 `json:"density"`
Mechanical types.Mechanical `json:"mechanical"`
Thermal types.Thermal `json:"thermal"`
Electrical types.Electrical `json:"electrical"`
// Magnetic carries the magnetostatics constitutive data (μr, Br, Hc, Bsat) for
// soft-magnetic cores and permanent magnets; the zero value is a non-magnetic material.
Magnetic types.Magnetic `json:"magnetic"`
// IsotropyClass is "isotropic" (or empty), "orthotropic", or "transversely-isotropic".
IsotropyClass string `json:"isotropyClass,omitempty"`
// Anisotropic carries the direction-dependent elastic constants when IsotropyClass is
// not isotropic; zero-valued otherwise.
Anisotropic types.AnisotropicElastic `json:"anisotropic"`
AppearanceID string `json:"appearanceId"`
}

type MeasureArgs

MeasureArgs is the request of MethodAnalysisMeasure: measure an entity (or pair) of the active part's body BodyIndex, identified by reference key(s). Type selects the quantity: "length" (edge KeyA), "area" (face KeyA), "distance" (straight line between vertices KeyA and KeyB), "minDistance" (closest approach between the two entities KeyA and KeyB, each a vertex/edge/face), "angle" (between two entities KeyA and KeyB — an edge's direction or a planar face's normal — or, when KeyC is given, the angle at apex vertex KeyB between vertices KeyA and KeyC), or "loopLength" (the perimeter of face KeyA — its outer boundary loop length).

type MeasureArgs struct {
BodyIndex int `json:"bodyIndex,omitempty"`
Type string `json:"type"`
KeyA string `json:"keyA"`
KeyB string `json:"keyB,omitempty"`
KeyC string `json:"keyC,omitempty"`
}

type MeasureResult

MeasureResult is the response of MethodAnalysisMeasure: the measured value and its unit ("mm" for length/distance/minDistance, "mm²" for area, "deg" for angle).

type MeasureResult struct {
Type string `json:"type"`
Value float64 `json:"value"`
Unit string `json:"unit"`
}

type MeshColorsResult

MeshColorsResult is the reply of MethodViewportSetMeshColors: the resulting state.

type MeshColorsResult struct {
On bool `json:"on"`
PerTriangle bool `json:"perTriangle"`
}

type MessageEntry

MessageEntry is one message-center entry.

type MessageEntry struct {
Text string `json:"text"`
Severity types.MessageSeverity `json:"severity,omitempty"`
}

type MessageSectionView

MessageSectionView is one section of MethodErrorsList: its own messages plus nested sections.

type MessageSectionView struct {
Title string `json:"title,omitempty"`
Messages []MessageEntry `json:"messages,omitempty"`
Sections []MessageSectionView `json:"sections,omitempty"`
}

type MiniToolbarChangedEvent

MiniToolbarChangedEvent is the push event (type EventMiniToolbarChanged) fired when the user edits one control: the control's current value fields, per kind (a button click carries just the ids).

type MiniToolbarChangedEvent struct {
Type string `json:"type"` // always EventMiniToolbarChanged
Toolbar string `json:"toolbar"`
Control string `json:"control"`
Value string `json:"value,omitempty"`
Checked bool `json:"checked,omitempty"`
Number float64 `json:"number,omitempty"`
Selected int `json:"selected,omitempty"`
}

type MiniToolbarCommittedEvent

MiniToolbarCommittedEvent is the push event (type EventMiniToolbarCommitted) fired when the user presses OK, Apply or Cancel; Gesture is "ok", "apply" or "cancel" (ok and cancel also dismiss the toolbar).

type MiniToolbarCommittedEvent struct {
Type string `json:"type"` // always EventMiniToolbarCommitted
Toolbar string `json:"toolbar"`
Gesture string `json:"gesture"`
}

type MiniToolbarControlSpec

MiniToolbarControlSpec is one declarative control. ID names the control in change events and updates. The value fields are per kind: Checked (checkbox), Number + Min/Max (slider), Value (textbox / value-editor expression / text-editor), Options + Selected (combo).

type MiniToolbarControlSpec struct {
Kind types.MiniToolbarControlKind `json:"kind,omitempty"`
ID string `json:"id"`
Label string `json:"label,omitempty"`
Tooltip string `json:"tooltip,omitempty"`
Value string `json:"value,omitempty"`
Checked bool `json:"checked,omitempty"`
Number float64 `json:"number,omitempty"`
Min float64 `json:"min,omitempty"`
Max float64 `json:"max,omitempty"`
Options []string `json:"options,omitempty"`
Selected int `json:"selected,omitempty"`
}

type MiniToolbarSpec

MiniToolbarSpec is one mini-toolbar. Anchor places it: a 3D model point the host projects each frame (Anchor non-nil), else viewport-relative pixels (ScreenX/Y). Command, when set, ties the toolbar's lifetime to that command: the host removes it when the active tool commits or cancels — the interaction-graphics lifecycle. OK/Apply/Cancel render when their Show flags are set; the user's choice arrives as a miniToolbar.committed event (ok and cancel also dismiss the toolbar).

type MiniToolbarSpec struct {
ID string `json:"id"`
Command string `json:"command,omitempty"`
Anchor *types.Point `json:"anchor,omitempty"`
ScreenX float64 `json:"screenX,omitempty"`
ScreenY float64 `json:"screenY,omitempty"`
Visible bool `json:"visible"`
HeadsUpText string `json:"headsUpText,omitempty"`
ShowOK bool `json:"showOK,omitempty"`
ShowApply bool `json:"showApply,omitempty"`
ShowCancel bool `json:"showCancel,omitempty"`
Controls []MiniToolbarControlSpec `json:"controls,omitempty"`
}

type MinimumDistanceArgs

MinimumDistanceArgs is the request of MethodBodyMinimumDistance: the closest approach between the body and a transient probe polyline (e.g. a CAM travel path) — the out-of-process minimum-distance measurement for a transient operand. Points is a flat [x,y,z, x,y,z, ...] list in database units (cm); consecutive pairs are the probe's segments, and a lone point measures that point to the body. Radius (cm) widens the probe into a swept-cylinder cross-section (the tool), subtracted from the raw distance and clamped at 0 — 0 leaves the probe a bare polyline.

type MinimumDistanceArgs struct {
BodyIndex int `json:"bodyIndex"`
Points []float64 `json:"points"`
Radius float64 `json:"radius,omitempty"`
}

type MinimumDistanceResult

MinimumDistanceResult is the response of MethodBodyMinimumDistance: the minimum distance in database units (cm), 0 when the probe (after Radius) touches or enters the body's material.

type MinimumDistanceResult struct {
Distance float64 `json:"distance"`
}

type MirrorComponentsArgs

MirrorComponentsArgs is the request of MethodAssemblyMirror: add a mirror of each Source occurrence (by session id), reflected across the plane through Origin with unit Normal. Each mirror shares its source's component, handed by the reflection transform.

type MirrorComponentsArgs struct {
Sources []uint64 `json:"sources"`
Origin [3]float64 `json:"origin"`
Normal [3]float64 `json:"normal"`
}

type MirrorFeatureArgs

MirrorFeatureArgs is the args object for a FeatureKindMirror MethodFeaturesAdd call: mirror SourceFeatures across the plane through Origin (default origin) with the given Normal ([x,y,z], e.g. [1,0,0] for the YZ plane) (#189).

type MirrorFeatureArgs struct {
SourceFeatures []string `json:"sourceFeatures"`
Origin []float64 `json:"origin,omitempty"`
Normal []float64 `json:"normal"`
}

type MirrorIntoPartArgs

MirrorIntoPartArgs is the request of MethodAssemblyMirrorIntoPart: like MethodAssemblyMirror, but for each chiral Source it derives a NEW opposite-hand PART document (the source geometry reflected across the plane through Origin with unit Normal, baked into its own editable, separately-openable part) and places THAT as the mirrored occurrence — rather than sharing the source definition handed only by the placement. The reply is the created occurrences (each instancing a freshly derived mirror part). A Source that does not reference a saved component document is rejected (there is no source document to derive from).

type MirrorIntoPartArgs struct {
Sources []uint64 `json:"sources"`
Origin [3]float64 `json:"origin"`
Normal [3]float64 `json:"normal"`
}

type ModelChangedEvent

ModelChangedEvent is the EventModelChanged push payload (#148): a committed batch of model changes on a document — feature/sketch/parameter mutations the engine just applied. Document is the affected document's display name; Changes is how many changes were in the batch. An add-in matches on Type and re-queries the document's state.

type ModelChangedEvent struct {
Type string `json:"type"`
Document string `json:"document,omitempty"`
Changes int `json:"changes,omitempty"`
}

type ModelHealthArgs

ModelHealthArgs is the request of MethodAnalysisModelHealth: aggregate the active part's feature health. It has no fields — it inspects the active document.

type ModelHealthArgs struct{}

type ModelHealthResult

ModelHealthResult is the response of MethodAnalysisModelHealth: the overall (worst) status across the part's features, the count of sick features, and every feature that is not OK so the UI can list them for repair.

type ModelHealthResult struct {
Overall string `json:"overall"`
SickCount int `json:"sickCount"`
Unhealthy []FeatureHealth `json:"unhealthy,omitempty"`
}

type ModelStateInfo

ModelStateInfo is one model state: its identity and the names of the representation it selects in each family (empty ⇒ that family is left unchanged on activate).

type ModelStateInfo struct {
ID uint64 `json:"id"`
Name string `json:"name"`
DesignView string `json:"designView,omitempty"`
Positional string `json:"positional,omitempty"`
LevelOfDetail string `json:"levelOfDetail,omitempty"`
Active bool `json:"active,omitempty"`
}

type ModelStateResult

Result envelopes.

type ModelStateResult struct {
ModelState ModelStateInfo `json:"modelState"`
}

type ModelStatesResult

Result envelopes.

type ModelStatesResult struct {
ModelStates []ModelStateInfo `json:"modelStates"`
}

type ModelTreeResult

ModelTreeResult is the response of MethodModelTree: a read-only snapshot of the active part's structure (parameter names, sketch count, feature program, body count).

type ModelTreeResult struct {
Document string `json:"document"`
Parameters []string `json:"parameters"`
Sketches int `json:"sketches"`
Features []FeatureInfo `json:"features"`
Bodies int `json:"bodies"`
}

type MoveFreeformVerticesArgs

MoveFreeformVerticesArgs is the request of MethodFreeformMoveVertices: translate the selected cage vertices (by cage index) by [dx,dy,dz] in document units. Indices outside the cage are rejected with the offending index and the cage size.

type MoveFreeformVerticesArgs struct {
ID uint64 `json:"id"`
Vertices []int `json:"vertices"`
Translation [3]float64 `json:"translation"`
}

type NameValueEntry

NameValueEntry is one named bag value: the canonical JSON shape of a NameValueMap element, {"name": …, "value": {"type": …, "value": …}}.

type NameValueEntry struct {
Name string `json:"name"`
Value types.Variant `json:"value"`
}

type NameValueMap

NameValueMap is the ordered options/context bag: entry order is meaningful and preserved (insert-before/after semantics live on the client collection).

type NameValueMap []NameValueEntry

type NamedViewInfo

NamedViewInfo is the JSON shape of one saved named view: its name and the camera frame it restores. It is the element of NamedViewsResult and the response of MethodViewsCaptureNamed.

type NamedViewInfo struct {
Name string `json:"name"`
Camera CameraView `json:"camera"`
}

type NamedViewRefArgs

NamedViewRefArgs is the request of MethodViewsRestoreNamed / MethodViewsDeleteNamed: the named view to restore (its camera is applied to the active view, animated) or delete.

type NamedViewRefArgs struct {
Document uint64 `json:"document,omitempty"`
Name string `json:"name"`
}

type NamedViewsResult

NamedViewsResult is the response of MethodViewsListNamed: every saved named view of a document.

type NamedViewsResult struct {
Views []NamedViewInfo `json:"views"`
}

type NearestPointArgs

NearestPointArgs is the request of MethodPointCloudsNearestPoint: snap the model-space query Point onto the named cloud — find its scan point nearest the query. The whole cloud is searched (placement-transformed but not crop-limited), so a snap finds a point even outside an active crop.

type NearestPointArgs struct {
Cloud string `json:"cloud"`
Point types.Point `json:"point"`
}

type NearestPointResult

NearestPointResult is the response of MethodPointCloudsNearestPoint: the nearest scan point in model space and the distance to the query. Found is false only for an empty cloud.

type NearestPointResult struct {
Point types.Point `json:"point"`
Distance float64 `json:"distance"`
Found bool `json:"found"`
}

type NewOccurrencesResult

NewOccurrencesResult is the reply of the additive replication ops (pattern, mirror, copy): the occurrences they added, in element/source order.

type NewOccurrencesResult struct {
Created []OccurrenceInfo `json:"created"`
}

type NormalDebugResult

NormalDebugResult is the reply of MethodViewportSetNormalDebug: the resulting state.

type NormalDebugResult struct {
On bool `json:"on"`
}

type OKResult

OKResult is the trivial success payload for mutating methods with no return value.

type OKResult struct {
OK bool `json:"ok"`
}

type ObjectRefList

ObjectRefList is the ordered object-reference list accepted wherever the reference API takes an ObjectCollection (feature inputs, pattern element lists, graphics inputs).

type ObjectRefList []types.ObjectRef

type ObjectRenamedEvent

ObjectRenamedEvent is the JSON shape of the EventObjectRenamed push event: a document object's name changed. Kind is the object kind (body/sketch/feature/occurrence/document); Key is the object's stable reference key (empty for the document itself); OldName/NewName are the prior and new names.

type ObjectRenamedEvent struct {
Type string `json:"type"` // always EventObjectRenamed
Document uint64 `json:"document"`
Kind types.ObjectKind `json:"kind"`
Key string `json:"key,omitempty"`
OldName string `json:"oldName,omitempty"`
NewName string `json:"newName"`
}

type ObjectVisibilityView

ObjectVisibilityView is the View ▸ Object-visibility toggle group: which datum and sketch overlays draw (hidden geometry is also not pickable).

type ObjectVisibilityView struct {
WorkPlanes bool `json:"workPlanes"`
WorkAxes bool `json:"workAxes"`
WorkPoints bool `json:"workPoints"`
Sketches bool `json:"sketches"`
}

type OccurrenceDOFInfo

OccurrenceDOFInfo reports one occurrence's remaining free degrees of freedom after a solve — 0 when fully constrained (or grounded), up to 6 when free. It is the "this part is under-constrained (N DOF remain)" diagnostic (cross-ref #346).

type OccurrenceDOFInfo struct {
Occurrence uint64 `json:"occurrence"`
DegreesOfFreedom int `json:"degreesOfFreedom"`
}

type OccurrenceEventPayload

OccurrenceEventPayload is the JSON shape of the five occurrence push events (EventOccurrenceAdded, EventOccurrenceDeleted, EventOccurrenceReplaced, EventOccurrenceTransformed, EventOccurrenceSuppressed). Document is the assembly document's id and Occurrence the affected occurrence's session id, with Name its instance name (e.g. "bracket:2"). The remaining fields are populated only for the events that carry them: Suppressed reports the new state on a suppressed event; Transform and Previous carry the new and prior placements on a transformed event (a coalesced solver drag reports the net move — Previous is the pre-drag placement). Add/delete/replace carry identity alone.

type OccurrenceEventPayload struct {
Type string `json:"type"`
Document uint64 `json:"document"`
Occurrence uint64 `json:"occurrence"`
Name string `json:"name,omitempty"`
Suppressed bool `json:"suppressed,omitempty"`
Transform *types.Matrix `json:"transform,omitempty"`
Previous *types.Matrix `json:"previous,omitempty"`
}

type OccurrenceInfo

OccurrenceInfo is one node of the assembly occurrence tree: a placed component, its per-instance state, and any nested sub-assembly occurrences. Default-false state flags and an empty child list are omitted.

type OccurrenceInfo struct {
ID uint64 `json:"id"`
Name string `json:"name"`
Transform types.Matrix `json:"transform"`
Suppressed bool `json:"suppressed,omitempty"`
Grounded bool `json:"grounded,omitempty"`
Adaptive bool `json:"adaptive,omitempty"`
Flexible bool `json:"flexible,omitempty"` // subassembly solves independently per placement (M12-F06)
Substitute bool `json:"substitute,omitempty"`
Children []OccurrenceInfo `json:"children,omitempty"`
}

type OccurrenceResult

OccurrenceResult is the reply of the single-occurrence operations (place, transform, ground, suppress, replace): the affected occurrence's refreshed info.

type OccurrenceResult struct {
Occurrence OccurrenceInfo `json:"occurrence"`
}

type OccurrencesResult

OccurrencesResult is the reply of MethodAssemblyOccurrences and of MethodAssemblyRemove: the active assembly's occurrence tree (top-level occurrences, each with nested children).

type OccurrencesResult struct {
Occurrences []OccurrenceInfo `json:"occurrences"`
}

type OffsetPlanarWireArgs

OffsetPlanarWireArgs is the request of MethodWireOffsetPlanar. Positive distance offsets toward normal × tangent (the left of travel about the plane normal); CornerClosure is a oblikovati.org/api/types.OffsetCornerClosureType wire spelling. The wire lives either on a document body (BodyIndex) or on a transient body (Handle > 0 — sections and silhouettes produce those).

type OffsetPlanarWireArgs struct {
BodyIndex int `json:"bodyIndex,omitempty"`
Handle int `json:"handle,omitempty"`
WireIndex int `json:"wireIndex"`
Normal []float64 `json:"normal"`
Distance float64 `json:"distance"`
CornerClosure string `json:"cornerClosure,omitempty"`
}

type OffsetPlanarWireResult

OffsetPlanarWireResult is the response of MethodWireOffsetPlanar: the offset wires land on a transient body (addressable via the brep.* methods) and are also returned sampled for immediate consumption.

type OffsetPlanarWireResult struct {
Handle int `json:"handle"`
Wires []WirePolyline `json:"wires,omitempty"`
}

type OffsetSketchArgs

OffsetSketchArgs is the request of MethodSketchOffset: offset Entity (a line/circle/arc id) by the unit-bearing Distance (signed — a parallel line to the left of A→B, or a concentric circle/arc of radius r+d, for a positive distance). When Entities (a chain of connected line ids, in order) is set instead, the whole chain is offset and mitred. When ProfileIndex is set, the whole CLOSED region of that profile is offset (OpenSCAD offset(r): Distance>0 grows, <0 shrinks; convex corners rounded with arcs of radius |Distance|, sampled into ArcSegments spans per corner, default 8).

type OffsetSketchArgs struct {
SketchIndex int `json:"sketchIndex"`
Entity uint64 `json:"entity,omitempty"`
Entities []uint64 `json:"entities,omitempty"`
ProfileIndex *int `json:"profileIndex,omitempty"`
ArcSegments int `json:"arcSegments,omitempty"`
Distance string `json:"distance"`
}

type OffsetSketchResult

OffsetSketchResult is the response of MethodSketchOffset: the primary new entity's id and kind, plus all created entity ids (more than one for a chain offset).

type OffsetSketchResult struct {
EntityID uint64 `json:"entityId"`
Kind string `json:"kind"`
Created []uint64 `json:"created,omitempty"`
}

type OpenDocumentArgs

OpenDocumentArgs is the request of MethodDocumentsOpen: the typed open options (replacing the reference API's untyped name-value bag). DeferContent opens a reference stub — identity registered, content not paged in.

type OpenDocumentArgs struct {
FullDocumentName string `json:"fullDocumentName"`
Visible bool `json:"visible"`
DeferContent bool `json:"deferContent,omitempty"`
}

type OptionGroupView

OptionGroupView is the response of MethodOptionsGetGroup and the request of MethodOptionsSetGroup: exactly one of the group fields is set, matching Group.

type OptionGroupView struct {
Group string `json:"group"`
General *GeneralOptionsView `json:"general,omitempty"`
Display *DisplayOptionsView `json:"display,omitempty"`
Sketch *SketchOptionsView `json:"sketch,omitempty"`
Part *PartOptionsView `json:"part,omitempty"`
Save *SaveOptionsView `json:"save,omitempty"`
}

type OrientationResult

OrientationResult is the reply of addOrientation/activateOrientation: the affected orientation after the call.

type OrientationResult struct {
Orientation FlatPatternOrientationInfo `json:"orientation"`
}

type OrientationsResult

OrientationsResult is the reply of listOrientations: every orientation in creation order (the active one flagged).

type OrientationsResult struct {
Orientations []FlatPatternOrientationInfo `json:"orientations"`
}

type PanelControlSpec

PanelControlSpec is one declarative control of a dockable window's content. A PanelButton executes CommandID when clicked, so the add-in observes it through the ordinary command-ended event — no separate click plumbing. Text is the label/button caption (or the field label for editable controls); ID names the control. Editable controls (textBox/valueEditor/checkBox/dropdown/comboBox/slider) carry their current Value; dropdown/comboBox list their choices in Options; slider and valueEditor bound the input with Min/Max/Step. When the user edits an editable control the host pushes a PanelValueChangedEvent carrying the control's ID + new Value.

Container kinds (grid/group/tabs, ADR-0019) nest: they own Children and are laid out rather than drawn. A grid declares its column tracks in Columns with ColumnGap/RowGap spacing, and each child may carry a Cell placement (nil = auto-flow). A group is a titled vertical stack (Title is its caption). Tabs treats each child as one tab whose Title is the caption. All these fields are omitempty, so a leaf control marshals exactly as before — older hosts ignore the unknown fields and degrade an unknown kind to its Text.

type PanelControlSpec struct {
Kind types.PanelControlKind `json:"kind,omitempty"`
ID string `json:"id,omitempty"`
Text string `json:"text,omitempty"`
CommandID string `json:"commandId,omitempty"`
Value string `json:"value,omitempty"` // current value of an editable control
Options []string `json:"options,omitempty"` // choices for dropdown/comboBox
Min float64 `json:"min,omitempty"` // slider/valueEditor lower bound
Max float64 `json:"max,omitempty"` // slider/valueEditor upper bound
Step float64 `json:"step,omitempty"` // slider/valueEditor increment

// Container fields (grid/group/tabs only).
Title string `json:"title,omitempty"` // group/tab caption
Children []PanelControlSpec `json:"children,omitempty"` // nested controls of a container
Columns []types.GridTrack `json:"columns,omitempty"` // grid: column tracks (rows are auto-height)
ColumnGap float64 `json:"columnGap,omitempty"` // grid: px gap between columns
RowGap float64 `json:"rowGap,omitempty"` // grid: px gap between rows
Cell *types.GridCell `json:"cell,omitempty"` // this control's placement in its parent grid

Rows []PanelReferenceRow `json:"rows,omitempty"` // referenceList: current picked refs
Accepts []string `json:"accepts,omitempty"` // referenceList: allowed kinds ("face"/"edge"/"vertex"); empty = any
}

type PanelReferenceRow

PanelReferenceRow is one row of a referenceList control: a host geometry selection reference plus an optional display label (the host derives one, e.g. "Face3", when empty).

type PanelReferenceRow struct {
Ref string `json:"ref"`
Label string `json:"label,omitempty"`
}

type PanelReferencesChangedEvent

PanelReferencesChangedEvent is the push event (type EventPanelReferencesChanged) fired when a referenceList control's rows change — by the user's Add-from-selection / per-row Remove or by MethodDockableWindowsSetReferences. Refs is the FULL new set (bulk-state, matching the rest of the panel model); Action is "add"/"remove" for diagnostics only.

type PanelReferencesChangedEvent struct {
Type string `json:"type"` // always EventPanelReferencesChanged
WindowId string `json:"windowId"`
ControlId string `json:"controlId"`
Refs []string `json:"refs"`
Action string `json:"action,omitempty"`
}

type PanelValueChangedEvent

PanelValueChangedEvent is the push event (type EventPanelValueChanged) fired when the user edits an editable control of an add-in dockable window (M05-F03). It carries the owning window's id, the control's id, and the control's new Value — the add-in updates its model from it (and may re-Set the window to refresh derived labels). This is the editable- panel counterpart of CommandStartedEvent (which still observes button clicks).

type PanelValueChangedEvent struct {
Type string `json:"type"` // always EventPanelValueChanged
WindowId string `json:"windowId"`
ControlId string `json:"controlId"`
Value string `json:"value"`
}

type ParameterChangedEvent

ParameterChangedEvent is the JSON shape of an EventParameterChanged push event (#148): a parameter's expression/value changed on a document. Like the other push events it is delivered to an add-in's Notify entry point (ADR-0016) with no request/response method — an add-in matches on Type and reads the parameter's new state from Parameter (so it need not re-query).

type ParameterChangedEvent struct {
Type string `json:"type"` // always EventParameterChanged
Document uint64 `json:"document"`
Parameter ParameterInfo `json:"parameter"`
}

type ParameterDetail

ParameterDetail is the full member-level view of one parameter (response of MethodParametersGetDetail and of the parameter mutation methods). It embeds ParameterInfo, adding units, presentation, tolerance, the multi-value list, custom-property exposure and the dependency neighborhood. ModelValue is in database units; DisplayFormat and ModelValueType carry the wire spellings of types.ParameterDisplayFormat and types.ModelValueType. Tolerance is nil for text and true/false parameters.

type ParameterDetail struct {
ParameterInfo
Units string `json:"units,omitempty"`
Comment string `json:"comment,omitempty"`
IsKey bool `json:"isKey,omitempty"`
Visible bool `json:"visible"`
InUse bool `json:"inUse,omitempty"`
Precision int `json:"precision"`
DisplayFormat string `json:"displayFormat"`
ExposedAsProperty bool `json:"exposedAsProperty,omitempty"`
ModelValue float64 `json:"modelValue"`
ModelValueType string `json:"modelValueType"`
Tolerance *ToleranceInfo `json:"tolerance,omitempty"`
ExpressionList *ExpressionListInfo `json:"expressionList,omitempty"`
CustomPropertyFormat *CustomPropertyFormatInfo `json:"customPropertyFormat,omitempty"`
DrivenBy []string `json:"drivenBy,omitempty"`
Dependents []string `json:"dependents,omitempty"`
}

type ParameterExportResult

ParameterExportResult is the response of MethodParametersExport: the document's user parameters as the documented parameter-set XML.

type ParameterExportResult struct {
XML string `json:"xml"`
}

type ParameterExpressionListArgs

ParameterExpressionListArgs is the request of MethodParametersSetExpressionList. An empty Expressions clears the list, returning the parameter to single-valued.

type ParameterExpressionListArgs struct {
Name string `json:"name"`
Expressions []string `json:"expressions,omitempty"`
AllowCustomValues bool `json:"allowCustomValues,omitempty"`
CustomOrder bool `json:"customOrder,omitempty"`
}

type ParameterGroupAddArgs

ParameterGroupAddArgs is the request of MethodParametersGroupsAdd. An empty DisplayName defaults to the internal name.

type ParameterGroupAddArgs struct {
InternalName string `json:"internalName"`
DisplayName string `json:"displayName,omitempty"`
ClientID string `json:"clientId,omitempty"`
}

type ParameterGroupDeleteArgs

ParameterGroupDeleteArgs is the request of MethodParametersGroupsDelete. DeleteParameters opts into the cascade that also deletes the member parameters; without it only the group goes, the members stay.

type ParameterGroupDeleteArgs struct {
InternalName string `json:"internalName"`
DeleteParameters bool `json:"deleteParameters,omitempty"`
}

type ParameterGroupDisplayNameArgs

ParameterGroupDisplayNameArgs is the request of MethodParametersGroupsSetDisplayName: the group's editable display name. The internal name can never change.

type ParameterGroupDisplayNameArgs struct {
InternalName string `json:"internalName"`
DisplayName string `json:"displayName"`
}

type ParameterGroupInfo

ParameterGroupInfo is the JSON shape of one custom parameter group: the immutable internal name that identifies it, the editable display name, the owning client id (add-in provenance, empty for user-created groups), and the member parameter names in collection order.

type ParameterGroupInfo struct {
InternalName string `json:"internalName"`
DisplayName string `json:"displayName"`
ClientID string `json:"clientId,omitempty"`
Members []string `json:"members,omitempty"`
}

type ParameterGroupMemberArgs

ParameterGroupMemberArgs is the request of MethodParametersGroupsAddMember / MethodParametersGroupsRemoveMember: one parameter (by name) and the group it joins or leaves.

type ParameterGroupMemberArgs struct {
InternalName string `json:"internalName"`
Parameter string `json:"parameter"`
}

type ParameterImportArgs

ParameterImportArgs is the request of MethodParametersImport: a parameter-set XML document. Import validates names, expressions, and units before touching the model and rejects the whole set naming the offending entry.

type ParameterImportArgs struct {
XML string `json:"xml"`
}

type ParameterImportResult

ParameterImportResult reports what the import did: parameters newly created and existing parameters whose expression or metadata changed.

type ParameterImportResult struct {
Added int `json:"added"`
Updated int `json:"updated"`
}

type ParameterInfo

ParameterInfo is the JSON shape of a parameter: its authored expression and its evaluated value formatted in the document's display units. Health is empty when the parameter is healthy.

type ParameterInfo struct {
Name string `json:"name"`
Kind string `json:"kind"`
Expression string `json:"expression"`
Value string `json:"value"`
Health string `json:"health,omitempty"`
}

type ParameterNameArgs

ParameterNameArgs identifies a parameter by name (request of MethodParametersGet).

type ParameterNameArgs struct {
Name string `json:"name"`
}

type ParameterNamesResult

ParameterNamesResult is the response of MethodParametersDrivenBy / MethodParametersDependents: the names of the directly linked parameters.

type ParameterNamesResult struct {
Names []string `json:"names,omitempty"`
}

type ParameterSetArgs

ParameterSetArgs is the request of MethodParametersAdd / MethodParametersSet: a parameter name and a unit-bearing expression (e.g. "4 cm").

type ParameterSetArgs struct {
Name string `json:"name"`
Expression string `json:"expression"`
}

type ParameterSettingsInfo

ParameterSettingsInfo is the JSON shape of the document's parameter settings (response of MethodParametersGetSettings and of MethodParametersSetSettings). The standard tolerances are unit-bearing expressions applied to dimensions without an explicit tolerance when UseStandardTolerances is on; the precisions are decimal places for linear and angular dimension display; DimensionDisplayType carries the wire spelling of types.DimensionDisplayType.

type ParameterSettingsInfo struct {
LinearStandardTolerance string `json:"linearStandardTolerance,omitempty"`
AngularStandardTolerance string `json:"angularStandardTolerance,omitempty"`
UseStandardTolerances bool `json:"useStandardTolerances,omitempty"`
ExportStandardTolerances bool `json:"exportStandardTolerances,omitempty"`
LinearDimensionPrecision int `json:"linearDimensionPrecision"`
AngularDimensionPrecision int `json:"angularDimensionPrecision"`
DimensionDisplayType string `json:"dimensionDisplayType"`
DisplayParameterAsExpression bool `json:"displayParameterAsExpression,omitempty"`
}

type ParameterSettingsUpdateArgs

ParameterSettingsUpdateArgs is the request of MethodParametersSetSettings. Nil fields are left unchanged (pointer fields distinguish unchanged from zero); DimensionDisplayType takes a wire spelling.

type ParameterSettingsUpdateArgs struct {
LinearStandardTolerance *string `json:"linearStandardTolerance,omitempty"`
AngularStandardTolerance *string `json:"angularStandardTolerance,omitempty"`
UseStandardTolerances *bool `json:"useStandardTolerances,omitempty"`
ExportStandardTolerances *bool `json:"exportStandardTolerances,omitempty"`
LinearDimensionPrecision *int `json:"linearDimensionPrecision,omitempty"`
AngularDimensionPrecision *int `json:"angularDimensionPrecision,omitempty"`
DimensionDisplayType *string `json:"dimensionDisplayType,omitempty"`
DisplayParameterAsExpression *bool `json:"displayParameterAsExpression,omitempty"`
}

type ParameterSweepArgs

ParameterSweepArgs is the request of MethodParametersSetAllModelValueType: drive every toleranced parameter's model-value selection to one bound (nominal/lower/upper/median wire spellings) for limit-stack studies.

type ParameterSweepArgs struct {
ModelValueType string `json:"modelValueType"`
}

type ParameterSweepResult

ParameterSweepResult reports how many toleranced parameters the sweep moved.

type ParameterSweepResult struct {
Affected int `json:"affected"`
}

type ParameterToleranceArgs

ParameterToleranceArgs is the request of MethodParametersSetTolerance. Mode is one of "default", "deviation", "symmetric", "limits", "min", "max". Upper/Lower are unit-bearing expressions in the parameter's unit (e.g. "0.1 mm"): deviation takes both as deviations from nominal, symmetric takes Upper as the ± band, limits takes both as absolute limit values, and the remaining modes take none.

type ParameterToleranceArgs struct {
Name string `json:"name"`
Mode string `json:"mode"`
Upper string `json:"upper,omitempty"`
Lower string `json:"lower,omitempty"`
}

type ParameterUpdateArgs

ParameterUpdateArgs is the request of MethodParametersUpdate: presentation and exposure mutations for one parameter. Nil fields are left unchanged. DisplayFormat and ModelValueType take wire spellings; CustomPropertyFormat replaces the whole format when present.

type ParameterUpdateArgs struct {
Name string `json:"name"`
Comment *string `json:"comment,omitempty"`
IsKey *bool `json:"isKey,omitempty"`
Visible *bool `json:"visible,omitempty"`
Precision *int `json:"precision,omitempty"`
DisplayFormat *string `json:"displayFormat,omitempty"`
ExposedAsProperty *bool `json:"exposedAsProperty,omitempty"`
ModelValueType *string `json:"modelValueType,omitempty"`
CustomPropertyFormat *CustomPropertyFormatInfo `json:"customPropertyFormat,omitempty"`
}

type PartOptionsView

PartOptionsView is the "part" group: part-modeling defaults.

type PartOptionsView struct {
ChamferFlatCorners bool `json:"chamferFlatCorners"`
}

type Path3DInfo

Path3DInfo is one enumerated path from MethodSketch3DPaths: a maximal connected chain of line/arc segments — a sweep/loft rail. Index identifies it; Closed reports whether it forms a loop; Points is the number of ordered vertices.

type Path3DInfo struct {
Index int `json:"index"`
Closed bool `json:"closed"`
Points int `json:"points"`
}

type PlaceByDefinitionArgs

PlaceByDefinitionArgs is the request of MethodAssemblyPlaceByDefinition: place another instance of the component that occurrence Source (by session id) already instances, under Name at Transform — reusing the shared definition without re-resolving a document.

type PlaceByDefinitionArgs struct {
Source uint64 `json:"source"`
Name string `json:"name"`
Transform types.Matrix `json:"transform"`
}

type PlaceByDefinitionBatchArgs

PlaceByDefinitionBatchArgs is the request of MethodAssemblyPlaceByDefinitionBatch: place MANY instances of the component Source already instances, in one call. Placing copies one at a time bumps the assembly's geometry version per call, so a live host recomputes/re-tessellates per placement — batching collapses that to a single recompute, the difference between minutes and seconds for a large (e.g. 10k-fastener) assembly.

type PlaceByDefinitionBatchArgs struct {
Source uint64 `json:"source"`
Placements []BatchPlacement `json:"placements"`
}

type PlaceByDefinitionBatchResult

PlaceByDefinitionBatchResult is the response of MethodAssemblyPlaceByDefinitionBatch: the new occurrences in placement order.

type PlaceByDefinitionBatchResult struct {
Occurrences []OccurrenceInfo `json:"occurrences"`
}

type PlaceOccurrenceArgs

PlaceOccurrenceArgs is the request of MethodAssemblyPlace: place the component held by the open Document (by document id) into the active assembly under Name at Transform. The document's content is shared (the flyweight), so every placement tracks its edits. The document must be an open part or assembly, not a drawing or reference stub.

type PlaceOccurrenceArgs struct {
Document uint64 `json:"document"`
Name string `json:"name"`
Transform types.Matrix `json:"transform"`
}

type PlateInfo

PlateInfo is one developed flat plate — a connected flat region of a (possibly multi-body) sheet-metal part: its index, and its extents/area under the active orientation (database units cm; cm²).

type PlateInfo struct {
Index int `json:"index"`
Length float64 `json:"length"`
Width float64 `json:"width"`
Area float64 `json:"area"`
}

type PlatesResult

PlatesResult is the reply of listPlates: the developed flat's plates (one per connected region).

type PlatesResult struct {
Plates []PlateInfo `json:"plates"`
}

type PointCloudCropArgs

PointCloudCropArgs names one crop on a cloud — the request of MethodPointCloudsDeleteCrop.

type PointCloudCropArgs struct {
Cloud string `json:"cloud"`
Crop string `json:"crop"`
}

type PointCloudCropInfo

PointCloudCropInfo is one crop volume: the owning cloud, the crop name, whether it is active, and its model-space box corners.

type PointCloudCropInfo struct {
Cloud string `json:"cloud"`
Crop string `json:"crop"`
Active bool `json:"active"`
Min types.Point `json:"min"`
Max types.Point `json:"max"`
}

type PointCloudInfo

PointCloudInfo is one attached cloud's state. Transform is the cloud→model placement; Scale is the uniform cloud→model factor. TotalPointCount is the scan's size; DisplayedPointCount is how many render after MaximumPointCount is applied (0 = unbounded).

type PointCloudInfo struct {
Name string `json:"name"`
Source string `json:"source,omitempty"`
Visible bool `json:"visible"`
Scale float64 `json:"scale"`
Transform types.Matrix `json:"transform"`
TotalPointCount int `json:"totalPointCount"`
DisplayedPointCount int `json:"displayedPointCount"`
MaximumPointCount int `json:"maximumPointCount,omitempty"`
}

type PointCloudNameArgs

PointCloudNameArgs names a single cloud — the request of MethodPointCloudsGet and MethodPointCloudsDelete.

type PointCloudNameArgs struct {
Name string `json:"name"`
}

type PointCloudSpaceArgs

PointCloudSpaceArgs is the request of MethodPointCloudsToModelSpace / MethodPointCloudsFromModelSpace: a point to map between cloud and model space.

type PointCloudSpaceArgs struct {
Name string `json:"name"`
Point types.Point `json:"point"`
}

type PointCloudSpaceResult

PointCloudSpaceResult is the response of the space-conversion methods: the mapped point. OK is false from fromModelSpace when the cloud's placement is non-invertible.

type PointCloudSpaceResult struct {
Point types.Point `json:"point"`
OK bool `json:"ok"`
}

type PositionalInfo

PositionalInfo is one positional representation: its identity and the count of constraint/ joint value overrides it carries.

type PositionalInfo struct {
RepresentationInfo
OverrideCount int `json:"overrideCount,omitempty"`
}

type PositionalResult

Result envelopes.

type PositionalResult struct {
Representation PositionalInfo `json:"representation"`
}

type PositionalsResult

Result envelopes.

type PositionalsResult struct {
Representations []PositionalInfo `json:"representations"`
}

type ProblemEntityInfo

ProblemEntityInfo is one offending entity of a failed validity check.

type ProblemEntityInfo struct {
Kind string `json:"kind"`
Key string `json:"key"`
TransientKey uint64 `json:"transientKey"`
Issue string `json:"issue"`
}

type Profile3DInfo

Profile3DInfo is one enumerated profile from MethodSketch3DProfiles: a closed, planar loop of the 3D sketch. Index feeds a planar-section feature; Area is the enclosed area (model cm²); Normal is the loop plane's unit normal [x,y,z]; Vertices is the number of loop vertices.

type Profile3DInfo struct {
Index int `json:"index"`
Area float64 `json:"area"`
Normal []float64 `json:"normal"`
Vertices int `json:"vertices"`
}

type ProfileInfo

ProfileInfo is one enumerated profile from MethodSketchProfiles: its index, enclosed area (sketch-plane cm², holes subtracted), whether it is closed (a solid-extrudable region), and the number of hole loops it contains. The Index feeds features.add's profileIndex.

type ProfileInfo struct {
Index int `json:"index"`
Area float64 `json:"area"`
Closed bool `json:"closed"`
Holes int `json:"holes"`
}

type ProgressCancelledEvent

ProgressCancelledEvent is the push event (type EventProgressCancelled) fired when the user cancels a progress bar.

type ProgressCancelledEvent struct {
Type string `json:"type"` // always EventProgressCancelled
ID int `json:"id"`
}

type ProjectGeometryArgs

ProjectGeometryArgs is the request of MethodSketchProject: project the part topology referenced by Refs (edge/vertex reference-key strings) onto the sketch plane. Mode is "reference" (associative reference geometry, default) or "include" (projected as ordinary sketch geometry). Each ref becomes a projected point (vertex) or curve (edge).

type ProjectGeometryArgs struct {
SketchIndex int `json:"sketchIndex"`
Refs []string `json:"refs"`
Mode string `json:"mode,omitempty"`
}

type ProjectGeometryResult

ProjectGeometryResult is the response of MethodSketchProject: the ids of the created projected entities and whether every reference resolved.

type ProjectGeometryResult struct {
Created []uint64 `json:"created"`
Healthy bool `json:"healthy"`
}

type PromptAnsweredEvent

PromptAnsweredEvent is the push event (type EventPromptAnswered) fired when the user answers a pending prompt; Remembered reports they chose to keep the answer.

type PromptAnsweredEvent struct {
Type string `json:"type"` // always EventPromptAnswered
ID string `json:"id"`
Answer string `json:"answer"`
Remembered bool `json:"remembered,omitempty"`
}

type PropertyChangedEvent

PropertyChangedEvent is the JSON shape of the EventPropertyChanged push event: a document object's property changed (e.g. suppression toggled, a sketch setting edited). Kind and Key identify the object as in ObjectRenamedEvent; Property names the property (e.g. "suppressed"); OldValue/NewValue are its prior and new values rendered as strings (a bool as "true"/"false"), so one generic event carries any property without a bespoke DTO per setting.

type PropertyChangedEvent struct {
Type string `json:"type"` // always EventPropertyChanged
Document uint64 `json:"document"`
Kind types.ObjectKind `json:"kind"`
Key string `json:"key,omitempty"`
Property string `json:"property"`
OldValue string `json:"oldValue,omitempty"`
NewValue string `json:"newValue,omitempty"`
}

type PropertyInfo

PropertyInfo is the JSON shape of one document property: its set, name, and typed value. FromParameter names the model parameter a property was exposed from (the iProperty bridge), empty for a directly authored property.

type PropertyInfo struct {
Set string `json:"set"`
Name string `json:"name"`
Value types.Variant `json:"value"`
FromParameter string `json:"fromParameter,omitempty"`
}

type PropertyResult

PropertyResult is the response of MethodDocumentsGetProperty / MethodDocumentsSetProperty: the addressed property's current state.

type PropertyResult struct {
Property PropertyInfo `json:"property"`
}

type RectangularPatternFeatureArgs

RectangularPatternFeatureArgs is the args object for a FeatureKindPatternRectangular MethodFeaturesAdd call: replicate SourceFeatures on a grid. CountX/CountY are the per- direction counts; CountXExpr/CountYExpr are their parameter-expression forms (when set, they supersede the numeric counts) (#189). StepX/StepY are the per-direction spacing vectors [x,y,z] in cm (StepY optional for a 1-D pattern).

type RectangularPatternFeatureArgs struct {
SourceFeatures []string `json:"sourceFeatures"`
CountX int `json:"countX,omitempty"`
CountY int `json:"countY,omitempty"`
CountXExpr string `json:"countXExpr,omitempty"`
CountYExpr string `json:"countYExpr,omitempty"`
StepX []float64 `json:"stepX,omitempty"`
StepY []float64 `json:"stepY,omitempty"`
}

type RedefineWorkPlaneArgs

RedefineWorkPlaneArgs is the request of MethodWorkPlanesRedefine: edit a placed user work plane in place. Index selects the plane (its position in List). Scalars sets editable distances/angles; Repick re-points reference slots at new geometry. Both are optional and applied together, then the part recomputes.

type RedefineWorkPlaneArgs struct {
Index int `json:"index"`
Scalars []ScalarEdit `json:"scalars,omitempty"`
Repick []SlotRepick `json:"repick,omitempty"`
}

type RedefineWorkPlaneResult

RedefineWorkPlaneResult is the response of MethodWorkPlanesRedefine: the plane's refreshed info (new geometry/health and its still-editable scalars/slots). An unsatisfiable edit reports healthy=false rather than failing the call.

type RedefineWorkPlaneResult struct {
Plane WorkPlaneInfo `json:"plane"`
}

type ReferenceKeysResult

ReferenceKeysResult is the response of MethodModelReferenceKeys: the active part's topology per body, each entity carrying the persistent reference key consumed by the key consumers (include, addSurfaceCurve, project geometry, attributes). It is how an add-in obtains a face/edge/vertex key without a viewport pick.

type ReferenceKeysResult struct {
Bodies []BodyTopology `json:"bodies"`
}

type RegionPropertiesArgs

RegionPropertiesArgs is the request of MethodSketchRegionProperties and MethodSketch3DRegionProperties: which sketch, which profile (the index from MethodSketchProfiles / MethodSketch3DProfiles; the profile must be closed — and planar, for the 3D method), and the desired computational accuracy (oblikovati.org/api/types.Accuracy wire spelling; empty ⇒ "high").

type RegionPropertiesArgs struct {
SketchIndex int `json:"sketchIndex"`
ProfileIndex int `json:"profileIndex"`
Accuracy string `json:"accuracy,omitempty"`
}

type RegionPropertiesResult

RegionPropertiesResult is the response of MethodSketchRegionProperties and MethodSketch3DRegionProperties. All values are in database units (cm) on the profile's plane, about the sketch origin unless stated otherwise:

  • Area (cm², holes subtracted) and Perimeter (cm, holes' rims included);
  • Centroid [x,y] (cm, in sketch-plane coordinates);
  • MomentsOfInertia [Ixx, Iyy, Ixy] (cm⁴) about the centroid;
  • PrincipalMoments [I1, I2] (cm⁴) and RotationAngle (radians CCW from the sketch X axis to the first principal axis);
  • PrincipalAxes the two unit axes [[x1,y1],[x2,y2]];
  • Accuracy the wire spelling actually used.
type RegionPropertiesResult struct {
Area float64 `json:"area"`
Perimeter float64 `json:"perimeter"`
Centroid []float64 `json:"centroid"`
MomentsOfInertia []float64 `json:"momentsOfInertia"`
PrincipalMoments []float64 `json:"principalMoments"`
RotationAngle float64 `json:"rotationAngle"`
PrincipalAxes [][]float64 `json:"principalAxes"`
Accuracy string `json:"accuracy"`
}

type RegisterBalloonTipArgs

RegisterBalloonTipArgs is the request of MethodBalloonTipRegister: declare a named notification balloon. Registration is separate from showing so the per-user "don't show again" suppression has a stable id to remember.

type RegisterBalloonTipArgs struct {
ID string `json:"id"`
Title string `json:"title"`
Text string `json:"text"`
Icon string `json:"icon,omitempty"`
}

type RegisterClientApplicationArgs

RegisterClientApplicationArgs is the request of MethodClientAppsRegister.

type RegisterClientApplicationArgs struct {
Name string `json:"name"`
}

type RegisterClientApplicationResult

RegisterClientApplicationResult is the response of MethodClientAppsRegister: the session-unique id the client passes to MethodClientAppsUnregister when it disconnects.

type RegisterClientApplicationResult struct {
ID int `json:"id"`
}

type RegisterColorMapperArgs

RegisterColorMapperArgs is the request of MethodClientGraphicsRegisterMapper: store a named, reusable color mapper that primitives reference by Name (via GraphicsPrimitive.MapperName) instead of carrying an inline copy of the legend.

type RegisterColorMapperArgs struct {
Name string `json:"name"`
Mapper GraphicsColorMapper `json:"mapper"`
}

type RegisterDocumentSubTypeArgs

RegisterDocumentSubTypeArgs is the request of MethodDocumentsRegisterSubType: an add-in declaring a flavored document type over a base type ("part", …). The flavor's lifecycle reaches the add-in as client.operation push events (M05-F15, the DocumentSubTypeHandler + ClientOperationEvents equivalent).

type RegisterDocumentSubTypeArgs struct {
ID string `json:"id"`
BaseType string `json:"baseType"`
DisplayName string `json:"displayName,omitempty"`
}

type RegisterEnvironmentArgs

RegisterEnvironmentArgs is the request of MethodUIRegisterEnvironment: an add-in declaring its own contextual UI environment (M05-F16, Oblikovati#667). Environment must be ≥ 2 (0 and 1 are the built-in base/sketch); commands registered with the value form the environment's contextual tabs.

type RegisterEnvironmentArgs struct {
Environment types.Environment `json:"environment"`
Name string `json:"name"`
}

type RegisterHelpContextArgs

RegisterHelpContextArgs is the request of MethodHelpRegisterContext: declare a help source — Base is a URL prefix (https://…) or a local directory; topics resolve against it.

type RegisterHelpContextArgs struct {
Source string `json:"source"`
Base string `json:"base"`
}

type RemoveAttachmentArgs

RemoveAttachmentArgs is the request of MethodDocumentsRemoveAttachment: delete the named attachment record (and an embedded payload with it).

type RemoveAttachmentArgs struct {
Document uint64 `json:"document"`
Name string `json:"name"`
}

type RemoveDocumentInterestArgs

RemoveDocumentInterestArgs is the request of MethodDocumentsRemoveInterest: delete the record identified by (ClientID, Name).

type RemoveDocumentInterestArgs struct {
Document uint64 `json:"document"`
ClientID string `json:"clientId"`
Name string `json:"name"`
}

type RemoveManipulatorsArgs

RemoveManipulatorsArgs is the request of MethodManipulatorsRemove.

type RemoveManipulatorsArgs struct {
ID string `json:"id"`
}

type RemoveMiniToolbarArgs

RemoveMiniToolbarArgs is the request of MethodMiniToolbarRemove.

type RemoveMiniToolbarArgs struct {
ID string `json:"id"`
}

type RemoveOccurrenceArgs

RemoveOccurrenceArgs is the request of MethodAssemblyRemove: delete the occurrence with id ID from the active assembly.

type RemoveOccurrenceArgs struct {
ID uint64 `json:"id"`
}

type RemoveSheetArgs

RemoveSheetArgs is the request of MethodDrawingRemoveSheet: the sheet to remove (a drawing must keep at least one sheet).

type RemoveSheetArgs struct {
Name string `json:"name"`
}

type RenameFeatureArgs

RenameFeatureArgs is the request of MethodFeaturesRename. The id is stable across renames; the new name must be non-empty and unique within the part.

type RenameFeatureArgs struct {
ID uint64 `json:"id"`
Name string `json:"name"`
}

type RenameViewArgs

RenameViewArgs is the request of MethodViewsRename: set the indexed view's name.

type RenameViewArgs struct {
Document uint64 `json:"document,omitempty"`
Index int `json:"index"`
Name string `json:"name"`
}

type RenameWorkSurfaceArgs

RenameWorkSurfaceArgs is the request of MethodWorkSurfacesRename. The new name must be non-empty and unique within the part.

type RenameWorkSurfaceArgs struct {
Index int `json:"index"`
Name string `json:"name"`
}

type ReorderFeatureArgs

ReorderFeatureArgs is the request of MethodFeaturesReorder: move the feature to NewIndex in history order (0-based, from model.tree). A move that would place a feature before one it depends on is rejected.

type ReorderFeatureArgs struct {
ID uint64 `json:"id"`
NewIndex int `json:"newIndex"`
}

type RepRef

RepRef names a representation (or model state) by id — the request of activate/delete.

type RepRef struct {
ID uint64 `json:"id"`
}

type ReplaceFileReferenceArgs

ReplaceFileReferenceArgs is the request of MethodFilesReplaceReference: the repair operation re-pointing one reference of FullFileName — the record whose as-saved name is RequestedName — at NewFileName. The owning file reports the reference as replaced until it is saved.

type ReplaceFileReferenceArgs struct {
FullFileName string `json:"fullFileName"`
RequestedName string `json:"requestedName"`
NewFileName string `json:"newFileName"`
}

type ReplaceOccurrenceArgs

ReplaceOccurrenceArgs is the request of MethodAssemblyReplace: swap the component of the occurrence with id ID for the one held by the open Document (by document id), keeping the occurrence's id, name, transform, and state — the "replace component" operation.

type ReplaceOccurrenceArgs struct {
ID uint64 `json:"id"`
Document uint64 `json:"document"`
}

type RepresentationEventPayload

RepresentationEventPayload is the relayed body of a representation/model-state event: the kind ("designView"/"positional"/"levelOfDetail"/"modelState"), the id, and the name.

type RepresentationEventPayload struct {
Kind string `json:"kind"`
ID uint64 `json:"id"`
Name string `json:"name"`
}

type RepresentationInfo

RepresentationInfo is the identity row common to every representation family.

type RepresentationInfo struct {
ID uint64 `json:"id"`
Name string `json:"name"`
Kind string `json:"kind"`
Active bool `json:"active,omitempty"`
}

type RequiresUpdateResult

RequiresUpdateResult is the response of MethodDocumentsRequiresUpdate: the read-only flag telling a client the active document has out-of-date features a recompute would change.

type RequiresUpdateResult struct {
RequiresUpdate bool `json:"requiresUpdate"`
}

type ResetBindingArgs

ResetBindingArgs is the request of MethodKeymapReset: restore one action's shortcut and alias to their defaults.

type ResetBindingArgs struct {
ActionID string `json:"actionId"`
}

type ResolveSketchReferenceArgs

ResolveSketchReferenceArgs is the request of MethodSketchResolveReference: a previously obtained persistent key (a sketch's key or a sketch-entity's key).

type ResolveSketchReferenceArgs struct {
ReferenceKey string `json:"referenceKey"`
}

type ResolveSketchReferenceResult

ResolveSketchReferenceResult is the response of MethodSketchResolveReference. Found is false when no current sketch/entity matches the key (a legitimate, non-fatal outcome — the referent was deleted). Kind is "sketch" / "sketchEntity" for a 2D sketch or its entity, or "sketch3d" / "sketch3dEntity" for a 3D sketch or its entity; SketchIndex locates the owning sketch within its own (2D or 3D) collection; EntityID is the matched entity's current session id (0 when Kind names a sketch).

type ResolveSketchReferenceResult struct {
Found bool `json:"found"`
Kind string `json:"kind,omitempty"`
SketchIndex int `json:"sketchIndex"`
EntityID uint64 `json:"entityId,omitempty"`
}

type ResolveThreadArgs

ResolveThreadArgs is the request of MethodThreadsResolve: a designation (e.g. "M8x1.25", "1/4-20") with the optional tolerance class, handedness, internal/external side, and the tapered (pipe thread) flag carried per the reference's StandardThreadInfo/TaperedThreadInfo split.

type ResolveThreadArgs struct {
Designation string `json:"designation"`
Class string `json:"class,omitempty"`
Internal bool `json:"internal,omitempty"`
LeftHanded bool `json:"leftHanded,omitempty"`
Tapered bool `json:"tapered,omitempty"`
}

type RevisionTableRow

RevisionTableRow is one row of a revision table: a revision identifier, its date, and a description of the change.

type RevisionTableRow struct {
Revision string `json:"revision"`
Date string `json:"date,omitempty"`
Description string `json:"description,omitempty"`
}

type RibbonControlInfo

RibbonControlInfo is one command control on a panel: the typed ribbon object model's leaf (M05-F03, #247). Beyond the command id and display name (the original discovery surface), it carries the control kind, look, and live state, so an add-in can mirror or extend the ribbon without guessing. Items holds a split button's variants or a popup control's menu entries.

type RibbonControlInfo struct {
CommandID string `json:"commandId"`
DisplayName string `json:"displayName"`
Kind types.ControlKind `json:"kind,omitempty"`
ButtonStyle types.ButtonStyle `json:"buttonStyle,omitempty"`
Icon string `json:"icon,omitempty"`
Tooltip string `json:"tooltip,omitempty"`
Alias string `json:"alias,omitempty"`
Enabled bool `json:"enabled"`
Active bool `json:"active,omitempty"`
Items []RibbonItemInfo `json:"items,omitempty"`
}

type RibbonItemInfo

RibbonItemInfo is one entry of a control's dropdown — a split button's variant or a popup control's menu item — with its live enabled state.

type RibbonItemInfo struct {
CommandID string `json:"commandId"`
Label string `json:"label"`
Tooltip string `json:"tooltip,omitempty"`
Enabled bool `json:"enabled"`
}

type RibbonPanelInfo

RibbonPanelInfo is one panel within a tab and its controls. Selector is set instead of Controls when the panel renders as a selection box.

type RibbonPanelInfo struct {
Name string `json:"name"`
Controls []RibbonControlInfo `json:"controls,omitempty"`
Selector *RibbonSelectorInfo `json:"selector,omitempty"`
}

type RibbonSelectorInfo

RibbonSelectorInfo is a panel rendered as one drop-down selection box (a panel of combo controls): its options and which is currently selected.

type RibbonSelectorInfo struct {
Options []RibbonItemInfo `json:"options"`
SelectedIndex int `json:"selectedIndex"`
}

type RibbonTabInfo

RibbonTabInfo is one tab within a ribbon and its panels.

type RibbonTabInfo struct {
Name string `json:"name"`
Panels []RibbonPanelInfo `json:"panels,omitempty"`
}

type SaveCopyAsArgs

SaveCopyAsArgs is the request of MethodDocumentsSaveCopyAs: write a copy to TargetFileName without retargeting the in-memory document (the export/ archival workhorse — the document keeps its current file binding and dirty state). Metadata, when set, customizes the minted copy.

type SaveCopyAsArgs struct {
Document uint64 `json:"document"`
TargetFileName string `json:"targetFileName"`
Metadata *types.NewFileMetadata `json:"metadata,omitempty"`
}

type SaveDocumentArgs

SaveDocumentArgs is the request of MethodDocumentsSave: save the document at its current file binding.

type SaveDocumentArgs struct {
Document uint64 `json:"document"`
}

type SaveDocumentAsArgs

SaveDocumentAsArgs is the request of MethodDocumentsSaveAs: save under a new full document name, which becomes the document's identity.

type SaveDocumentAsArgs struct {
Document uint64 `json:"document"`
NewFullDocumentName string `json:"newFullDocumentName"`
}

type SaveDocumentResult

SaveDocumentResult is the response of MethodDocumentsSave, MethodDocumentsSaveAs and MethodDocumentsSaveCopyAs: where the bytes landed.

type SaveDocumentResult struct {
FullDocumentName string `json:"fullDocumentName"`
}

type SaveOptionsView

SaveOptionsView is the "save" option group (M03-F09): application-level save policy. Thumbnail support is host-dependent — writing an unsupported capture mode errors rather than persisting a dead setting. OldVersionsToKeep moves the prior file into an OldVersions sibling directory on save, pruned to the configured count; 0 disables retention.

type SaveOptionsView struct {
Thumbnail types.ThumbnailSaveOption `json:"thumbnail"`
SaveDependents bool `json:"saveDependents"`
OldVersionsToKeep int `json:"oldVersionsToKeep"`
}

type ScalarEdit

ScalarEdit sets the work plane's scalar at slot Index to a unit-bearing Value ("30 mm", "60 deg") — the index comes from WorkPlaneScalar.

type ScalarEdit struct {
Index int `json:"index"`
Value string `json:"value"`
}

type ScriptRunArgs

ScriptRunArgs is the request of MethodScriptRun: a whole Lua program to run against the live model in one call, instead of issuing N separate method calls. The host runs it in the same sandboxed runtime the GUI Script Console and the CLI use (ADR-0028), so the script reaches the model only through this same wire surface.

An MCP/LLM client uses this to submit a complete automation program (build a sketch, extrude it, set parameters) atomically from its side, reading the script's print() output and any error back in ScriptRunResult.

WallMs is an optional per-run wall-clock budget in milliseconds (0 ⇒ the host default); the host caps it so a runaway script can never hang the session.

type ScriptRunArgs struct {
Source string `json:"source"`
WallMs int `json:"wallMs,omitempty"`
}

type ScriptRunResult

ScriptRunResult is the response of MethodScriptRun. The method succeeds at the transport level even when the *script* fails: a syntax/runtime error, quota breach, or cancellation is reported in Error (empty on success) alongside whatever Output the script printed before it stopped — so a caller always gets both the output and the failure reason rather than an opaque transport error.

type ScriptRunResult struct {
Output string `json:"output"` // captured print() output
Error string `json:"error,omitempty"` // script failure message; empty on success
DurationMs int64 `json:"durationMs"` // wall-clock spent running
Ops uint64 `json:"ops,omitempty"` // opcodes executed (best-effort; metrics)
}

type SearchCommandsArgs

SearchCommandsArgs is the request of MethodUISearch: find registered commands whose display name, id, or alias matches the query (case-insensitive substring).

type SearchCommandsArgs struct {
Query string `json:"query"`
}

type SearchCommandsResult

SearchCommandsResult is the response of MethodUISearch.

type SearchCommandsResult struct {
Commands []CommandInfo `json:"commands"`
}

type SelectArgs

SelectArgs is the request of MethodModelSelect (#157): select the entities named by Refs — reference strings as returned in a SelectionResult (face/vertex/body, #1492). Mode "add" extends the current selection; any other value (or empty) replaces it. The reply is the new selection.

type SelectArgs struct {
Refs []string `json:"refs"`
Mode string `json:"mode,omitempty"`
}

type SelectionChangedEvent

SelectionChangedEvent is the push event (type EventSelectionChanged) fired when the selection set changes — the app-level OnSelect/OnUnSelect observation.

type SelectionChangedEvent struct {
Type string `json:"type"` // always EventSelectionChanged
Count int `json:"count"`
}

type SelectionResult

SelectionResult is the response of MethodModelSelection: how many entities are selected, their selection kinds, and — parallel to Kinds — each entity's work-feature reference for entities that have one, empty otherwise. A reference is one of:

  • a datum plane/axis/point key (a work-feature key);
  • "face/<url-base64(key)>" — a picked B-rep face;
  • "vertex/<url-base64(key)>" — a picked B-rep vertex;
  • "body/<url-base64(key)>" — a picked whole body, the same recompute-stable key as BodyInfo.Key (#1492), so an add-in can tell which body was selected.

A client reads Refs to feed a selected face/point/plane into MethodWorkPlanesCreate, or a selected body into a body-scoped operation; all forms round-trip through MethodModelSelect.

type SelectionResult struct {
Count int `json:"count"`
Kinds []int `json:"kinds"`
Refs []string `json:"refs"`
}

type SetActiveSheetArgs

SetActiveSheetArgs is the request of MethodDrawingSetActiveSheet: the sheet to make active.

type SetActiveSheetArgs struct {
Name string `json:"name"`
}

type SetAddInLoadBehaviorArgs

SetAddInLoadBehaviorArgs is the request of MethodAddInsSetLoadBehavior: persist when the host should activate the add-in on future startups. Setting LoadDisabled does not deactivate a running add-in — call MethodAddInsDeactivate for that.

type SetAddInLoadBehaviorArgs struct {
ID string `json:"id"`
LoadBehavior types.AddInLoadBehavior `json:"loadBehavior"`
}

type SetAliasArgs

SetAliasArgs is the request of MethodKeymapSetAlias: set one action's typed command alias. An empty Alias clears it. The host rejects an alias already bound to another action.

type SetAliasArgs struct {
ActionID string `json:"actionId"`
Alias string `json:"alias"`
}

type SetAppearanceArgs

SetAppearanceArgs overrides an occurrence's appearance within a design-view representation (an empty AppearanceID clears the override).

type SetAppearanceArgs struct {
Rep uint64 `json:"rep"`
Occurrence uint64 `json:"occurrence"`
AppearanceID string `json:"appearanceId,omitempty"`
}

type SetAssemblyFeaturesSuppressedArgs

SetAssemblyFeaturesSuppressedArgs is the request of MethodAssemblyFeaturesSetSuppressed: suppress or unsuppress every named feature in one batch.

type SetAssemblyFeaturesSuppressedArgs struct {
IDs []uint64 `json:"ids"`
Suppressed bool `json:"suppressed"`
}

type SetAssemblyParticipantPathsArgs

SetAssemblyParticipantPathsArgs is the request of MethodAssemblyFeaturesSetParticipantPaths: restrict feature ID to the given nested occurrence paths (each a sequence of instance names, root first), disambiguating a sub-assembly placed more than once. Passing no paths clears the restriction so the feature again machines every path through a participating leaf occurrence.

type SetAssemblyParticipantPathsArgs struct {
ID uint64 `json:"id"`
Paths [][]string `json:"paths"`
}

type SetAssemblyParticipantsArgs

SetAssemblyParticipantsArgs is the request of MethodAssemblyFeaturesSetParticipants: replace the participation set of feature ID with the occurrences named by their session ids. An unknown occurrence id is rejected.

type SetAssemblyParticipantsArgs struct {
ID uint64 `json:"id"`
Participants []uint64 `json:"participants"`
}

type SetAttributeArgs

SetAttributeArgs is the request of MethodAttributesSet: create or replace the named attribute in the named set on the document (by session id from documents.list) with the typed value, anchored to Target (empty = the document itself). The set is created on first use.

type SetAttributeArgs struct {
Document uint64 `json:"document"`
Set string `json:"set"`
Name string `json:"name"`
Value types.Variant `json:"value"`
Target string `json:"target,omitempty"`
}

type SetBendOrderArgs

SetBendOrderArgs sets the bend sequence: Order lists the bend features (by name) in the desired order; any bend the list omits keeps its natural (creation) order after the listed ones. An empty Order resets to the natural order.

type SetBendOrderArgs struct {
Order []string `json:"order"`
}

type SetBrowserPaneArgs

SetBrowserPaneArgs is the request of MethodBrowserSetPane: create the pane or replace its content if it exists.

type SetBrowserPaneArgs struct {
Pane BrowserPaneSpec `json:"pane"`
}

type SetCameraArgs

SetCameraArgs is the request of MethodViewSetCamera: the camera frame to apply, plus optional addressing of which document it applies to. Camera state is per-view (a document owns a Views collection, each view owns a camera); the frame is applied to the addressed document's active view (Document 0 ⇒ the active document). To target a non-active view, activate it first (MethodViewsActivate); every view's camera is also readable via MethodViewsList. The frame fields mirror CameraView (a distinct type so request and response evolve independently, like SetDisplayModeArgs vs DisplayModeView).

type SetCameraArgs struct {
Document uint64 `json:"document,omitempty"` // 0 ⇒ active document; applies to that document's active view

Eye types.Point `json:"eye"`
Target types.Point `json:"target"`
Up types.Vector `json:"up"`
FOV float64 `json:"fov"`
}

type SetChordArgs

SetChordArgs is the request of MethodKeymapSetChord: rebind one action's keyboard shortcut. Chord is the canonical chord string; an empty Chord clears the binding. The host rejects a chord already bound to another action.

type SetChordArgs struct {
ActionID string `json:"actionId"`
Chord string `json:"chord"`
}

type SetClientGraphicsArgs

SetClientGraphicsArgs is the request of MethodClientGraphicsSet: submit or replace the whole graphics group named ClientId. Lane selects the display lane (a types.GraphicsLane; empty = "persistent"). Visible nil means visible. Re-sending the same ClientId replaces the previous group (idempotent).

type SetClientGraphicsArgs struct {
ClientId string `json:"clientId"`
Lane string `json:"lane,omitempty"`
Visible *bool `json:"visible,omitempty"`
Nodes []GraphicsNode `json:"nodes"`
}

type SetClientGraphicsResult

SetClientGraphicsResult is the response of MethodClientGraphicsSet.

type SetClientGraphicsResult struct {
ClientId string `json:"clientId"`
NodeCount int `json:"nodeCount"`
PrimitiveCount int `json:"primitiveCount"`
}

type SetClientGraphicsVisibleArgs

SetClientGraphicsVisibleArgs is the request of MethodClientGraphicsSetVisible.

type SetClientGraphicsVisibleArgs struct {
ClientId string `json:"clientId"`
Visible bool `json:"visible"`
}

type SetColorSchemeArgs

SetColorSchemeArgs is the request of MethodColorSchemesSetActive: activate the scheme by name (schemes are identified by name).

type SetColorSchemeArgs struct {
Name string `json:"name"`
}

type SetCommandStateArgs

SetCommandStateArgs is the request of MethodCommandsSetState: an add-in updating one of its own commands' live ribbon state. Active toggles the button's pressed/highlighted look (rendered in the accent color), so a stateful control like a presenter or follow toggle reads on/off at a glance. DisplayName, when non-empty, relabels the button (e.g. "Presenter" → "Presenting") — leave it empty to keep the current label. Enabled, when non-nil, greys the button out (false) or restores it (true) — e.g. a collaboration add-in disabling its presenter/follow controls until the user joins a session; nil leaves the enabled state unchanged.

type SetCommandStateArgs struct {
ID string `json:"id"`
Active bool `json:"active"`
Enabled *bool `json:"enabled,omitempty"`
DisplayName string `json:"displayName,omitempty"`
}

type SetConstraintLimitsArgs

SetConstraintLimitsArgs is the request of MethodAssemblyConstraintsSetLimits: set (or clear) the driven-value Limits of the constraint with id ID.

type SetConstraintLimitsArgs struct {
ID uint64 `json:"id"`
Limits ConstraintLimits `json:"limits"`
}

type SetContextMenuArgs

SetContextMenuArgs is the request of MethodUISetContextMenu: replace an add-in's injected entries for one browser node kind (e.g. "feature", "sketch", "body"; "" injects into every node's menu) — the OnContextMenu equivalent, declarative so no round-trip happens while the menu is open.

type SetContextMenuArgs struct {
AddIn string `json:"addin"`
Kind string `json:"kind"`
Items []ContextMenuItemSpec `json:"items"`
}

type SetDisplayModeArgs

SetDisplayModeArgs is the request of MethodViewSetDisplayMode: the mode to switch the viewport to.

type SetDisplayModeArgs struct {
Mode types.DisplayModeEnum `json:"mode"`
}

type SetDisplaySettingsArgs

SetDisplaySettingsArgs is the request of MethodDocumentSetDisplaySettings: the document to update and the settings to apply.

type SetDisplaySettingsArgs struct {
Document string `json:"document,omitempty"`
Settings DisplaySettingsView `json:"settings"`
}

type SetDockableWindowArgs

SetDockableWindowArgs is the request of MethodDockableWindowsSet: create the window or replace its title/content if it exists.

type SetDockableWindowArgs struct {
Window DockableWindowSpec `json:"window"`
}

type SetDockableWindowReferencesArgs

SetDockableWindowReferencesArgs is the request of MethodDockableWindowsSetReferences: it replaces a referenceList control's rows exactly as an Add-from-selection would, and notifies the owning add-in with a PanelReferencesChangedEvent. Refs is the full new set.

type SetDockableWindowReferencesArgs struct {
WindowId string `json:"windowId"`
ControlId string `json:"controlId"`
Refs []string `json:"refs"`
}

type SetDockableWindowValueArgs

SetDockableWindowValueArgs is the request of MethodDockableWindowsSetValue: it drives one editable control of an add-in dockable window to a value, exactly as a user edit would — the host updates the stored control and notifies the owning add-in (which may react, e.g. re-render the window). Value is the control's string form: the option text for a dropdown/combo, "true"/"false" for a checkbox, the number for a value editor/slider, the text for a text box.

type SetDockableWindowValueArgs struct {
WindowId string `json:"windowId"`
ControlId string `json:"controlId"`
Value string `json:"value"`
}

type SetDockableWindowVisibleArgs

SetDockableWindowVisibleArgs is the request of MethodDockableWindowsSetVisible.

type SetDockableWindowVisibleArgs struct {
ID string `json:"id"`
Visible bool `json:"visible"`
}

type SetDocumentUnitsArgs

SetDocumentUnitsArgs is the request of MethodDocumentsSetUnits: only the non-nil fields are applied, so a caller can change one preference without restating the rest. The response is the updated DocumentUnitsInfo.

type SetDocumentUnitsArgs struct {
LengthUnit *string `json:"lengthUnit,omitempty"`
AngleUnit *string `json:"angleUnit,omitempty"`
MassUnit *string `json:"massUnit,omitempty"`
TimeUnit *string `json:"timeUnit,omitempty"`
LengthDisplayPrecision *int `json:"lengthDisplayPrecision,omitempty"`
AngleDisplayPrecision *int `json:"angleDisplayPrecision,omitempty"`
LengthDisplayFormat *string `json:"lengthDisplayFormat,omitempty"`
}

type SetEndOfFeaturesArgs

SetEndOfFeaturesArgs is the request of MethodAssemblySetEndOfFeatures: move the marker to Position (negative restores it to the end, re-including every feature).

type SetEndOfFeaturesArgs struct {
Position int `json:"position"`
}

type SetEndOfPartArgs

SetEndOfPartArgs is the request of MethodDocumentSetEndOfPart: move the marker to Position (a negative index restores it to the end, re-including every feature).

type SetEndOfPartArgs struct {
Position int `json:"position"`
}

type SetEnvironmentArgs

SetEnvironmentArgs is the request of MethodEnvironmentSet: select a built-in preset by name and set its display parameters.

type SetEnvironmentArgs struct {
Preset string `json:"preset"`
Rotation float64 `json:"rotation"`
Intensity float64 `json:"intensity"`
ShowImage bool `json:"showImage"`
}

type SetFeatureSuppressedArgs

SetFeatureSuppressedArgs is the request of MethodFeaturesSetSuppressed: set (not toggle) explicit suppression, so the call is idempotent for replication.

type SetFeatureSuppressedArgs struct {
ID uint64 `json:"id"`
Suppressed bool `json:"suppressed"`
}

type SetFlexibleArgs

SetFlexibleArgs sets a subassembly occurrence's flexibility within a positional representation.

type SetFlexibleArgs struct {
Rep uint64 `json:"rep"`
Occurrence uint64 `json:"occurrence"`
Flexible bool `json:"flexible"`
}

type SetFlexibleChildArgs

SetFlexibleChildArgs is the request of MethodAssemblySetFlexibleChild (M12-F06): position the child component named Child within the flexible subassembly occurrence Occurrence, independently of the subassembly's other placements. Transform is the child's row-major 4×4 placement in the subassembly's space.

type SetFlexibleChildArgs struct {
Occurrence uint64 `json:"occurrence"`
Child string `json:"child"`
Transform types.Matrix `json:"transform"`
}

type SetFlexibleOccurrenceArgs

SetFlexibleOccurrenceArgs is the request of MethodAssemblySetFlexible (M12-F06): mark the subassembly occurrence with id ID flexible (Flexible=true) so it solves its components independently per placement, or rigid. Mutually exclusive with adaptive; only a subassembly occurrence can be flexible.

type SetFlexibleOccurrenceArgs struct {
ID uint64 `json:"id"`
Flexible bool `json:"flexible"`
}

type SetFreeformLevelArgs

SetFreeformLevelArgs is the request of MethodFreeformSetLevel: change the Catmull–Clark subdivision level the cage is evaluated at (clamped at 0 by the host — higher levels refine the limit-surface approximation).

type SetFreeformLevelArgs struct {
ID uint64 `json:"id"`
Level int `json:"level"`
}

type SetHighlightSetColorArgs

SetHighlightSetColorArgs is the request of MethodModelHighlightSetSetColor: re-colour the named set to a "#rrggbb" Color.

type SetHighlightSetColorArgs struct {
Name string `json:"name"`
Color string `json:"color"`
}

type SetImposedMotionArgs

SetImposedMotionArgs is the request of MethodDSJointsSetImposedMotion: set the imposed motion (free/driven/locked) and value of the DS joint's DOF at index DOFIndex.

type SetImposedMotionArgs struct {
ID uint64 `json:"id"`
DOFIndex int `json:"dofIndex"`
ImposedMotion string `json:"imposedMotion"`
Value float64 `json:"value,omitempty"`
}

type SetJointFlipArgs

SetJointFlipArgs is the request of MethodAssemblyJointsSetFlip: set the flip sense of the joint with id ID.

type SetJointFlipArgs struct {
ID uint64 `json:"id"`
Flip bool `json:"flip"`
}

type SetJointLimitsArgs

SetJointLimitsArgs is the request of MethodAssemblyJointsSetLimits: set the linear/angular bounds of the joint with id ID.

type SetJointLimitsArgs struct {
ID uint64 `json:"id"`
Limits JointLimits `json:"limits"`
}

type SetLayoutArgs

SetLayoutArgs is the request of MethodViewsSetLayout: how to tile the document's views.

type SetLayoutArgs struct {
Document uint64 `json:"document,omitempty"`
Layout types.ViewLayout `json:"layout"`
}

type SetLightArgs

SetLightArgs is the request of MethodLightingSetLight: the index of the light to update and its new full state.

type SetLightArgs struct {
Index int `json:"index"`
Light LightInfo `json:"light"`
}

type SetLightingStyleArgs

SetLightingStyleArgs is the request of MethodLightingSetStyle: the style to activate, by name (lighting styles are identified by name, not by an enum).

type SetLightingStyleArgs struct {
Name string `json:"name"`
}

type SetManipulatorsArgs

SetManipulatorsArgs is the request of MethodManipulatorsSet: replace one add-in gizmo's handle set (the declared-bulk precedent).

type SetManipulatorsArgs struct {
ID string `json:"id"`
Handles []ManipulatorHandleSpec `json:"handles"`
Command string `json:"command,omitempty"`
}

type SetMarkingMenuArgs

SetMarkingMenuArgs is the request of MethodUISetMarkingMenu: replace one environment's radial menu (the customization hook behind OnRadialMarkingMenu).

type SetMarkingMenuArgs struct {
Menu MarkingMenuView `json:"menu"`
}

type SetMeshColorsArgs

SetMeshColorsArgs is the request of MethodViewportSetMeshColors: turn the mesh-debug-colors render On or off — every B-rep face (or every TRIANGLE when PerTriangle) is painted a distinct, index- derived color, so a captured region maps back to a face/triangle index in the mesh data.

type SetMeshColorsArgs struct {
On bool `json:"on"`
PerTriangle bool `json:"perTriangle,omitempty"`
}

type SetMiniToolbarArgs

SetMiniToolbarArgs is the request of MethodMiniToolbarSet: create the toolbar or replace it entirely.

type SetMiniToolbarArgs struct {
Toolbar MiniToolbarSpec `json:"toolbar"`
}

type SetModelReferenceArgs

SetModelReferenceArgs is the request of MethodDrawingSetModelReference: the full document name of the model the drawing documents (its title-block fields resolve against this model's iProperties). An empty name clears the reference.

type SetModelReferenceArgs struct {
FullDocumentName string `json:"fullDocumentName"`
}

type SetModelReferenceResult

SetModelReferenceResult is the response of MethodDrawingSetModelReference: the reference as stored (empty when cleared).

type SetModelReferenceResult struct {
ModelReference string `json:"modelReference"`
}

type SetNodeSelectableArgs

SetNodeSelectableArgs is the request of MethodGraphicsNodeSetSelectable: toggle whether one node's primitives participate in picking.

type SetNodeSelectableArgs struct {
ClientId string `json:"clientId"`
NodeId string `json:"nodeId"`
Selectable bool `json:"selectable"`
}

type SetNodeTransformArgs

SetNodeTransformArgs is the request of MethodGraphicsNodeSetTransform: replace one node's transform without resubmitting its (possibly large) geometry. Transform is a 16-element row-major 4x4 matrix; an empty Transform resets to identity.

type SetNodeTransformArgs struct {
ClientId string `json:"clientId"`
NodeId string `json:"nodeId"`
Transform []float64 `json:"transform,omitempty"`
}

type SetNodeVisibleArgs

SetNodeVisibleArgs is the request of MethodGraphicsNodeSetVisible: toggle one node's visibility within a group without resubmitting geometry.

type SetNodeVisibleArgs struct {
ClientId string `json:"clientId"`
NodeId string `json:"nodeId"`
Visible bool `json:"visible"`
}

type SetNormalDebugArgs

SetNormalDebugArgs is the request of MethodViewportSetNormalDebug: turn the viewport's normal-debug render On or off — shaded triangles draw front-facing GREEN and back-facing RED, so winding / flipped-normal defects (hidden by normal two-sided shading) are obvious in a capture.

type SetNormalDebugArgs struct {
On bool `json:"on"`
}

type SetNoticeArgs

SetNoticeArgs is the request of MethodInteractionSetNotice: a short, transient user-facing message for the host status bar. An add-in uses it to surface state the user would otherwise not see — e.g. a collaboration add-in reporting connection progress or a connection failure (oblikovati-meeting). The host clears the notice on the next user input, so it is for transient status, not persistent UI.

type SetNoticeArgs struct {
Message string `json:"message"`
}

type SetObjectVisibilityArgs

SetObjectVisibilityArgs is the request of MethodUISetObjectVisibility.

type SetObjectVisibilityArgs struct {
Visibility ObjectVisibilityView `json:"visibility"`
}

type SetOrientationArgs

SetOrientationArgs is the request of MethodViewSetOrientation: jump the active view to a standard orientation (front/top/iso…), optionally fitting the model to the view.

type SetOrientationArgs struct {
Document uint64 `json:"document,omitempty"`
Orientation types.ViewOrientationTypeEnum `json:"orientation"`
Fit bool `json:"fit,omitempty"`
}

type SetPointCloudCropActiveArgs

SetPointCloudCropActiveArgs is the request of MethodPointCloudsSetCropActive: toggle whether a named crop limits the cloud's display.

type SetPointCloudCropActiveArgs struct {
Cloud string `json:"cloud"`
Crop string `json:"crop"`
Active bool `json:"active"`
}

type SetPointCloudDensityArgs

SetPointCloudDensityArgs is the request of MethodPointCloudsSetDensity: the display budget (MaximumPointCount); 0 shows every point.

type SetPointCloudDensityArgs struct {
Name string `json:"name"`
MaximumPointCount int `json:"maximumPointCount"`
}

type SetPointCloudScaleArgs

SetPointCloudScaleArgs is the request of MethodPointCloudsSetScale: the new uniform cloud→model scale, which must be positive.

type SetPointCloudScaleArgs struct {
Name string `json:"name"`
Scale float64 `json:"scale"`
}

type SetPointCloudTransformArgs

SetPointCloudTransformArgs is the request of MethodPointCloudsSetTransform: the new cloud→model placement.

type SetPointCloudTransformArgs struct {
Name string `json:"name"`
Transform types.Matrix `json:"transform"`
}

type SetPointCloudVisibleArgs

SetPointCloudVisibleArgs is the request of MethodPointCloudsSetVisible.

type SetPointCloudVisibleArgs struct {
Name string `json:"name"`
Visible bool `json:"visible"`
}

type SetPositionalOverrideArgs

SetPositionalOverrideArgs overrides a constraint's or joint's value within a positional representation (IsJoint selects which relationship id space the id is in).

type SetPositionalOverrideArgs struct {
Rep uint64 `json:"rep"`
Relationship uint64 `json:"relationship"`
IsJoint bool `json:"isJoint,omitempty"`
Value float64 `json:"value"`
}

type SetPropertyArgs

SetPropertyArgs is the request of MethodDocumentsSetProperty: create or replace the named property in the set with the typed value (the set is created if it is a custom set name not among the standard sets). Address by document session id.

type SetPropertyArgs struct {
Document uint64 `json:"document"`
Set string `json:"set"`
Name string `json:"name"`
Value types.Variant `json:"value"`
}

type SetSettingsArgs

SetSettingsArgs edits the flat-pattern settings.

type SetSettingsArgs struct {
DeferUpdate bool `json:"deferUpdate,omitempty"`
}

type SetSheetMetalStyleArgs

SetSheetMetalStyleArgs edits the active rule. Every field is optional: an empty length expression (or zero KFactor) leaves that property unchanged, so a caller can nudge a single property without restating the whole rule.

type SetSheetMetalStyleArgs struct {
Thickness string `json:"thickness,omitempty"`
BendRadius string `json:"bendRadius,omitempty"`
ReliefShape string `json:"reliefShape,omitempty"`
ReliefWidth string `json:"reliefWidth,omitempty"`
ReliefDepth string `json:"reliefDepth,omitempty"`
MinimumGap string `json:"minimumGap,omitempty"`
UnfoldMethod string `json:"unfoldMethod,omitempty"`
KFactor float64 `json:"kFactor,omitempty"`
}

type SetSketch3DPropertyArgs

SetSketch3DPropertyArgs is the request of MethodSketch3DSetProperty: which sketch, which property ("name" | "visible" | "dimensionsVisible" | "color" | "deferUpdates"), and the new value as a string (bools as "true"/"false"). The response is the updated Sketch3DInfo.

type SetSketch3DPropertyArgs struct {
SketchIndex int `json:"sketchIndex"`
Property string `json:"property"`
Value string `json:"value"`
}

type SetSketchCustomLineTypeArgs

SetSketchCustomLineTypeArgs is the request of MethodSketchSetCustomLineType: load LineTypeName from the .lin file at FullFileName onto the sketch. ReplaceExisting replaces an already-loaded definition of the same name; when false, re-loading an existing name is an error.

type SetSketchCustomLineTypeArgs struct {
SketchIndex int `json:"sketchIndex"`
FullFileName string `json:"fullFileName"`
LineTypeName string `json:"lineTypeName"`
ReplaceExisting bool `json:"replaceExisting,omitempty"`
}

type SetSketchPropertyArgs

SetSketchPropertyArgs is the request of MethodSketchSetProperty: which sketch, which property ("name" | "visible" | "color" | "lineType" | "lineWeight" | "deferUpdates"), and the new value as a string (bools as "true"/"false", line weight as a unit-bearing length like "0.5 mm"). The response is the updated SketchInfo.

type SetSketchPropertyArgs struct {
SketchIndex int `json:"sketchIndex"`
Property string `json:"property"`
Value string `json:"value"`
}

type SetSketchSettingsArgs

SetSketchSettingsArgs is the request of MethodDocumentSetSketchSettings: replace the document's sketch settings with the given values.

type SetSketchSettingsArgs struct {
Document uint64 `json:"document"`
Settings types.SketchSettings `json:"settings"`
}

type SetSplineHandleArgs

SetSplineHandleArgs is the request of MethodSketchSetSplineHandle and MethodSketch3DSetSplineHandle. Spline is the spline's session id and FitPointIndex which fit point's handle to address (0-based). Active activates or deactivates the handle. Tangent is the handle direction — [x,y] in sketch-plane coordinates for the 2D method, [x,y,z] for the 3D one (empty keeps the current/natural direction). Weight scales the tangent magnitude's pull on the curve (0 keeps the current weight).

type SetSplineHandleArgs struct {
SketchIndex int `json:"sketchIndex"`
Spline uint64 `json:"spline"`
FitPointIndex int `json:"fitPointIndex"`
Active bool `json:"active"`
Tangent []float64 `json:"tangent,omitempty"`
Weight float64 `json:"weight,omitempty"`
}

type SetStandardArgs

SetStandardArgs is the request of MethodDrawingStylesSetStandard: the drafting standard to make active (a types.DraftingStandard spelling, "iso"/"ansi").

type SetStandardArgs struct {
Standard string `json:"standard"`
}

type SetStatusTextArgs

SetStatusTextArgs is the request of MethodStatusSetText: put a transient message in the status bar (the same notice slot failed commits use). Empty clears it.

type SetStatusTextArgs struct {
Text string `json:"text"`
}

type SetSuppressedArgs

SetSuppressedArgs suppresses or restores an occurrence within a level-of-detail representation.

type SetSuppressedArgs struct {
Rep uint64 `json:"rep"`
Occurrence uint64 `json:"occurrence"`
Suppressed bool `json:"suppressed"`
}

type SetTextFontArgs

SetTextFontArgs is the request of MethodSketchSetTextFont: choose the font of the sketch TEXT entity EntityID in sketch SketchIndex. Provide Path for a host font (its bytes are embedded into the document) OR Family for a bundled face (recorded without bytes); if both are set, Path wins. The font becomes a document resource the text/emboss resolves by, so the document is self-contained (ADR-0031).

type SetTextFontArgs struct {
SketchIndex int `json:"sketchIndex"`
EntityID uint64 `json:"entityId"`
Family string `json:"family,omitempty"`
Path string `json:"path,omitempty"`
}

type SetTextFontResult

SetTextFontResult reports the document resource UUID the text now cites and the resolved family name (for the picker's label).

type SetTextFontResult struct {
Resource string `json:"resource"`
Family string `json:"family"`
}

type SetVisibilityArgs

SetVisibilityArgs hides or shows an occurrence within a design-view representation.

type SetVisibilityArgs struct {
Rep uint64 `json:"rep"`
Occurrence uint64 `json:"occurrence"`
Visible bool `json:"visible"`
}

type SetWorkSurfaceVisibleArgs

SetWorkSurfaceVisibleArgs is the request of MethodWorkSurfacesSetVisible: set (not toggle) the surface's visibility, so the call is idempotent for replication.

type SetWorkSurfaceVisibleArgs struct {
Index int `json:"index"`
Visible bool `json:"visible"`
}

type SettingsResult

SettingsResult is the reply of getSettings/setSettings: the settings after the call.

type SettingsResult struct {
Settings FlatPatternSettings `json:"settings"`
}

type ShadedDisplayModeOptionsView

ShadedDisplayModeOptionsView is the JSON shape of the shaded-mode sub-options — a member of DisplayModeOptionsView.

type ShadedDisplayModeOptionsView struct {
EdgeDisplay bool `json:"edgeDisplay"`
EdgeColor types.Color `json:"edgeColor"`
Silhouettes bool `json:"silhouettes"`
TransparencyType types.TransparencyTypeEnum `json:"transparencyType"`
}

type ShadowSettings

ShadowSettings is the JSON shape of the View's shadow toggles — the response of MethodViewGetShadows / MethodViewSetShadows and the request of the latter. Density and Softness are in [0,1]. GroundShadow selects the ground-shadow style.

type ShadowSettings struct {
GroundShadow types.GroundShadowEnum `json:"groundShadow"`
ObjectShadows bool `json:"objectShadows"`
AmbientShadows bool `json:"ambientShadows"`
Density float64 `json:"density"`
Softness float64 `json:"softness"`
}

type SheetInfo

SheetInfo is the JSON shape of one drawing sheet.

type SheetInfo struct {
Name string `json:"name"`
Size string `json:"size"` // types.SheetSize spelling ("a3", "custom")
Orientation string `json:"orientation"` // types.SheetOrientation spelling
WidthMM float64 `json:"widthMm"` // laid-out width (orientation applied)
HeightMM float64 `json:"heightMm"` // laid-out height
Active bool `json:"active"`
HasBorder bool `json:"hasBorder"`
HasTitleBlock bool `json:"hasTitleBlock"`
}

type SheetMetalStyleInfo

SheetMetalStyleInfo is the active sheet-metal rule, as reported by getStyle and accepted (field-by-field, omitempty = leave unchanged) by setStyle. Lengths are unit expressions ("0.8 mm", "t*1.5") so they stay parameter-backed end to end; KFactor is the neutral-axis ratio used by the K-factor unfold method.

type SheetMetalStyleInfo struct {
Name string `json:"name"`
Thickness string `json:"thickness"`
BendRadius string `json:"bendRadius"`
ReliefShape string `json:"reliefShape"`
ReliefWidth string `json:"reliefWidth"`
ReliefDepth string `json:"reliefDepth"`
MindGap string `json:"minimumGap"`
UnfoldMethod string `json:"unfoldMethod"`
KFactor float64 `json:"kFactor"`
BendAllowance float64 `json:"bendAllowance,omitempty"` // reported convenience; not an input
}

type SheetMetalStyleResult

SheetMetalStyleResult is the reply of getStyle/setStyle: the active rule after the call.

type SheetMetalStyleResult struct {
Style SheetMetalStyleInfo `json:"style"`
}

type SheetResult

SheetResult is the response of MethodDrawingAddSheet / MethodDrawingSetActiveSheet: the affected sheet.

type SheetResult struct {
Sheet SheetInfo `json:"sheet"`
}

type ShowBalloonTipArgs

ShowBalloonTipArgs is the request of MethodBalloonTipShow.

type ShowBalloonTipArgs struct {
ID string `json:"id"`
}

type ShowBalloonTipResult

ShowBalloonTipResult is the response of MethodBalloonTipShow: Shown is false when the user suppressed this tip ("don't show again").

type ShowBalloonTipResult struct {
Shown bool `json:"shown"`
}

type ShowFileDialogArgs

ShowFileDialogArgs is the request of MethodDialogsShowFileDialog: open the host's file dialog. ID keys the FileDialogChosenEvent that delivers the answer. Save switches to save semantics (type a new name) instead of open. Filter is a display-name|pattern list like "Meshes (*.stl *.obj)|*.stl;*.obj" with FilterIndex picking the initial entry. MultiSelect requests multiple paths (hosts may return a single one when their dialog cannot multi-select).

type ShowFileDialogArgs struct {
ID string `json:"id"`
Title string `json:"title,omitempty"`
Save bool `json:"save,omitempty"`
Filter string `json:"filter,omitempty"`
FilterIndex int `json:"filterIndex,omitempty"`
InitialDir string `json:"initialDir,omitempty"`
MultiSelect bool `json:"multiSelect,omitempty"`
}

type ShowPromptArgs

ShowPromptArgs is the request of MethodPromptsShow: queue a declarative prompt. ID keys the remembered answer (when Restriction allows remembering); Buttons are the answer labels in display order; Default indexes the button focused first. The reply is asynchronous: a remembered prompt resolves instantly, otherwise the head shows it and the answer arrives as a PromptAnsweredEvent.

type ShowPromptArgs struct {
ID string `json:"id"`
Message string `json:"message"`
Buttons []string `json:"buttons"`
Default int `json:"default,omitempty"`
Restriction types.PromptRestriction `json:"restriction,omitempty"`
}

type ShowPromptResult

ShowPromptResult is the response of MethodPromptsShow: when Resolved is true the remembered Answer is final and no event follows; otherwise the prompt is pending and the answer arrives as a PromptAnsweredEvent.

type ShowPromptResult struct {
Resolved bool `json:"resolved"`
Answer string `json:"answer,omitempty"`
}

type ShowTaskPanelArgs

ShowTaskPanelArgs is the request of MethodTaskPanelShow.

type ShowTaskPanelArgs struct {
Panel TaskPanelSpec `json:"panel"`
}

type ShowTriadArgs

ShowTriadArgs is the request of MethodTriadShow (and MethodTriadUpdate).

type ShowTriadArgs struct {
Triad TriadSpec `json:"triad"`
}

type ShowWebDialogArgs

ShowWebDialogArgs is the request of MethodDialogsShowWebDialog: create the web view or replace its title/URL if it exists.

type ShowWebDialogArgs struct {
Dialog WebDialogSpec `json:"dialog"`
}

type ShrinkwrapCreateArgs

ShrinkwrapCreateArgs is the request of MethodAssemblyShrinkwrapCreate: derive the open assembly document Source into the active part as a simplified, lightweight base body. RemoveStyle/MinPartVolume drop parts before merging (MinPartVolume in document units³ applies to RemoveSmallParts); EnvelopeStyle replaces the kept parts with bounding-box proxies; PatchHoles fills internal voids first; MaxHoleDiameter (when > 0, document units) caps surface-opening through-holes/pockets no wider than it, closing them flush while keeping the real outer geometry. The zero options reduce to a plain include-all derive.

type ShrinkwrapCreateArgs struct {
Source uint64 `json:"source"`
RemoveStyle types.ShrinkwrapRemoveStyle `json:"removeStyle,omitempty"`
MinPartVolume float64 `json:"minPartVolume,omitempty"`
EnvelopeStyle types.ShrinkwrapEnvelopeStyle `json:"envelopeStyle,omitempty"`
PatchHoles bool `json:"patchHoles,omitempty"`
MaxHoleDiameter float64 `json:"maxHoleDiameter,omitempty"`
}

type Sketch3DArgs

Sketch3DArgs is the request of the per-3D-sketch methods that take only a target: MethodSketch3DGet, MethodSketch3DEdit, MethodSketch3DExitEdit, MethodSketch3DSolve, MethodSketch3DDelete, MethodSketch3DEntities, MethodSketch3DConstraints, MethodSketch3DDimensions, MethodSketch3DConstraintStatus. SketchIndex is the sketch's index in the active part's 3D-sketch collection (as returned by MethodSketch3DCreate/MethodSketch3DList).

type Sketch3DArgs struct {
SketchIndex int `json:"sketchIndex"`
}

type Sketch3DEntityInfo

Sketch3DEntityInfo is one enumerated entity from MethodSketch3DEntities: its index, session id, kind (oblikovati.org/api/types.Sketch3DEntityKind), construction flag, the defining points (each [x,y,z] in model database units, cm), and a radius for circular kinds (0 otherwise). MoveableStatus answers whether interactive tools may drag the entity (oblikovati.org/api/types.GeometryMoveableStatus wire spelling — M06-F11, Oblikovati/Oblikovati#626).

type Sketch3DEntityInfo struct {
Index int `json:"index"`
ID uint64 `json:"id"`
Kind string `json:"kind"`
Construction bool `json:"construction,omitempty"`
Points [][]float64 `json:"points,omitempty"`
Radius float64 `json:"radius,omitempty"`
// ReferenceKey is the entity's persistent reference key (Oblikovati/Oblikovati#153): a
// document-scoped UUID stable across save/load and edits, unlike the session ID. Store
// it to refer to this entity durably; rebind it with [MethodSketchResolveReference].
ReferenceKey string `json:"referenceKey,omitempty"`
MoveableStatus string `json:"moveableStatus,omitempty"`
}

type Sketch3DInfo

Sketch3DInfo is one row of MethodSketch3DList and the result of MethodSketch3DGet: a 3D sketch's identity, visibility, entity count, remaining DOF, edit state, health, and the display/solve overrides (dimensions-visible, color, defer).

type Sketch3DInfo struct {
Index int `json:"index"`
Name string `json:"name"`
Visible bool `json:"visible"`
DimensionsVisible bool `json:"dimensionsVisible"`
EntityCount int `json:"entityCount"`
DOF int `json:"dof"`
Editing bool `json:"editing"`
Healthy bool `json:"healthy"`
// Shared reports the "share sketch" flag. (A 3D sketch's consumed/ownedBy state
// awaits the 3D path→sketch dependency link; see the 2D [SketchInfo] for those notions.)
Shared bool `json:"shared,omitempty"`
Color string `json:"color,omitempty"`
DeferUpdates bool `json:"deferUpdates,omitempty"`
}

type SketchArgs

SketchArgs is the request of the per-sketch methods that take only a target: MethodSketchGet, MethodSketchEdit, MethodSketchExitEdit, MethodSketchSolve, MethodSketchDelete, MethodSketchEntities, MethodSketchConstraints, MethodSketchDimensions. SketchIndex is the sketch's index in the active part's sketch collection (as returned by MethodSketchCreate / MethodSketchList).

type SketchArgs struct {
SketchIndex int `json:"sketchIndex"`
}

type SketchBlockDefinitionInfo

SketchBlockDefinitionInfo is one row of MethodSketchBlockDefinitionList and the result of MethodSketchBlockDefinitionCreate: the definition's identity plus how much geometry it holds and how widely it is instanced.

type SketchBlockDefinitionInfo struct {
Index int `json:"index"`
Name string `json:"name"`
EntityCount int `json:"entityCount"`
InstanceCount int `json:"instanceCount"`
}

type SketchBlockInfo

SketchBlockInfo is one row of MethodSketchListBlockInstances: a placed block instance — its session id, the definition it instances, its placement (insertion point in sketch cm, rotation in radians CCW, uniform scale), and the live entity count of its definition.

type SketchBlockInfo struct {
Index int `json:"index"`
ID uint64 `json:"id"`
Definition string `json:"definition"`
Position []float64 `json:"position"`
Rotation float64 `json:"rotation"`
Scale float64 `json:"scale"`
EntityCount int `json:"entityCount"`
}

type SketchCustomLineTypeResult

SketchCustomLineTypeResult is the response of MethodSketchSetCustomLineType and MethodSketchGetCustomLineType. Loaded reports whether the sketch holds a custom definition; Pattern is the .lin dash sequence (>0 dash, <0 gap, 0 dot), lengths in cm.

type SketchCustomLineTypeResult struct {
Loaded bool `json:"loaded"`
LineTypeName string `json:"lineTypeName,omitempty"`
FullFileName string `json:"fullFileName,omitempty"`
Pattern []float64 `json:"pattern,omitempty"`
}

type SketchDependent

SketchDependent is one thing that depends on a sketch — today a feature that consumes it, addressed by its stable id (from model.tree), with its display name and kind.

type SketchDependent struct {
ID uint64 `json:"id"`
Name string `json:"name"`
Kind string `json:"kind"`
}

type SketchDependentsResult

SketchDependentsResult is the response of MethodSketchDependents: every dependent of the sketch addressed by SketchArgs.SketchIndex, in history order (empty when nothing uses it).

type SketchDependentsResult struct {
Dependents []SketchDependent `json:"dependents"`
}

type SketchEditEvent

SketchEditEvent is the JSON shape of the EventSketchEditEntered / EventSketchEditExited push events (#148): the host entered or left the edit mode of a sketch — the SketchEvents surface. It is delivered to an add-in's Notify entry point (ADR-0016); an add-in matches on Type and reads the sketch identity from the payload. On exit the Sketch id is the sketch just left. Fires for both UI-driven and add-in-driven sketch-edit transitions.

type SketchEditEvent struct {
Type string `json:"type"` // EventSketchEditEntered or EventSketchEditExited
Document uint64 `json:"document"`
Sketch uint64 `json:"sketch"`
Name string `json:"name,omitempty"`
}

type SketchEntityInfo

SketchEntityInfo is one enumerated entity from MethodSketchEntities: its index, session id, kind (oblikovati.org/api/types.SketchEntityKind), construction flag, the defining points (each [x,y] in sketch-plane cm), and a radius for circular kinds (0 otherwise). MoveableStatus answers whether interactive tools may drag the entity (oblikovati.org/api/types.GeometryMoveableStatus wire spelling — M06-F11, Oblikovati/Oblikovati#626); FitMethod is the interpolation parameterization for the spline kind (oblikovati.org/api/types.SplineFitMethod wire spelling).

type SketchEntityInfo struct {
Index int `json:"index"`
ID uint64 `json:"id"`
Kind string `json:"kind"`
Construction bool `json:"construction"`
Points [][]float64 `json:"points"`
Radius float64 `json:"radius,omitempty"`
// ReferenceKey is the entity's persistent reference key (Oblikovati/Oblikovati#153): a
// document-scoped UUID stable across save/load and edits, unlike the session ID. Store
// it to refer to this entity durably; rebind it with [MethodSketchResolveReference].
ReferenceKey string `json:"referenceKey,omitempty"`
MoveableStatus string `json:"moveableStatus,omitempty"`
FitMethod string `json:"fitMethod,omitempty"`
}

type SketchInfo

SketchInfo is one row of MethodSketchList and the result of MethodSketchGet: a sketch's identity, host plane label, visibility, entity count, remaining DOF, edit state, health, and the display/solve overrides (color, line type/weight, defer).

type SketchInfo struct {
Index int `json:"index"`
Name string `json:"name"`
Plane string `json:"plane"`
Visible bool `json:"visible"`
EntityCount int `json:"entityCount"`
DOF int `json:"dof"`
Editing bool `json:"editing"`
Healthy bool `json:"healthy"`
// Consumed reports whether a feature has consumed this sketch (drives browser nesting and
// the delete guard); OwnedBy names the consuming feature ("" when not consumed); Shared
// reports the "share sketch" flag (a shared sketch stays top-level and reusable by
// several features). Enumerate the full dependent set with [MethodSketchDependents].
Consumed bool `json:"consumed,omitempty"`
OwnedBy string `json:"ownedBy,omitempty"`
Shared bool `json:"shared,omitempty"`
Color string `json:"color,omitempty"`
LineType string `json:"lineType,omitempty"`
LineWeight float64 `json:"lineWeight,omitempty"`
DeferUpdates bool `json:"deferUpdates,omitempty"`
}

type SketchOptionsView

SketchOptionsView is the "sketch" group: the grid and click snapping. Spacing is in model/database units (cm) — unit-independent, like the stored preference.

type SketchOptionsView struct {
GridSpacingCm float64 `json:"gridSpacingCm"`
GridVisible bool `json:"gridVisible"`
GridMajorEvery int `json:"gridMajorEvery"`
SnapToPoints bool `json:"snapToPoints"`
SnapToGrid bool `json:"snapToGrid"`
}

type SketchRectangleArgs

SketchRectangleArgs is the request of MethodSketchRectangle: a closed rectangle from the sketch origin to (Width, Height), each a unit-bearing expression (e.g. "40 mm").

type SketchRectangleArgs struct {
SketchIndex int `json:"sketchIndex"`
Width string `json:"width"`
Height string `json:"height"`
}

type SketchRectangleResult

SketchRectangleResult is the response of MethodSketchRectangle: the sketch index and its resulting profile count.

type SketchRectangleResult struct {
SketchIndex int `json:"sketchIndex"`
Profiles int `json:"profiles"`
}

type SketchReferenceKeyResult

SketchReferenceKeyResult is the response of MethodSketchReferenceKey: the persistent reference key of the sketch addressed by SketchArgs.SketchIndex.

type SketchReferenceKeyResult struct {
ReferenceKey string `json:"referenceKey"`
}

type SketchSettingsResult

SketchSettingsResult is the response of MethodDocumentGetSketchSettings and MethodDocumentSetSketchSettings: the document's current sketch settings.

type SketchSettingsResult struct {
Settings types.SketchSettings `json:"settings"`
}

type SketchTextResult

SketchTextResult is the response of MethodSketchGetText (and of MethodSketchEditText): the entity id plus its resolved text style.

type SketchTextResult struct {
EntityID uint64 `json:"entityId"`
Style types.SketchTextStyle `json:"style"`
}

type SlotRepick

SlotRepick re-points the work plane's reference Slot at a new reference Ref — an origin constant (types.WorkRefXYPlane …), a ref returned by List, or a face key. Slot is the WorkPlaneRefSlot index.

type SlotRepick struct {
Slot int `json:"slot"`
Ref string `json:"ref"`
}

type SnapConstraintArgs

SnapConstraintArgs is the request of MethodAssemblyConstraintsSnap: "grip snap" — pick a geometry A on the component to move and a target geometry B on another component, and the host INFERS the assembly constraint that snaps A onto B (planar faces → mate or flush; cylinder axes → insert; an axis pair → mate; plane + cylinder → tangent; a point → coincident mate), creates it at offset 0, and re-solves so the part jumps into place. Prefer overrides the inference with an [types.AssemblyConstraintType] wire spelling ("mate"|"flush"|"insert"|"tangent"); "" ⇒ auto. The reply is the usual ConstraintResult; its Constraint.Type is the inferred (or preferred) kind.

type SnapConstraintArgs struct {
A ConstraintGeomRef `json:"a"`
B ConstraintGeomRef `json:"b"`
Prefer string `json:"prefer,omitempty"`
}

type SolveSketch3DResult

SolveSketch3DResult is the response of MethodSketch3DSolve: remaining DOF, a status string ("well" | "under" | "over"), whether the Newton/LM iteration converged, and the resulting health.

type SolveSketch3DResult struct {
SketchIndex int `json:"sketchIndex"`
DOF int `json:"dof"`
Status string `json:"status"`
Converged bool `json:"converged"`
Healthy bool `json:"healthy"`
}

type SolveSketchResult

SolveSketchResult is the response of MethodSketchSolve: the solve outcome — remaining DOF, a status string ("well" | "under" | "over"), whether the Newton/LM iteration converged, and the resulting health.

type SolveSketchResult struct {
SketchIndex int `json:"sketchIndex"`
DOF int `json:"dof"`
Status string `json:"status"`
Converged bool `json:"converged"`
Healthy bool `json:"healthy"`
}

type SplineHandleInfo

SplineHandleInfo is the response of MethodSketchSetSplineHandle and MethodSketch3DSetSplineHandle: the handle's session id (0 when the call deactivated it), its current tangent direction and weight.

type SplineHandleInfo struct {
HandleID uint64 `json:"handleId,omitempty"`
Tangent []float64 `json:"tangent,omitempty"`
Weight float64 `json:"weight,omitempty"`
}

type StandardStyleInfo

StandardStyleInfo is one drafting standard's complete style preset.

type StandardStyleInfo struct {
Standard string `json:"standard"` // types.DraftingStandard spelling
Dimension DimensionStyleInfo `json:"dimension"`
Text TextStyleInfo `json:"text"`
Line LineStyleInfo `json:"line"`
}

type StandardStyleResult

StandardStyleResult is the response of MethodDrawingStylesGetActiveStyle / MethodDrawingStylesSetStandard: the active standard's resolved style preset.

type StandardStyleResult struct {
Style StandardStyleInfo `json:"style"`
}

type StatusTextResult

StatusTextResult is the response of MethodStatusGetText.

type StatusTextResult struct {
Text string `json:"text"`
}

type StringFromValueArgs

StringFromValueArgs is the request of MethodUnitsGetStringFromValue and MethodUnitsGetPreciseStringFromValue: a Value in database units of the given UnitsType (a types.UnitsType spelling), formatted in the document's display unit — honoring display precision (GetStringFromValue) or at full precision (GetPreciseStringFromValue).

type StringFromValueArgs struct {
Value float64 `json:"value"`
UnitsType string `json:"unitsType"`
}

type StringResult

StringResult is a single formatted/normalized string (response of the value-formatting and locale/type-name methods).

type StringResult struct {
Value string `json:"value"`
}

type StrokeSetResult

StrokeSetResult is the wireframe payload: every edge sampled into a polyline; PolylineLengths gives each polyline's point count, in order, over the shared VertexCoordinates.

type StrokeSetResult struct {
VertexCount int `json:"vertexCount"`
VertexCoordinates []float64 `json:"vertexCoordinates,omitempty"`
PolylineCount int `json:"polylineCount"`
PolylineLengths []int `json:"polylineLengths,omitempty"`
}

type StyleChangedEvent

StyleChangedEvent is the payload of the EventStyleAdded / EventStyleChanged / EventStyleDeleted push events: the style that changed and its kind ("color" / "lighting").

type StyleChangedEvent struct {
Name string `json:"name"`
Kind string `json:"kind"`
}

type StyleLibrariesResult

StyleLibrariesResult is the response of MethodStylesListLibraries: the loaded libraries in cascade order.

type StyleLibrariesResult struct {
Libraries []StyleLibraryInfo `json:"libraries"`
}

type StyleLibraryInfo

StyleLibraryInfo is one entry of StyleLibrariesResult: a loaded style library and its cascade position (lower Order shadows higher Order for a same-named style).

type StyleLibraryInfo struct {
Name string `json:"name"`
Path string `json:"path"`
Order int `json:"order"`
}

type SubmitCommandLineArgs

SubmitCommandLineArgs is the request of MethodCommandLineSubmit: one line of Command Window input — a command word ("EXTRUDE"), an alias ("E"), a coordinate/value/keyword for the active command's current step ("10,5", "25", "Close"), or "" to finish/repeat. The host drives the same command-line REPL the UI uses, so an add-in or MCP tool can model headlessly: submit "LINE", then "0,0", then "10,0".

type SubmitCommandLineArgs struct {
Line string `json:"line"`
}

type SubstituteComponentsArgs

SubstituteComponentsArgs is the request of MethodAssemblySubstitute: suppress the Source occurrences (by session id) and add one occurrence, named Name at Transform, that instances the simplified component held by the open Document (by document id) — the "substitute representation" of the sources.

type SubstituteComponentsArgs struct {
Sources []uint64 `json:"sources"`
Document uint64 `json:"document"`
Name string `json:"name"`
Transform types.Matrix `json:"transform"`
}

type SuppressOccurrenceArgs

SuppressOccurrenceArgs is the request of MethodAssemblySuppress: exclude (Suppressed=true) or restore the occurrence with id ID from/to the model.

type SuppressOccurrenceArgs struct {
ID uint64 `json:"id"`
Suppressed bool `json:"suppressed"`
}

type TaskPanelClosedEvent

TaskPanelClosedEvent is the push event (type EventTaskPanelClosed) delivering the user's accept/cancel. Accepted is true for OK, false for Cancel/close. Control values are NOT echoed — they already arrived incrementally via the value/references events while the panel was open.

type TaskPanelClosedEvent struct {
Type string `json:"type"` // always EventTaskPanelClosed
ID string `json:"id"`
Accepted bool `json:"accepted"`
}

type TaskPanelSpec

TaskPanelSpec is a modal task panel that takes over the host task area (FreeCAD Task-dialog semantics): declarative PanelControlSpec content with OK/Cancel. Showing is asynchronous — like file dialogs it must never block the session goroutine — so the user's accept/cancel arrives as a TaskPanelClosedEvent. While open, edits to its controls push the same PanelValueChangedEvent / PanelReferencesChangedEvent keyed on this panel's ID. Unlike WebDialogSpec it is built from the shared control vocabulary, so a referenceList composes inside it.

type TaskPanelSpec struct {
ID string `json:"id"`
Title string `json:"title"`
Controls []PanelControlSpec `json:"controls,omitempty"`
OKLabel string `json:"okLabel,omitempty"` // default "OK"
CancelLabel string `json:"cancelLabel,omitempty"` // default "Cancel"
}

type TextStyleInfo

TextStyleInfo is the JSON shape of an annotation text style.

type TextStyleInfo struct {
Name string `json:"name"`
FontName string `json:"fontName"`
HeightMM float64 `json:"heightMm"`
}

type ThemeSummary

ThemeSummary is the lightweight entry of MethodThemeList: enough to populate a theme picker without sending every color.

type ThemeSummary struct {
Name string `json:"name"`
Kind string `json:"kind"`
Active bool `json:"active"`
}

type ThemeView

ThemeView is the JSON shape of one theme: its name, kind (light/dark/custom), and every semantic color as "#RRGGBBAA" hex keyed by the token string. Hex (not floats) keeps the payload compact and human-readable, matching the on-disk theme files.

type ThemeView struct {
Name string `json:"name"`
Kind string `json:"kind"`
Colors map[string]string `json:"colors"`
}

type ThreadInfoResult

ThreadInfoResult is the response of MethodThreadsResolve: the resolved thread data. Diameters and pitch are millimetres. PitchDiameter is the ISO basic pitch diameter; TapDrillDiameter the drill for a tapped hole of this thread (≈ the minor diameter).

type ThreadInfoResult struct {
Designation string `json:"designation"`
ThreadType string `json:"threadType"`
NominalSize string `json:"nominalSize"`
Class string `json:"class,omitempty"`
Metric bool `json:"metric"`
Internal bool `json:"internal"`
RightHanded bool `json:"rightHanded"`
Tapered bool `json:"tapered"`
Pitch float64 `json:"pitch"`
MajorDiameter float64 `json:"majorDiameter"`
MinorDiameter float64 `json:"minorDiameter"`
PitchDiameter float64 `json:"pitchDiameter"`
TapDrillDiameter float64 `json:"tapDrillDiameter"`
}

type ThreadTableQueryArgs

ThreadTableQueryArgs is the request of MethodThreadsTableQuery. The query is progressive: with no filters the result lists the thread types; given ThreadType it also lists that type's nominal sizes; given NominalSize the designations; given Designation the classes. Internal narrows class listings to the internal (nut) or external (bolt) side.

type ThreadTableQueryArgs struct {
Internal bool `json:"internal,omitempty"`
ThreadType string `json:"threadType,omitempty"`
NominalSize string `json:"nominalSize,omitempty"`
Designation string `json:"designation,omitempty"`
}

type ThreadTableQueryResult

ThreadTableQueryResult is the response of MethodThreadsTableQuery. Each level is filled when its prerequisite filter was given (ThreadTypes always).

type ThreadTableQueryResult struct {
ThreadTypes []string `json:"threadTypes"`
NominalSizes []string `json:"nominalSizes,omitempty"`
Designations []string `json:"designations,omitempty"`
Classes []string `json:"classes,omitempty"`
}

type TitleBlockField

TitleBlockField is one resolved title-block field: its name, the resolved text, and the source it resolved from (a "Set:Property" iProperty token, or "" for static text).

type TitleBlockField struct {
Name string `json:"name"`
Value string `json:"value"`
Source string `json:"source,omitempty"`
}

type TitleBlockFieldsArgs

TitleBlockFieldsArgs is the request of MethodDrawingTitleBlockFields: the sheet whose title-block fields to resolve. An empty Sheet uses the active sheet.

type TitleBlockFieldsArgs struct {
Sheet string `json:"sheet,omitempty"`
}

type TitleBlockFieldsResult

TitleBlockFieldsResult is the response of MethodDrawingTitleBlockFields: the title block's definition name and its resolved fields. Fields is empty when the sheet has no title block.

type TitleBlockFieldsResult struct {
DefinitionName string `json:"definitionName"`
Fields []TitleBlockField `json:"fields"`
}

type ToleranceInfo

ToleranceInfo is the JSON shape of a parameter's engineering tolerance: its type spelling (types.ToleranceType.String()) and the deviation band from the nominal value, in database units.

type ToleranceInfo struct {
Type string `json:"type"`
Upper float64 `json:"upper,omitempty"`
Lower float64 `json:"lower,omitempty"`
}

type TopologyRef

TopologyRef identifies one piece of part topology by its persistent reference key, with a representative point [x,y,z] (a face's range-box centre, an edge's midpoint, a vertex's position) so a caller can recognise which entity it is. Kind is the geometry classification for faces — "plane" | "cylinder" | "cone" | "sphere" | "torus" | "spline" — so a caller can pick, say, the cylindrical face to thread (empty for edges/vertices).

type TopologyRef struct {
Key string `json:"key"`
Point []float64 `json:"point"`
Kind string `json:"kind,omitempty"`
}

type TransactionBeginArgs

TransactionBeginArgs is the request of MethodTransactionBegin: open a bounded transaction that coalesces every edit recorded until the matching MethodTransactionEnd into a single undo step. Label names that step (for the undo menu/tooltip). Begin/End nest; only the outermost End commits the group. Begin returns OKResult; End returns the resulting UndoState.

A collaboration add-in drains its buffer of remote operations inside one Begin/End so the whole batch is one team-shared undo step (oblikovati-meeting ADR-0005).

type TransactionBeginArgs struct {
Label string `json:"label,omitempty"`
}

type TransactionEventPayload

TransactionEventPayload is the JSON shape of the five transaction push events (EventTransactionCommitted, EventTransactionUndone, EventTransactionRedone, EventTransactionAborted, EventTransactionDeleted). Document is the affected document's id, Label the display name of the undo step acted on ("" when the event has no single step, e.g. a deleted stream), and Point locates that step relative to the stream's cursor: a commit acts on the current point, undo on the previous, redo on the next, a deleted stream on no point at all.

type TransactionEventPayload struct {
Type string `json:"type"`
Document uint64 `json:"document"`
Label string `json:"label,omitempty"`
Point types.TransactionPoint `json:"point,omitempty"`
}

type TransactionHistory

TransactionHistory is the response of MethodTransactionHistory and MethodTransactionJumpTo: one open document's whole undo stream for a history browser. Entries lists every committed step oldest-first; Position is the cursor — how many steps are currently applied, so Entries[:Position] are undoable past and Entries[Position:] are redoable future, and Position 0 is the document's open/baseline state. Saving does not truncate the stream, so a browser shows every event since the document was opened, with the save points flagged.

type TransactionHistory struct {
Document uint64 `json:"document"`
Name string `json:"name"`
Position int `json:"position"`
Entries []TransactionHistoryEntry `json:"entries"`
}

type TransactionHistoryArgs

TransactionHistoryArgs is the request of MethodTransactionHistory: read the full undo stream of one open document for a history browser. Document is the document's id (from documents.list); 0 (or omitted) means the active document. Reading another document's history does not activate it — a history browser can show several documents' timelines side by side.

type TransactionHistoryArgs struct {
Document uint64 `json:"document,omitempty"`
}

type TransactionHistoryEntry

TransactionHistoryEntry is one committed step in a document's undo stream, oldest first. Saved marks the steps after which the document was written to disk (a save checkpoint), so a browser can show which edits are persisted versus only in memory.

type TransactionHistoryEntry struct {
Label string `json:"label"`
Saved bool `json:"saved,omitempty"`
}

type TransactionJumpToArgs

TransactionJumpToArgs is the request of MethodTransactionJumpTo: move one document's undo cursor to an absolute Position (0 = open state, len(Entries) = latest), undoing or redoing as many steps as needed in one call — the click-to-jump a history browser needs for a long stream. Document is the document's id; 0 (or omitted) means the active document.

type TransactionJumpToArgs struct {
Document uint64 `json:"document,omitempty"`
Position int `json:"position"`
}

type Transform3DArgs

Transform3DArgs is the request of MethodSketch3DTransform: an editing operation over a selection of 3D entities. Op is "move" | "copy" (translate by Vector [x,y,z] cm), "rotate" (by the unit-bearing Angle about the axis through Center [x,y,z] in direction Axis [x,y,z], default +Z), or "delete" (remove the entities). Entities are the session ids of the selection.

type Transform3DArgs struct {
SketchIndex int `json:"sketchIndex"`
Op string `json:"op"`
Entities []uint64 `json:"entities"`
Vector []float64 `json:"vector,omitempty"`
Center []float64 `json:"center,omitempty"`
Axis []float64 `json:"axis,omitempty"`
Angle string `json:"angle,omitempty"`
}

type Transform3DResult

Transform3DResult is the response of MethodSketch3DTransform: the session ids created by a copy (empty otherwise) and the sketch's resulting entity count.

type Transform3DResult struct {
Created []uint64 `json:"created,omitempty"`
EntityCount int `json:"entityCount"`
}

type TransformOccurrenceArgs

TransformOccurrenceArgs is the request of MethodAssemblyTransform: reposition the occurrence with id ID to Transform (its placement in the assembly's space).

type TransformOccurrenceArgs struct {
ID uint64 `json:"id"`
Transform types.Matrix `json:"transform"`
}

type TransformSketchArgs

TransformSketchArgs is the request of MethodSketchTransform — the discriminated edit operation on a selection of entities. Op is "move" | "rotate" | "copy" | "mirror":

  • move: translate the selection in place by Vector ([dx,dy] cm).
  • copy: duplicate the selection, offset by Vector; the copies are returned.
  • rotate: rotate the selection in place about Center ([x,y] cm) by Angle (a unit-bearing expression like "90 deg").
  • mirror: reflect the selection across the line MirrorLine (an entity id); the mirrored copies are returned.
type TransformSketchArgs struct {
SketchIndex int `json:"sketchIndex"`
Op string `json:"op"`
Entities []uint64 `json:"entities"`
Vector []float64 `json:"vector,omitempty"`
Center []float64 `json:"center,omitempty"`
Angle string `json:"angle,omitempty"`
MirrorLine uint64 `json:"mirrorLine,omitempty"`
}

type TransformSketchResult

TransformSketchResult is the response of MethodSketchTransform: the ids of any newly created entities (the copies for "copy"/"mirror"; empty for the in-place "move"/"rotate").

type TransformSketchResult struct {
Created []uint64 `json:"created,omitempty"`
}

type TriadDragEvent

TriadDragEvent is the push event (type EventTriadDrag) streaming a triad gesture: Phase is "start", "move" or "end"; Delta is the row-major 4×4 transform accumulated since the drag started (identity at start).

type TriadDragEvent struct {
Type string `json:"type"` // always EventTriadDrag
Phase string `json:"phase"`
Segment types.TriadSegment `json:"segment"`
MoveType types.TriadMoveType `json:"moveType"`
Delta types.Matrix `json:"delta"`
Context DragContext `json:"context"`
}

type TriadSegmentEvent

TriadSegmentEvent is the push event (type EventTriadSegment) fired when the hovered/selected segment changes (OnSegmentSelectionChange).

type TriadSegmentEvent struct {
Type string `json:"type"` // always EventTriadSegment
Segment types.TriadSegment `json:"segment"`
Hovered bool `json:"hovered"`
}

type TriadSpec

TriadSpec places the triad: a position and an orientation (three column axes; identity when omitted), with the allowed segments (empty ⇒ all). Command, when set, ties the triad's lifetime to that command like interaction graphics.

type TriadSpec struct {
Position types.Point `json:"position"`
AxisX *types.UnitVector `json:"axisX,omitempty"`
AxisY *types.UnitVector `json:"axisY,omitempty"`
AxisZ *types.UnitVector `json:"axisZ,omitempty"`
Allowed []types.TriadSegment `json:"allowed,omitempty"`
Visible bool `json:"visible"`
Command string `json:"command,omitempty"`
}

type UndoState

UndoState is the JSON shape of the active document's transaction-stream cursor: what undo and redo can do next. It is the result of MethodTransactionState and of the mutating MethodTransactionUndo / MethodTransactionRedo (which return the state the move produced, so a caller learns the new cursor position in one round trip). The Next* labels are the names of the steps undo/redo would act on, for a menu/tooltip; they are empty when there is nothing to act on.

type UndoState struct {
CanUndo bool `json:"canUndo"`
CanRedo bool `json:"canRedo"`
NextUndo string `json:"nextUndo,omitempty"`
NextRedo string `json:"nextRedo,omitempty"`
}

type UnfoldResult

UnfoldResult is the reply of unfold: the developed flat pattern of the active part.

type UnfoldResult struct {
Flat FlatPatternInfo `json:"flat"`
}

type UnitStringArgs

UnitStringArgs is the request of MethodUnitsGetTypeFromString: a unit-name spelling ("mm") whose category is wanted.

type UnitStringArgs struct {
UnitString string `json:"unitString"`
}

type UnitsTypeArgs

UnitsTypeArgs is the request of MethodUnitsGetStringFromType: a category whose document-preferred unit name is wanted.

type UnitsTypeArgs struct {
UnitsType string `json:"unitsType"`
}

type UnitsTypeResult

UnitsTypeResult is a single category spelling (response of MethodUnitsGetTypeFromString).

type UnitsTypeResult struct {
UnitsType string `json:"unitsType"`
}

type UnregisterClientApplicationArgs

UnregisterClientApplicationArgs is the request of MethodClientAppsUnregister.

type UnregisterClientApplicationArgs struct {
ID int `json:"id"`
}

type UpdateDocumentArgs

UpdateDocumentArgs is the request of MethodDocumentsUpdate and MethodDocumentsRebuild. AcceptErrorsAndContinue mirrors Update2/Rebuild2: when true the call succeeds and reports any sick features in UpdateDocumentResult.Errors; when false (the default) a sick feature makes the call fail instead.

type UpdateDocumentArgs struct {
AcceptErrorsAndContinue bool `json:"acceptErrorsAndContinue,omitempty"`
}

type UpdateDocumentResult

UpdateDocumentResult is the response of MethodDocumentsUpdate and MethodDocumentsRebuild: whether the document still requires an update (false after a successful recompute) and the features that ended up sick (only populated when AcceptErrorsAndContinue was set).

type UpdateDocumentResult struct {
RequiresUpdate bool `json:"requiresUpdate"`
Errors []FeatureError `json:"errors,omitempty"`
}

type UpdateInteractionGraphicsArgs

UpdateInteractionGraphicsArgs is the request of MethodInteractionGraphicsUpdate: it replaces the transient nodes of one interaction lane (overlay or preview) — the rubber-band/manipulator update path that runs on mouse move. Lane is a types.GraphicsLane ("overlay" or "preview").

type UpdateInteractionGraphicsArgs struct {
Lane string `json:"lane"`
Nodes []GraphicsNode `json:"nodes"`
}

type UpdateMiniToolbarArgs

UpdateMiniToolbarArgs is the request of MethodMiniToolbarUpdate: merge the given controls' values into the toolbar by control id (cheaper than a full re-set while a command streams state).

type UpdateMiniToolbarArgs struct {
ID string `json:"id"`
Controls []MiniToolbarControlSpec `json:"controls"`
}

type UpdateProgressArgs

UpdateProgressArgs is the request of MethodProgressUpdate: advance a bar to Step (of its Steps), optionally replacing its message.

type UpdateProgressArgs struct {
ID int `json:"id"`
Step int `json:"step"`
Message string `json:"message,omitempty"`
}

type UpdateProgressResult

UpdateProgressResult is the response of MethodProgressUpdate. Cancelled reports the user pressed the bar's cancel control — the polling complement of the ProgressCancelledEvent push, so a step loop can stop without event plumbing.

type UpdateProgressResult struct {
OK bool `json:"ok"`
Cancelled bool `json:"cancelled,omitempty"`
}

type ValidateBodyArgs

ValidateBodyArgs is the request of MethodBodyValidate. CheckLevel 1 runs the topology checks (manifold/orientation/closure); 2 adds the face self-intersection scan. 0 means 1.

type ValidateBodyArgs struct {
BodyIndex int `json:"bodyIndex"`
CheckLevel int `json:"checkLevel,omitempty"`
}

type ValidateBodyResult

ValidateBodyResult is the response of MethodBodyValidate.

type ValidateBodyResult struct {
Valid bool `json:"valid"`
Problems []ProblemEntityInfo `json:"problems,omitempty"`
}

type ValueResult

ValueResult is a single numeric value in database units (response of MethodUnitsGetValueFromExpression).

type ValueResult struct {
Value float64 `json:"value"`
}

type ViewCurvesArgs

ViewCurvesArgs is the request of MethodDrawingViewsCurves: the view whose drawing curves to return.

type ViewCurvesArgs struct {
View string `json:"view"`
}

type ViewCurvesResult

ViewCurvesResult is the response of MethodDrawingViewsCurves: the view's drawing curves.

type ViewCurvesResult struct {
Segments []DrawingCurveSegment `json:"segments"`
}

type ViewFrameInfo

ViewFrameInfo is one top-level frame: its caption, window state and pixel size.

type ViewFrameInfo struct {
Caption string `json:"caption"`
State types.WindowState `json:"state,omitempty"`
Width int `json:"width,omitempty"`
Height int `json:"height,omitempty"`
}

type ViewInfo

ViewInfo is the JSON shape of one view: its index in the document's collection, its name, whether it is the active view, its kind, its camera frame, and the display mode it renders in (the camera + display-mode pair a client view carries).

type ViewInfo struct {
Index int `json:"index"`
Name string `json:"name"`
Active bool `json:"active"`
ViewType types.ViewTypeEnum `json:"viewType"`
Camera CameraView `json:"camera"`
DisplayMode types.DisplayModeEnum `json:"displayMode"`
}

type ViewResult

ViewResult is the response of MethodDrawingViewsAddBase / MethodDrawingViewsAddProjected: the created view.

type ViewResult struct {
View DrawingViewInfo `json:"view"`
}

type ViewTabInfo

ViewTabInfo is one document tab of the frame's tab strip.

type ViewTabInfo struct {
Document uint64 `json:"document"`
Title string `json:"title"`
Active bool `json:"active"`
Dirty bool `json:"dirty,omitempty"`
}

type WebDialogChangedEvent

WebDialogChangedEvent is the push event (type EventWebDialogChanged) fired when a web view's visibility changes (shown, or closed by the user/the owner).

type WebDialogChangedEvent struct {
Type string `json:"type"` // always EventWebDialogChanged
ID string `json:"id"`
Visible bool `json:"visible"`
}

type WebDialogSpec

WebDialogSpec is one web view the host presents: a floating dialog (Modal pins it on top) or, with Dock set, a view docked into the chrome like an add-in window. The host's web rendering is behind a thin engine seam; a host without an embedded engine shows the URL with an open-in-browser affordance.

type WebDialogSpec struct {
ID string `json:"id"`
Title string `json:"title"`
URL string `json:"url"`
Modal bool `json:"modal,omitempty"`
Dock types.DockingState `json:"dock,omitempty"`
Visible bool `json:"visible"`
}

type WireInfo

WireInfo is one wire in MethodBodyWires's result.

type WireInfo struct {
Index int `json:"index"`
Closed bool `json:"closed"`
Planar bool `json:"planar"`
Edges int `json:"edges"`
// Key is the persistent reference key; TransientKey the session id.
Key string `json:"key"`
TransientKey uint64 `json:"transientKey"`
}

type WirePolyline

WirePolyline is one wire's sampled polyline: flattened xyz triplets.

type WirePolyline struct {
Points []float64 `json:"points"`
Closed bool `json:"closed,omitempty"`
}

type WireframeDisplayModeOptionsView

WireframeDisplayModeOptionsView is the JSON shape of the wireframe-mode sub-options — a member of DisplayModeOptionsView.

type WireframeDisplayModeOptionsView struct {
DepthDimming bool `json:"depthDimming"`
Silhouettes bool `json:"silhouettes"`
DimmedHiddenEdges bool `json:"dimmedHiddenEdges"`
}

type WorkPlaneInfo

WorkPlaneInfo is one row of MethodWorkPlanesList: a datum plane's identity and current geometry (origin and unit normal, in model units), whether it is one of the origin coordinate-system planes, its health, its constructor Kind, and — for a user plane — the editable inputs MethodWorkPlanesRedefine accepts (its scalars and its re-pickable reference slots). Origin planes report no scalars/slots (not redefinable).

type WorkPlaneInfo struct {
Index int `json:"index"`
Name string `json:"name"`
Ref string `json:"ref"`
Origin []float64 `json:"origin"`
Normal []float64 `json:"normal"`
IsOrigin bool `json:"isOrigin"`
Healthy bool `json:"healthy"`
Reason string `json:"reason,omitempty"` // why Healthy is false (empty when healthy)
Kind string `json:"kind,omitempty"` // a types.WorkPlaneKind value
Scalars []WorkPlaneScalar `json:"scalars,omitempty"` // editable distance/angle inputs
Slots []WorkPlaneRefSlot `json:"slots,omitempty"` // re-pickable reference inputs
}

type WorkPlaneRefSlot

WorkPlaneRefSlot describes one re-pickable reference of a work plane: its slot Index, Label, and Kind — "plane" | "axis" | "point" | "face" — so a client knows what reference string a SlotRepick for this slot accepts (an origin constant, a List ref, or a face key).

type WorkPlaneRefSlot struct {
Index int `json:"index"`
Label string `json:"label"`
Kind string `json:"kind"`
}

type WorkPlaneScalar

WorkPlaneScalar describes one editable scalar of a work plane (offset distance, line-plane angle): its slot Index, Label, the Unit its value is shown in ("mm", "deg", …), and the current Value in that unit. A redefine sets it via ScalarEdit keyed on Index.

type WorkPlaneScalar struct {
Index int `json:"index"`
Label string `json:"label"`
Unit string `json:"unit,omitempty"`
Value float64 `json:"value"`
}

type WorkSurfaceDetailResult

WorkSurfaceDetailResult is the response of MethodWorkSurfacesGet, MethodWorkSurfacesSetVisible, and MethodWorkSurfacesRename: the surface's refreshed state after the call.

type WorkSurfaceDetailResult struct {
Surface WorkSurfaceInfo `json:"surface"`
}

type WorkSurfaceInfo

WorkSurfaceInfo is one row of MethodWorkSurfacesList and the payload of MethodWorkSurfacesGet: a construction surface's identity, display state, the count of surface bodies it wraps, the feature that produced it, and a stable reference for consuming it as a feature input.

type WorkSurfaceInfo struct {
Index int `json:"index"`
Name string `json:"name"`
Ref string `json:"ref"`
Visible bool `json:"visible"`
Translucent bool `json:"translucent"`
Bodies int `json:"bodies"` // number of surface bodies wrapped
Source string `json:"source,omitempty"` // name of the feature that produced it
}

type WorkSurfaceRefArgs

WorkSurfaceRefArgs is the request of MethodWorkSurfacesGet: one work surface by its Index in the collection (from MethodWorkSurfacesList).

type WorkSurfaceRefArgs struct {
Index int `json:"index"`
}

Generated by gomarkdoc