Introduction
This IDS4ALL converter, developed by Simon Fischer, Harald Urban, Konstantin Höbart and Christian Schranz from the Digital Building Process research group at the TU Wien(https://www.tuwien.at/cee/ibb/zdb), transfers information requirements from an Excel file into an IDS file. In practice, information requirements are often defined in tabular form in Excel. This tool is designed to help you easily transfer them to IDS while taking advantage of the full functionality of IDS. The aim is to use an Excel file structure that is similar to the existing structures for information requirements in order to facilitate the adaptation to IDS.
The converter converts information requirements defined according to the ‘IDS4ALL template’ into an IDS file.
The template contains five work sheets:
- IDS4ALL: Defines general information (metadata) about the IDS. This sheet is mandatory and its structure is predefined and must be adhered to.
- Template: Contains all possible columns without any specifications as template to start with.
- Example specifications: Contains examples for all functionalities of the IDS4ALL converter described in the user manual. Can also be used as template sheet.
- User manual: Explanation of the IDS4ALL converter in English
- User manual: Explanation of the IDS4ALL converter in German
In the following, the structure of the ‘Example specifications’ sheet is described in detail.
Structure of the ‘Example specifications’ sheet
The ‘Example specifications’ sheet introduces individual columns for possible entries in an IDS facet. In a classic or traditional information requirement table there is a column for the IFC entity, defining the applicability, and columns for the property set, property name, property data type and property value to define the requirements. In the same way, columns are introduced for the other IDS facets for both the Applicability and the Requirements. The names of the columns are predefined and must be adhered to. Columns for IDS Applicability start with ‘A.’. Columns for the IDS Requirements start with ‘R.’ Additional general columns (Phase, Role, Usecase, SpecificationCardinality) do not have a prefix. The order of the columns in the Excel table is not predefined. Likewise, not all columns must be present. Columns of IDS facets that are not required can be removed or omitted, which helps to keep the Excel file simple. This makes the IDS4ALL converter applicable to both simple classical information requirements and more elaborate ones using the full potential of IDS. However, if a facet is used, it must be ensured that all required columns of the facet are also used. For example, the ‘PropertySet’ and ‘Property’ entries are required for the Property Facet. If the Property Facet is used, at least these two columns must be filled in.
The definition of specifications works row wise. Different rows with the same Applicability are merged into one specification. If the different rows concern different requirements, they are merged with an ‘And’ logic into one specification. However, different rows often also concern the same requirements, for example, lists of possible property values are often listen in separate rows. Therefore, for the columns R.AttributeValue and R.PropertyValue different rows can also be used to list different possible values. If all other entries in the rows are equal, the values in the different rows are merged into one list of possible values with an ‘Or’ logic (see ‘Example specifications’, rows 12-21 and 22-31). The second way to define lists of ‘Or’ values is to use the | delimiter (see description of special characters/symbols). The order of the rows is not predefined. Also, empty rows are permitted. These are ignored by the converter (see ‘Example specifications’, rows 55 and 61). In general, the row structure is not hierarchical. Each row must be able to stand on its on. This means each row must contain all information and nothing from previous rows is inherited. However, structuring the data by header rows for a new entity or a new property set as in the ‘Example specifications’ is possible. A header row in the Applicability (see ‘Example specifications’, row 5) creates an additional general specification, in which all information of the more specific specifications is merged. It does not replace the more specific specifications, it is an additional one. A header row in the Requirements (see ‘Example specifications’, row 6) does not create a new specification. Instead, it is merged with the more detailed specifications below. However, if you separate your data into different IDS files by using the general columns, make sure that the general columns are also filled in for these header rows (should match one of the general data of the more specific specifications below, which one is irrelevant). Otherwise, the rows are not merged and incomplete facets are generated.
Below is a list of the predefined column names divided into Applicability, Requirements and general information, including an explanation:
Applicability column names 4847_e2ab5b-51> |
Requirements column names 4847_2eb63e-12> |
General column names 4847_27f7bc-e8> |
Description 4847_0f8dd1-02> |
Permitted special symbols 4847_2cb9cf-2d> |
---|---|---|---|---|
A.Entity 4847_38e3d0-87> |
R.Entity 4847_3517e7-19> | 4847_46f43d-a0> |
Entity Facet: Definition of the IFC entity and the PredefinedType in the form ‘Entity.PredefinedType’. Caution: Standardized PredefinedTypes must be specified in upper case as defined in the IFC standard (see ‘Example specifications’, row 33). User-defined types can be written in lower case (see ‘Example specifications’, row 34). 4847_d1c555-17> |
all 4847_94f352-0e> |
4847_5fa5b7-5f> |
R.Description.Entity 4847_7e28a4-ae> | 4847_c0defe-9c> |
Entity Facet: Description of the IFC entity. Can be used in combination with the Entity Facet in the Requirements to store general information about an entity in the instructions of the Entity Facet. Used, for example, to provide a unique description of all entities that appear in the information requirements. For this purpose, a specification can contain the entity facet in the applicability and in the requirements, with the description added in the requirements. (see ‘Example specifications’, rows 3 and 4). Adding a description is only possible in the requirements, because the IDS schema does not allow instructions in the facet when it is used in the applicability. 4847_ff0d63-14> |
\& 4847_a4d835-fb> |
A.PropertySet 4847_e8ab84-77> |
R.PropertySet 4847_d84160-82> | 4847_e75ba4-57> |
Property Facet: Definition of the PropertySets 4847_20c5bd-2c> |
all 4847_7058c4-61> |
A.Property 4847_dcb466-9e> |
R.Property 4847_c789b9-3b> | 4847_e2e0e0-59> |
Property Facet: Definition of the Property name. This value is saved in IDS under the baseName in the Property Facet. 4847_a389b2-14> |
all 4847_1d29e3-fc> |
A.PropertyDatatype 4847_d71e42-c0> |
R.PropertyDatatype 4847_4765af-6b> | 4847_448801-11> |
Property Facet: Definition of the data type of the property (e.g. IfcLabel, IfcBoolean). 4847_e65215-da> |
\& 4847_040547-6d> |
A.PropertyValue 4847_a4c5b5-e5> |
R.PropertyValue 4847_7651d6-8e> | 4847_d485fa-74> |
Property Facet: Definition of the property value 4847_417478-2c> |
all 4847_0421f9-56> |
4847_6c4099-31> |
R.PropertyURI 4847_705ef6-0d> | 4847_e3f71a-4f> |
Property Facet: Definition of the URI of the property 4847_cd5ea5-eb> |
\& 4847_8f2854-6c> |
4847_03af43-e1> |
R.Description.Property 4847_cdf91c-6f> | 4847_a8dcd8-1c> |
Property Facet: Description of the property. Can be used in combination with the Property Facet in the Requirements to store general information about a property in the instructions of the Property Facet (see ‘Example specifications’, row 9). Adding a description is only possible in the requirements, because the IDS schema does not allow instructions in the facet when it is used in the applicability. 4847_40652c-65> |
\& 4847_b5bfab-5c> |
A.Material 4847_dd0cf4-1e> |
R.Material 4847_a2ecea-8a> | 4847_435998-e7> |
Material Facet: Definition of the material name 4847_19b6a8-49> |
all 4847_988fd2-ef> |
4847_d04a58-97> |
R.MaterialURI 4847_900270-3d> | 4847_29ee36-4b> |
Material Facet: Definition of the URI of the material 4847_d3ed37-b6> |
\& 4847_31c28f-38> |
A.Attributes 4847_1fd939-bf> |
R.Attributes 4847_cce04d-0c> | 4847_80eb4f-e0> |
Attribute Facet: Definition of the attribute name 4847_9842df-4e> |
all 4847_f7fe5e-c7> |
A.AttributeValue 4847_5d4b4d-e0> |
R.AttributeValue 4847_91404d-f4> | 4847_0824e8-46> |
Attribute Facet: Definition of the attribute value 4847_dca100-37> |
all 4847_9e8766-67> |
A.Classification 4847_017cec-57> |
R.Classification 4847_bad14d-b7> | 4847_b0d424-a4> |
Classification Facet: Definition of the classification name 4847_3ba4a7-c6> |
all 4847_96eb8d-a0> |
A.ClassificationSystem 4847_b6b45c-5b> |
R.ClassificationSystem 4847_8f6d78-4a> | 4847_efea9f-db> |
Classification Facet: Definition of the classification system 4847_7d7df9-bc> |
all 4847_7d1b54-66> |
4847_522e00-b3> |
R.ClassificationURI 4847_ffaf4e-74> | 4847_b7ad4b-5a> |
Classification Facet: Definition of the URI of the classification 4847_5eab52-25> |
\& 4847_a580f2-e3> |
A.PartOfRelation 4847_c85988-44> |
R.PartOfRelation 4847_9eb006-84> | 4847_cd684e-ba> |
PartOf Facet: Definition of the used relation 4847_e052a9-26> |
all 4847_bdcf65-53> |
A.PartOfEntity 4847_47d320-ef> |
R.PartOfEntity 4847_e65fef-4f> | 4847_f93e5b-b1> |
PartOf Facet: Definition of the IFC entity that is to be linked to the current element via the specified relation 4847_219c68-69> |
all 4847_506e2f-74> |
4847_70e5e0-65> |
R.Cardinality 4847_da6d91-4a> | 4847_ff3f33-9c> |
Definition of the cardinality of a facet. The cardinality of a facet in the requirements determines whether the defined requirement must be fulfilled (required), may be fulfilled (optional), or must not be fulfilled (prohibited). This column refers to all facets in the requirements. If several different facets are used in a row and a cardinality is defined, this applies to all facets in that row. If the facets should have different cardinalities, they can be split across several rows, as several rows in a specification are merged (provided that the applicability matches). This column is optional. If it is not used, each facet is given the default value ‘required’. 4847_0138bc-55> |
\& 4847_69beb0-45> |
4847_c11947-2c> | 4847_e3e5d5-ad> |
Phase 4847_d765a1-34> |
Indication of the project phases in which the specification is required. This information is saved in IDS in the instructions of the specification and is also used for separating into individual IDS files (depending on the entry in the IDS4ALL worksheet). 4847_b9984c-ed> |
\& and | (have same meaning in this column) 4847_975085-ac> |
4847_da0664-28> | 4847_2a7834-64> |
Role 4847_df9382-0b> |
Specification of the role(s) (e.g. architecture, structural design) that is (are) responsible for the specification. This information is saved in IDS in the instructions of the specification and is also used to separate individual IDS files (depending on the entry in the IDS4ALL worksheet). 4847_d74a6b-03> |
\& and | (have same meaning in this column) 4847_1d26d3-23> |
4847_1705ee-84> | 4847_7ba1fe-de> |
Usecase 4847_38e44d-32> |
Indication of the use cases in which the specification is required. This information is saved in IDS in the instructions of the specification and is also used to separate individual IDS files (depending on the entry in the IDS4ALL worksheet). 4847_ca237b-8c> |
\& and | (have same meaning in this column) 4847_d74b0b-82> |
4847_d1af9d-84> | 4847_bd22d9-4c> |
SpecificationCardinality 4847_2ead1c-5f> |
Definition of the cardinality of a specification. The cardinality of a specification defines whether the applicable elements must be present in the model.
Three different values are valid in this row (required, optional, prohibited). These values are saved in the applicability of a specification and transformed into the “occurs” attributes of the attribute part of an IDS. |
none 4847_d65710-1b> |
4847_ac6b39-d2> | 4847_0e6320-c7> |
SpecificationIfcVersion 4847_63352d-5a> |
Definition of the IFC version for a specification. If this column is used, it overrides the IFC version from the IDS4ALL spreadsheet.
In rows where no specific IFC version is defined, the default versions from the IDS4ALL spreadsheet remain. Allowed values: |
\& and | (have same meaning in this column) 4847_c7ef3d-68> |
Special characters / symbols
Special characters/symbols are required to define more than just simple values in individual cells. The special characters always indicate a complex restriction or special processing of the values in the cell. Therefore, they are not allowed as normal text. The special characters are not permitted in each column. The list above shows which special characters are permitted in which column.
Special character / symbol 4847_b2f171-1f> |
Definition 4847_3091d1-cd> |
Description 4847_b5923b-73> |
---|---|---|
| 4847_c30a25-46> |
Or 4847_0c66b5-cd> |
This symbol separates values of an ‘Or’ list within one cell. It is used to define a list of possible values in one cell.
The ‘Or’ symbol has different functionalities in the Requirements and the Applicability. In the Requirements, these values are saved in IDS as a complex ‘enumeration’ restriction (see ‘Example specifications’, rows 47 and 48). |
\& 4847_db6d18-89> |
And 4847_71bf6e-89> |
This symbol makes it possible to link several values with an ‘And’ (see ‘Example specifications’, row 49).
It is used to combine several facets into one specification.
This logic always refers to all columns that belong to a facet.
Care must be taken to ensure that the same number of ‘And’ symbols are used in all columns of the Facet (e.g. PropertySet: Pset_WallCommon&Pset_WallCommon; Property: LoadBearing&Compartmentation; PropertyValue: True&False).
With an optional parameter in IDS, as with PropertyValue, values can also be left blank (e.g. True&).
This means that the second value is not defined and the IDS specification specifies that the property must exist with any value. |
pattern= 4847_e1c945-9b> |
Regex pattern 4847_bec56e-7b> |
Definition of a schema for the character string of the value (see ‘Example specifications’, row 49). Is defined by regular expressions (regex). 4847_dcb5a4-1f> |
length= 4847_e1cf26-fa> |
Exact length of a value 4847_030cdc-4c> |
Restriction of the number of individual characters of a value 4847_340c2b-fb> |
length>= 4847_0bfaa2-82> |
Minimum length of a value 4847_fd4c2c-8f> |
Restriction of the number of individual characters of a value 4847_8f1b76-c8> |
length<= 4847_a078d6-4e> |
Maximum length of a value 4847_3ca00d-32> |
Restriction of the number of individual characters of a value (see ‘Example specifications’, row 50) 4847_406468-79> |
< 4847_cf7a00-dd> |
smaller than 4847_e16d6e-78> |
Restriction of a numerical value 4847_e4e499-2f> |
<= 4847_4139e5-a1> |
smaller or equal as 4847_1cd24f-cb> |
Restriction of a numerical value (see ‘Example specifications’, row 51) 4847_5e8619-d4> |
> 4847_a82f67-b8> |
greater than 4847_c4758e-40> |
Restriction of a numerical value 4847_945b5d-53> |
>= 4847_d8cea4-1a> |
greater or equal as 4847_7d1730-5f> |
Restriction of a numerical value 4847_b580ef-56> |
Limitations
The decimal separator of a numerical value must be a point or a comma.
The name of a specification cannot be defined by the user. It is generated automatically from the IFC entity.
Defining custom values for the purpose and milestone of the IDS is not possible. These values are automatically generated from the general columns. The phases are saved as milestones and the combination of roles and use cases as purpose.