Builds the box layout for a class’s inheritance diagram: a list of columns (left = most distant ancestor, right = cls itself), each column a list of display-name labels stacked top-to-bottom.

Only the class’s PRIMARY (first-listed) base is walked further up its own ancestry chain (one box per generation, single-file) – additional direct bases (multiple inheritance) each contribute exactly one box, placed in the column immediately left of cls alongside the primary base’s nearest ancestor, fanning in to cls. This covers both the common single- inheritance chain (e.g. OdGiDrawable -> OdNwObject -> OdNwDatabase) and simple multiple inheritance (e.g. Box : Shape, IDrawable) without attempting to lay out full diamond/deep-multi-inheritance graphs.

Shared between the ODA and Default renderer families – generic, catalog-shape-only logic with no Docomatic-specific convention baked in. A caller deciding whether a BASE-LESS entity should still get a lone-box diagram (a Docomatic-parity convention, confirmed real for ODA but not meaningful for Default) makes that call itself on top of this function’s None result; this function never invents a diagram out of nothing.

Returns:

The column layout, or None if cls has no base class at all.

Methods

build_inheritance_columns

build_inheritance_columns(cls, classes_by_fqn: Dict) -> Optional[List[List[str]]]

Builds the box layout for a class’s inheritance diagram: a list of columns (left = most distant ancestor, right = cls itself), each column a list of display-name labels stacked top-to-bottom.

Only the class’s PRIMARY (first-listed) base is walked further up its own ancestry chain (one box per generation, single-file) – additional direct bases (multiple inheritance) each contribute exactly one box, placed in the column immediately left of cls alongside the primary base’s nearest ancestor, fanning in to cls. This covers both the common single- inheritance chain (e.g. OdGiDrawable -> OdNwObject -> OdNwDatabase) and simple multiple inheritance (e.g. Box : Shape, IDrawable) without attempting to lay out full diamond/deep-multi-inheritance graphs.

Shared between the ODA and Default renderer families – generic, catalog-shape-only logic with no Docomatic-specific convention baked in. A caller deciding whether a BASE-LESS entity should still get a lone-box diagram (a Docomatic-parity convention, confirmed real for ODA but not meaningful for Default) makes that call itself on top of this function’s None result; this function never invents a diagram out of nothing.

Returns:

The column layout, or None if cls has no base class at all.

ParameterTypeDescription
clsAnyThe ClassModel to diagram.
classes_by_fqnDictAll classes in the catalog, keyed by fully_qualified_name,

Generated with Flude

Copyright © 2026