In general {Document} models a BOM which consists of set of assemblies where an assembly
can be a set of sub-assemblies and individual components. A special case are assemblies
that consist of only one single part.
Each main assembly, sub-assembly, and individual part forms an {Article}.
The {Document} is defined by a list of {Article}s.
Each {Article} has a unique ID that can be used to address it within {Document}.
Two {Article}s are linked if one {Article} is the sub-component of another {Article}.
For main-assembly or sub-assembly {Article}s the list of subcomponents is defined by a list of
{SourceArticle}s. A {SourceArticle} consists of a reference to an {Article} and the relative quantity.
The initial {Document} is built from a set of CAD input files. Each CAD input file can
hold either an individual part or an assembly. Each CAD input file has a directly associated
{Article} in the BOM. In case an input CAD file holds an assembly this article is the main assembly.
This directly associated {Article} is called "terminal", i.e. it is not references by any other {Article}
as a {SourceArticle}.
The application document
In general {Document} models a BOM which consists of set of assemblies where an assembly can be a set of sub-assemblies and individual components. A special case are assemblies that consist of only one single part.
Each main assembly, sub-assembly, and individual part forms an {Article}. The {Document} is defined by a list of {Article}s.
Each {Article} has a unique ID that can be used to address it within {Document}. Two {Article}s are linked if one {Article} is the sub-component of another {Article}.
For main-assembly or sub-assembly {Article}s the list of subcomponents is defined by a list of {SourceArticle}s. A {SourceArticle} consists of a reference to an {Article} and the relative quantity.
The initial {Document} is built from a set of CAD input files. Each CAD input file can hold either an individual part or an assembly. Each CAD input file has a directly associated {Article} in the BOM. In case an input CAD file holds an assembly this article is the main assembly. This directly associated {Article} is called "terminal", i.e. it is not references by any other {Article} as a {SourceArticle}.