Outputs
See how evaluated instances become aligned drawings, BOMs, schedules, and structured exports.
See how nested blocks, propagated inputs, merged scope, and reusable assemblies let simple parts scale into larger systems.
Composition is how simple blocks become full systems.
A block can contain nested block references, and those nested references are resolved using the same logic system as top-level references.
Nested references are evaluated recursively through the evaluation engine.
When a block contains another block reference, the child does not evaluate in isolation. It evaluates within a merged scope that includes parent-resolved parameters and variables plus the child's own resolved inputs.
This is what makes assembly behavior possible. A parent block can compute values once and pass them into multiple nested children without duplicating logic in every child instance.
Without composition, a larger system tends to turn into copied geometry plus copied logic. With composition, the system remains modular while still behaving as a coordinated whole.
Parameter propagation happens by name and by authored reference values. A child parameter can receive a raw literal, a direct token such as {Width}, an expression, or an inherited same-named value from parent scope when the child instance leaves that parameter unspecified.
This allows nested blocks to remain reusable while still participating in larger assemblies.
During realization, the engine merges parent context with child-resolved values. Geometry, directives, and injectable fields inside the nested block are then resolved against that merged context before the result is transformed into its final position.
The result is not simple insertion. It is evaluated composition.
Static insertion places something inside something else. Composition goes further. The child system is evaluated with knowledge of the parent context, inherited values, and parent-driven expressions.
That distinction is what allows coordinated systems to stay coordinated. The child is not just positioned. It is resolved.
A useful mental model is to think of each block as a self-contained system fragment that can participate in a larger system without losing its identity.
Instead of copying geometry and formulas into bigger and bigger drawings, LogiDraft scales by evaluating nested systems together. Composition keeps definitions modular while letting them behave as one coordinated whole.
Composition introduces context stacking. A child block resolves its own parameters and variables, but it does so while parent-resolved values are already available for inheritance, expressions, and later injection.
This means parent-to-child propagation is not just data copying. It is context formation. Each nested level adds another evaluation frame that can contribute values to the next level down.
The subtle behavior is that child-specific values still stay local. A child can override what it needs to override while inherited values continue to flow where no child-specific value is supplied. This is what allows assemblies to stay both reusable and coordinated.
A control power assembly is a concrete example. A parent block can determine load-related values once, then flow those values into transformer, fuse, and labeling child blocks so the whole subsystem resolves together.
For the non-visual results produced by composed systems, continue to Outputs. For exact directive properties and command behavior, use Reference. To see nested assemblies in a working system, use Help or open the Control Power Panel example.
See how evaluated instances become aligned drawings, BOMs, schedules, and structured exports.
Follow a guided example to watch these ideas update in a working LogiDraft model.
Use the reference when you want exact syntax, commands, function signatures, and field names.
See nested assemblies inherit context while still resolving their own logic.