Skip to main content

Attached Bodies

AttachedBody models non-structural equipment (for example trays, skids, vessels) that contributes loads without participating as a deformable structural member.

Concept

An attached body is represented by:

  • A geometric primitive (currently Box)
  • A rigid spine with ordered spine nodes
  • Rigid links from spine nodes to the structural model

All body loads are applied at the COG node. Rigid spine/link elements then transfer and distribute forces through statics.

Basic usage

var body = new AttachedBody(
"Heat Exchanger",
BodyPrimitive.Box,
new Point3D(2.5, 0.0, 3.0),
width: 1.2,
depth: 0.8,
height: 2.0,
mass: 500);

body.SpineAxis = SpineAxis.Z;
body.AddSurfaceLoad(SurfaceType.Top, LoadType.SnowLoad);
body.AddSurfaceLoad(SurfaceType.Front, LoadType.WindLoad);
body.AddSurfaceLoad(SurfaceType.Back, LoadType.WindLoad);
model.AddAttachedBody(body);

Attachments

Attach any spine node to the structure:

// Attach start endpoint
body.AttachToSpineNode(0, structuralNode);

// Add extra spine node and attach it
var extra = body.AddSpineNode(0.25);
body.AttachToSpineNode(body.SpineNodes.IndexOf(extra), otherStructuralNode);

Attach directly to a member parameter:

body.AttachToMember(spineNodeIndex: 0, structuralMember, memberPosition: 0.4, isAnalysisGenerated: false);

Wind force coefficient mode

Set ForceCoefficient to use EN 1991-1-4 §7.6 style drag loading:

F = Cf * qp(z) * Aref

When ForceCoefficient is not set, the per-face Cp model is used.

Notes

  • Current implementation scope is Box primitive.
  • Rigid links use a penalty stiffness material (E_rigid = 1e8 * E_ref).
  • Loads are applied at COG; no manual top/bottom force splitting.