IfcTable
Definition from IAI: A data structure for the provision of
information in the form of rows and columns. Each instance may have a heading
row with titles or descriptions for each column. The rows of information are
stored as a list of IfcTableRow objects.
Limitation: In this release of IFC the rows of an IfcTable object
are constrained to have the same number of cells. The first Row of the table
provides the number of cells. All other rows are forced to include the same
number of cells. This is enforced by the WR2.
HISTORY: New entity in IFC R1.5.
EXPRESS specification:
|
|
|
NumberOfCellsInRow
|
:
|
INTEGER := HIINDEX(Rows[1].RowCells);
|
NumberOfHeadings
|
:
|
INTEGER := SIZEOF(QUERY( Temp <* Rows | Temp.IsHeading));
|
NumberOfDataRows
|
:
|
INTEGER := SIZEOF(QUERY( Temp <* Rows | NOT(Temp.IsHeading)));
|
|
|
WR1
|
:
|
SIZEOF(QUERY( Temp <* Rows | HIINDEX(Temp.RowCells) <> HIINDEX(Rows[1].RowCells))) = 0;
|
WR2
|
:
|
SIZEOF(QUERY( Temp <* Rows | HIINDEX(Temp.RowCells) <> HIINDEX(Rows[1].RowCells))) = 0;
|
WR3
|
:
|
{ 0 <= NumberOfHeadings <= 1 };
|
|
|
|
Attribute definitions:
Name
|
:
|
A unique name which is intended to describe the usage of the Table.
|
Rows
|
:
|
Reference to information content of rows.
|
NumberOfCellsInRow
|
:
|
The number of cells in each row, this complies to the number of columns in a table. See WR2 that ensures
that each row has the same number of cells. The actual value is derived from the first member of the
Rows list.
|
NumberOfHeadings
|
:
|
The number of headings in a table. This is restricted by WR3 to max. one.
|
NumberOfDataRows
|
:
|
The number of rows in a table that contains data, i.e. total number of rows minus number of heading rows
in table.
|
Formal Propositions:
WR1
|
:
|
Ensures that each row defines the same number of cells. This restricts the available table styles in
IFC Release 1.5. The rule compares whether all other rows of the IfcTable have the same number of cells
as the first row. EXPRESS = SIZEOF(QUERY( Temp <* Rows | HIINDEX(Temp.RowCells) <> HIINDEX(Rows[1].RowCells)))
= 0
|
WR2
|
:
|
Ensures that each row defines the same number of cells. This restricts the available table styles in
IFC Release 1.5. The rule compares whether all other rows of the IfcTable have the same number of cells
as the first row. EXPRESS = SIZEOF(QUERY( Temp <* Rows | HIINDEX(Temp.RowCells) <> HIINDEX(Rows[1].RowCells)))
= 0
|
WR3
|
:
|
Ensures that there is one heading row as maximum. This restricts the allowed number of heading rows for
this release. This limitation may be removed in future releases. EXPRESS = 0 <= NumberOfHeadings
<= 1 }
|
Inheritance graph
|
|
|
NumberOfCellsInRow
|
:
|
INTEGER := HIINDEX(Rows[1].RowCells);
|
NumberOfHeadings
|
:
|
INTEGER := SIZEOF(QUERY( Temp <* Rows | Temp.IsHeading));
|
NumberOfDataRows
|
:
|
INTEGER := SIZEOF(QUERY( Temp <* Rows | NOT(Temp.IsHeading)));
|
|
|
|