The constructor takes a kind, its parameters and options:
Identity
Each body has anogId. Pass your own in the options, or let the SDK make one. Use it to find the body again, for example in a picking result or a STEP report.
Inputs stay separate
An operation reads its inputs when you call it. The result does not follow them later:- The wire that you extruded stays a separate body. Changing it later does not change the solid.
- The tools of an
operatecall stay separate, live solids. Moving or disposing a tool later does not change the target. - A body is drawn only if you add it to the scene.
Shapes, copies and instances
A body points to a shape. Two ways make a second body from the first:getInstanceCount() gives the number of bodies that share the shape. makeUnique() gives a body its own copy, so you can edit it alone. Instances are cheap: the kernel stores the shape and its display mesh once.
Edits
Shape edits change the body in place and give its shape a new revision:solid.operate(...): booleans and shell.body.rebuild(kind, params): new parameters. A wire stays a wire and a solid stays a solid. An earlieroperateresult is gone, so calloperateagain after it.body.mirror(plane): a reflection across a plane.
Dispose
Calldispose() on a body or an assembly that you no longer need. A disposed body throws Disposed on every call. If a mark is live, a rollback can bring the body back.
clone() gives a display copy for Three.js only, with no kernel shape. copy() throws; use duplicate().
