feature_revolve
Creates or cuts revolved solid or surface features by sweeping sketch profiles or planar faces around a chosen axis, with full, angle, two-angle, or to-entity extents.
Instructions
Revolve sketch profiles or planar faces around an axis - shafts, pulleys, bottles, grooves (operation="cut").
Units: angles are degrees (a string is a Fusion expression, e.g. "180 deg");
units only applies to {"sketch", "point"} profile specs. Refs: profiles from
sketch_draw / sketch_profiles; the axis is a sketch line ref (sketch_draw refs), a
construction axis (construction_axis, origin:X|Y|Z) or a straight BRep edge
(inspect_query). The profile must lie on one side of the axis. is_solid=false
revolves a surface body (new_body / new_component only).
Extents: full (default) = 360 deg; angle with symmetric=true splits the angle to both sides of the sketch plane; two_angles sets each side; to_entity revolves up to a face, body, construction plane, vertex or construction point, starting towards the sketch normal (direction="positive") or away from it ("negative").
Errors: an axis that is not linear (e.g. a circular edge) or a wrong extent field -> INVALID_PARAMS (nothing changed); a feature Fusion computes with an error -> FUSION_API_ERROR and the timeline is rolled back.
Returns {"feature": {ref, type, name}, "health": {"state": ok|warning|error|unknown, "message"}, "created_bodies": [{ref, type, name}], "modified_bodies": [{ref, type, name}], "removed_bodies": [<refs of bodies consumed by join/cut>], "component"?: {ref, type, name} (new_component only)}. Body geometry is not repeated: describe the bodies with inspect_* if needed.
Examples:
feature_revolve(profiles=["profile:@5,20"], axis="origin:Z")
feature_revolve(profiles=[...], axis=, extent={"type": "angle", "angle": 90, "symmetric": true}, operation="cut")
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| axis | Yes | Axis of revolution: a sketch line, a construction axis (construction_axis or origin:X|Y|Z) or a straight edge (inspect_query) | |
| units | No | Unit of plain-number lengths and points | mm |
| extent | No | {"type": "full"} (default, 360 deg) | {"type": "angle", "angle"=360, "symmetric"=false} | {"type": "two_angles", "angle1", "angle2"} | {"type": "to_entity", "entity", "direction"=positive} | |
| is_solid | No | true (default) = solid; false = surface body (new_body / new_component only; close surfaces with surface_stitch, check is_solid) | |
| profiles | Yes | Profiles to use: 'profile:<sketch>@x,y' refs from sketch_profiles / sketch_draw, {"sketch", "point"} / {"sketch", "curves"} / {"sketch", "all": true}, or planar face refs (inspect_query) | |
| operation | No | new_body (default), join, cut, intersect or new_component | new_body |
| participant_bodies | No | Body refs join/cut/intersect act on (default: every body it touches); not allowed with new_body / new_component |