diff --git a/Documentation/README.md b/Documentation/README.md new file mode 100644 index 0000000..14000e9 --- /dev/null +++ b/Documentation/README.md @@ -0,0 +1,37 @@ +# Information Delivery Specifications + +![IDS Logo](ids-logo.png) + +**Information Delivery Specifications (IDS)** is a buildingSMART standard for specifying and checking simple information requirements from IFC models. It is designed as a free, lightweight, standardised approach to model checking. + +## Introduction + +An IDS is a file format ending in `.ids` containing a list of information **Specifications**. For example, a single **Specification** might say that "_all walls must have a fire rating property_". Model authors receiving an IDS file can use it to ensure all required information is provided for each **Specification**. Model recipients may use the IDS file to check whether the IFC model meets all of the **Specifications**. Reports may also be generated to list the results of **Specification** compliance checks. + +![IDS Diagram](ids-diagram.png) + +IDS file creation tools and model checking tools are provided by many [software vendors](https://technical.buildingsmart.org/resources/software-implementations/). You can write your own customised IDS **Specifications** from scratch or start from a [public IDS template](todo). Any IFC model produced from any software can be checked by an IDS file. + +## Beginners tutorial + + 1. [Download and install your favourite software](https://technical.buildingsmart.org/resources/software-implementations/) that supports IDS from the software vendors directory. There is software available for Windows, Mac, and Linux. + 2. [Download a sample IDS file](library/sample.ids). This IDS file has two **Specifications**. The first specifies that _the project name should be TEST_. The second specifies that _all walls must have a fire rating property_. + 3. [Download a sample IFC model to check](library/sample.ifc). This IFC model has "TEST" as the project name, which satisfies the first **Specification**. However, some walls have a fire rating property, and others do not. + 4. Load both the IDS and the IFC in your software, and begin the checking process. + +That's it! You may also find more sample IDS templates in the [buildingSMART IDS Template Directory](todo) and more sample IFC models in the [buildingSMART IFC model directory](todo). + +If you need help, please feel free to ask for help on the [buildingSMART Forums](https://forums.buildingsmart.org/). + +## Begin learning about IDS + + 1. [How does a **Specification** work?](specifications.md) + 1. [Guidelines on specifying good **Specification** metadata](ids-metadata.md) + 1. [Learn how to specify **Complex Restrictions**](restrictions.md) + 1. [Learn how to use the **Entity Facet**](entity-facet.md) + 1. [Learn how to use the **Attribute Facet**](attribute-facet.md) + 1. [Learn how to use the **Classification Facet**](classification-facet.md) + 1. [Learn how to use the **Property Facet**](todo) + 1. [Learn how to use the **Material Facet**](material-facet.md) + 1. [Learn how to use the **Parts Facet**](todo) + 1. [Are you a software developer? Read the developer guide!](developer-guide.md) diff --git a/Documentation/attribute-facet.md b/Documentation/attribute-facet.md new file mode 100644 index 0000000..9619fe2 --- /dev/null +++ b/Documentation/attribute-facet.md @@ -0,0 +1,42 @@ +# Attribute facet + +Every entity in an IFC model has a list of standardised **Atributes**. **Attributes** are a limited set of fundamental data (usually less than 10) associated with all IFC entities. These are fixed by the IFC standard and cannot be customised. + +Here are some common attributes and what they mean: + + - **GlobalId**: a unique ID for the element useful for computer geeks + - **Name**: a short name, code, number, or label to identify the object for a human. If you had to annotate the object on a drawing or a schedule, the Name is what you should see. For example, a pump Name might be P-10-A. + - **Description**: typically the longer form of the name, written to be descriptive and readable for humans. For example a pump Description might be Water Suction Pump. + - **Tag**: this is an ID that may link it back to another BIM application. For example if the IFC model was produced using Revit or ArchiCAD, it might hold the Revit or ArchiCAD element ID. + +Information that is not critical to the definition of the IFC entity is stored as a **Property**, not an **Attribute**. For more information view the documentation on the [**Property Facet**](property-facet.md). + +For this reason, **Attributes** are a good way to specify an **Applicability** to specific elements, or specify a **Requirement** that certain elements shall be identified, named, or described in a particular way. + +To see what **Attributes** are available for an IFC class and what their potential values may be, you will need to check the IFC documentation. Here is how you might find a list of valid **Attributes** for the IFC4X3 schema. The instructions will be similar for all IFC versions. + + 1. Browse to the documentation page for the IFC class you are specifying. For example, [this is the IfcWall documentation page](http://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcWall.htm). + 2. Scroll down to the **Attributes** section of the documentation. Note that by default, not all attributes are shown. Press "_Click to show hidden inherited attributes_" to show all attributes. For IFC4, click on the "_Attribute inheritance_" text header to toggle a table for all attributes. + 3. The **Attributes** table will show the **Name** of each **Attribute**. Note that **Attributes** which do not have a number next to them and are in italics are not allowed to be specified. Only enumerated **Attributes** may be specified. For example, you may specify the **Name** attribute for an IfcWall, but you may not specify **ConnectedTo**. + +Instead of checking the documentation, your IDS authoring software may help you to shortlist valid **Attributes**. + +Following naming conventions and accurately describing elements are critical to many usecases in the AECO industry. For this reason, it is very common to use the **Attribute Facet** in both the **Applicability** and **Requirements** section of **Specifications**. + +## Parameters + +Parameter | Required | Restrictions Allowed | Allowed Values | Meaning +--- | --- | --- | --- | --- +**Name** | ✔️ | ✔️ | A valid attribute name from the IFC schema. | The attribute must exist and have a non-empty value. +**Value** | ❌ | ✔️ | Any value appropriate to the data type of the attribute | The value of the attribute must match exactly. To specify numbers, you must use a dot as the decimal separator, and not use a thousands separator (e.g. `4.2` is valid, but `1.234,5` is invalid). Scientific notation is allowed (e.g. `1e3` to represent `1000`). To specify true or false, you must specify `TRUE` or `FALSE` as uppercase characters. + +## Examples + +Applicability Intention | Requirement Intention | Facet Definition +--- | --- | --- +Any entity with a Name of "ABC123" | The entity (e.g. Project) must be named "ABC123" | Name="Name", value="ABC123" +Any entity (but typically IfcMapConversion) with an Easting of 312345 | The entity (e.g. IfcMapConversion) must be geolocated such that the origin is at the Easting of 312345 | Name="Easting", value="312345" +Any entity with a name starting with "WT" followed by 2 digits, such as WT01, WT02, etc. | The element must have the naming scheme of WT01, WT02, etc | Name="Name", Value="WT[0-9]{2}" +Any entity with a non-empty Description | The entity must have a description | Name="Description" +Any entity (typically an IfcTask) with a Status set to either "NOTSTARTED", "STARTED", or "COMPLETED" | The entity Status (e.g. for an IfcTask) must be filled out with either "NOTSTARTED", "STARTED", or "COMPLETED" | Name="Status", Value=["NOTSTARTED", "STARTED", "COMPLETED"] +Any entity (typically an IfcTaskTime) with a DurationType set to WORKTIME (i.e. based on a calendar) | The duration type (e.g. for an IfcTaskTime) must be based on a calendar, not elapsed time | Name="DurationType", Value="WORKTIME" diff --git a/Documentation/classification-facet.md b/Documentation/classification-facet.md new file mode 100644 index 0000000..41a2aa8 --- /dev/null +++ b/Documentation/classification-facet.md @@ -0,0 +1,28 @@ +# Classification facet + +A **Classification System** is a defined hierarchy to categorise elements. An example popular **System** is "Uniclass 2015". Within a **System**, there is a hierarchy of short **Reference** codes that categorise elements in increasing levels of specificity, such as "EF_25_10" and "EF_25_10_25". Any object in IFC model can have a **Classification Reference**. + +The **Classification Facet** is different to the **Entity Facet**. The **Entity Facet** is restricted to built-in IFC classes and predefined types, which may also function as a method of **Classification**. In contrast, a **System** specified in the **Classification Facet** refers to a third party, non-IFC **System**. + +IFC models keep track of **Classification** names, dates, versions, and other data to uniquely identify the **System**, and may even store the hierarchy of **References**. For this reason, **Classification** requirements should use the **Classification Facet**, as opposed to the **Property Facet**. + +**Classifications** are a great way to identify **Applicable** entities, or **Require** that entities should follow a nominated **Classification** system by a workflow, such as in an asset management system, work breakdown structure, or coordination requirement. + +## Parameters + +Parameter | Required | Restrictions Allowed | Allowed Values | Meaning +--- | --- | --- | --- | --- +**System** | ❌ | ✔️ | The name of the **Classification System** | The element must be classified with a reference that is part of a classification system with this name +**Value** | ❌ | ✔️ | The value of a **Refeference** code in the **Classification System** | The element must be classified with a **Reference** which has a code that matches this value. The value is typically a short code with a separating character that denotes the level of classification + +If no parameters are specified, then it means that any **Classification** should be present, regardless of **System** name or **Reference** code. + +## Examples + +Applicability Intention | Requirement Intention | Facet Definition +--- | --- | --- +Any classified element | The entity must be classified | No parameters +Any entity classified using OmniClass | The entity must be classified using OmniClass | System="OmniClass" +Any entity classified with either OmniClass or Uniclass 2015 | The entity must be classified using either OmniClass or Uniclass 2015 | System=["OmniClass", "Uniclass 2015"] +Any entity with a classification reference of "EF_25_10_25" | The element (e.g. a wall) must be classified using the reference "EF_25_10_25" | Value="EF_25_10_25" +Any element with a Uniclass 2015 classification reference starting with EF_25_10 | The entity (e.g. a wall) must use Uniclass 2015 and have are reference starting with EF_25_10 | System="Uniclass 2015", Value="EF_25_10.*" diff --git a/Documentation/developer-guide.md b/Documentation/developer-guide.md new file mode 100644 index 0000000..1b5698e --- /dev/null +++ b/Documentation/developer-guide.md @@ -0,0 +1,70 @@ +# Developer guide + +**Warning: IDS is not yet formally released.** + +An IDS file is simply an XML file, with its schema defined in XSD. You may open any existing IDS file and inspect its contents to get a feel for how an IDS is structured. + +An IDS is considered valid if it passes the XSD-based validation check. All sample IDS files available in the buildingSMART directory of public IDS templates are guaranteed to be valid. + + - [Download the latest IDS v0.6 XSD schema](https://github.com/buildingSMART/IDS/blob/master/Development/0.6/ids_06.xsd) + - [Download sample IDS files from the directory of public IDS templates](todo) + +There are many freely available online tools and programming libraries that can perform XSD validation. Here is [one such XSD validation tool](https://www.liquid-technologies.com/online-xsd-validator) to save you an online search. + +## Authoring IDS + +If you are writing software to read and author IDS files only, you **must** meet the following criteria: + + - All IDS software must read and write valid IDS files only. + - No proprietary extensions are allowed. If auxiliary systems (e.g. additional loaded metadata) are used to augment IDS or the correlating IFC model, they should be made clear to the user that it is external to IDS. + - No data loss shall occur. Loading an IDS and saving the IDS shall preserve all of its information. Minor syntax formatting changes are allowed, so long as the data remains unchanged. + - Your software should pass all test cases in the [Authoring Testcases](todo) document. + +In addition, it is highly recommended to also provide the following features for users: + + - When users write an IFC class in an **Entity Facet**, your interface should restrict allowable values to valid IFC class names in the selected IFC schema for the specification. Autocompletion is recommended. + - When users write a predefined type in an **Entity Facet**, your interface should recommend allowable values based on the nominated IFC class. However, it should still allow users to write a custom predefined type. Autocompletion is recommended. + - When users have already specified an **Entity Facet** and are creating an **Attribute Facet**, your interface should restrict allowable values based on the nominated IFC class. Your interface should also guide the user to use the right data type based on the nominated attribute name. + - When users have already specified an **Entity Facet** and are creating a **Property Facet**, your interface should recommend allowable property sets based on the nominated IFC class and predefined type. However, it should also allow users to write a custom property set name. If a standardised (e.g. `Pset_` or `Qto_`) property set is nominated, your interface should restrict the allowable property names and recommend the appropriate data type to be used. + - You may also choose to preload standardised classification names for commonly known systems, as well as the classification references to prevent spelling errors. You may choose to use this [IFC directory for classification systems](https://github.com/Moult/ifcclassification). + - When users are nominating a **Material Facet**, your interface should recommend the IFC recommended material categories (one of 'concrete', 'steel', 'aluminium', 'block', 'brick', 'stone', 'wood', 'glass', 'gypsum', 'plastic', or 'earth') + +## Checking IDS against IFC + +Any software implementing IDS checking **must** comply with the following test suites. + + - Overall integration testscases (todo) + - [Entity testcases](testcases-entity.md) + - [Attribute testcases](testcases-attribute.md) + - [Classification testcases](testcases-classification.md) + - [Property testcases](testcases-property.md) + - [Material testcases](testcases-material.md) + - [Part testcases](testcases-parts.md) + +## Generating reports from IDS results + +TODO: specify rules about BCF + +## Handling IFC compatibility + +If the software is not capable of parsing the specified IFC version nominated by the IDS specification, then the user should be made aware of the limitation. + +## Handling different IDS versions + +IDS is not yet formally released and so there is no guarantee of vendor support for any IDS version. + +## Available developer libraries + +To help you get started with development, here is a directory of IDS libraries that you may use in your application. Please feel free to [submit your library](https://github.com/buildingSMART/IDS/pulls). + +Language | License | Library +--- | --- | --- +C# | ? | [XBim](todo) +Python | LGPL-3.0-or-later | [IfcOpenShell](todo) +? | ? | ODA? +Javascript | ? | Something or other + +## More reading + + - [Add your implementation to the software vendors directory](https://technical.buildingsmart.org/resources/software-implementations/) + - [Make a suggestion for improvement](https://github.com/buildingSMART/IDS/issues) diff --git a/Documentation/entity-facet.md b/Documentation/entity-facet.md new file mode 100644 index 0000000..21d65bf --- /dev/null +++ b/Documentation/entity-facet.md @@ -0,0 +1,44 @@ +# Entity facet + +Every entity in an IFC model has an "IFC Class" **Name**. For example, wall entities will have an IFC class of IfcWall, and door entities will have an IFC class of IfcDoor. Entities that don't represent individual building elements will also have a class. For example, the project has a class of IfcProject, window types have a class of IfcWindowType, and cost items have a class of IfcCostItem. + +Classes aren’t just for categorising entities. They also indicate what types of properties and relationships it is allowed to have. For example, an IfcWall class can have a fire rating property, but an IfcGrid class cannot. + +Different IFC schemas have different IFC classes. More recent IFC schemas contain richer and more diverse IFC classes, which you can compare here: + + - [IFC4X3 list of IFC class names](http://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/annex-b1.html) + - [IFC4 list of IFC class names](https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/link/alphabeticalorder-entities.htm) + - [IFC2X3 list of IFC class names](https://standards.buildingsmart.org/IFC/RELEASE/IFC2x3/TC1/HTML/alphabeticalorder_entities.htm) + +Some entities may also optionally have a **Predefined Type**. This is a further level of entity categorisation in addition to the IFC Class **Name**. For example, an IfcWall may have a **Predefined Type** of SHEAR, or PARTITIONING. Whereas the IFC Class **Name** is specified by the IFC standard, the **Predefined Type** may also contain custom values by the user. + +The IFC schema documentation contains a list of standard predefined types. Here is how you might find a list of valid **Predefined Types** for the IFC4X3 schema. The instructions will be similar for all IFC versions. + + 1. Browse to the documentation page for the IFC class you are specifying. You can get there from the list of IFC class names above. For example, [this is the IfcWall documentation page](http://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcWall.htm). + 2. Scroll down to the **Attributes** section of the documentation and find the **PredefinedType** attribute. + 3. Click on the enumeration link next to the **PredefinedType** attribute to view the list of valid values. For example, for an IfcWall, you will click the link to bring you to [the documentation for IfcWallTypeEnum](http://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcWallTypeEnum.htm). + 4. A list of valid **Predefined Types** are shown in a table. + +Choosing from the list of standardised **Predefined Types** is highly recommended. However, if they do not apply to your project you may specify any custom value. For example, you may specify "RADIATIONBARRIER" as a custom **PredefinedType** for an **IfcWall**. + +One of the most important aspects of writing a specification is to ensure that it applies to the appropriate IFC class. Typically, every single **Specification** will have an **Entity Facet** used in its **Applicability** section. + +## Parameters + +Parameter | Required | Restrictions Allowed | Allowed Values | Meaning +--- | --- | --- | --- | --- +**Name** | ✔️ | ✔️ | A valid IFC class from the IFC schema. | The IFC Class must match exactly +**Predefined Type** | ❌ | ✔️ | A valid predefined type from the IFC schema, or any custom text value. | The IFC Predefined Type must match exactly + +## Examples + +Applicability Intention | Requirement Intention | Facet Definition +--- | --- | --- +All partition walls | Must be a partition wall | Name="IFCWALL", PredefinedType="PARTITIONING" +All floor slabs | Must be a floor slab | Name="IFCSLAB", PredefinedType="FLOOR" +All door types, such that may be documented in a door types schedule | Must be a door type | Name="IFCDOORTYPE" +All type elements | Must be a type element | Name="IFC.*TYPE" +All building storeys | Must be a building storey | Name="IFCBUILDINGSTOREY" +All related documents, such as drawings, schedules, manuals, and specifications | Must be a document | Name="IFCDOCUMENTINFORMATION" +All distribution systems, such as hot water systems, electrical circuits, etc | Must be a system | Name="IFCSYSTEM" +All construction tasks, such as in construction scheduling in a work breakdown structure | Must be a construction task | Name="IFCTASK", PredefinedType="CONSTRUCTION" diff --git a/Documentation/ids-diagram.png b/Documentation/ids-diagram.png new file mode 100644 index 0000000..1c875a7 Binary files /dev/null and b/Documentation/ids-diagram.png differ diff --git a/Documentation/ids-logo.png b/Documentation/ids-logo.png new file mode 100644 index 0000000..ea1e637 Binary files /dev/null and b/Documentation/ids-logo.png differ diff --git a/Documentation/ids-metadata.md b/Documentation/ids-metadata.md new file mode 100644 index 0000000..4e70869 --- /dev/null +++ b/Documentation/ids-metadata.md @@ -0,0 +1,28 @@ +# Guide to effective IDS metadata + +IDS is designed to be readable by both humans and computers. Just as it is important to precisely and accurately describe **Specifications** to computers, it is equally important to describe the purpose, intentions, and utility of the **Specifications** to recipients of the IDS. This is achieved by filling out **Specification** metadata. When model authors, designers, engineers, clients, consultants, and other stakeholders clearly understand why information is needed, who it benefits, and when it will be used, it will help guarantee that requirements are met effectively. + +## IDS metadata + +Each `.ids` file has basic metadata that are common to all **Specifications** listed inside the IDS. + +Name | Description | Examples +--- | --- | --- +Title | The document title of the IDS, used to refer to the IDS as a whole | "Minimum delivery requirements" or "Costing Requirements" +Copyright | The copyright owner of the IDS | "Example Company Pty Ltd" or "Government Department X" +Version | The version of the IDS, to keep track of changes that have been made. Semantic versioning is recommended where versioning follows the naming scheme of X.Y, where Y represents a minor change, such as changes in metadata, description, or spelling errors, and X represents a major change, where models that used to pass or fail in a previous version may yield a different result. | "1.0" or "2.1" +Author | The author of the IDS, provided as an email contact address | "john@doe.com" +Date | The date the IDS was published | "2022-01-01" +Description | A short one or two sentence description of what the IDS achieves | "Minimum requirements for all OpenBIM projects to ensure basic coordination and data scheduling can be done by all stakeholders" or "Specifies required properties that have a large impact on the accuracy of cost estimation and quantities that are necessary for automated model-based quantity take-off". +Purpose | ? | ? +Milestone | Which project milestone the IDS should be satisfied in | "Design", "Construction", or "Comissioning" + +## Specification metadata + +Each **Specification** has metadata to help describe the goals and instructions of how to achieve it. + +Name | Description | Examples +--- | --- | --- +Name | A short name of what information is being specified | "Wall type naming conventions" or "Concrete quantity take-off dimensions" +Description | Describe why the requirement is important to the project. The person reading the description should understand why the information provides value, which workflows it helps to achieve, and what project benefits will be sacrificed if the requirements are not met. | "Basic properties that have significant impacts on costing, detailing, and building renovations must be included to minimise construction risk." +Instructions | Provide instructions on who is responsible to provide the information and details on how it is achieved, such as guidelines on how a naming convention works, how to choose an appropriate value, or what to do in edge-cases | "Architects and code consultants are responsible for providing this information. Where there are multiple values, the dominant value shall be indicated." diff --git a/Documentation/ids-structure.png b/Documentation/ids-structure.png new file mode 100644 index 0000000..1e36a6d Binary files /dev/null and b/Documentation/ids-structure.png differ diff --git a/Documentation/library/sample.ids b/Documentation/library/sample.ids new file mode 100644 index 0000000..d8bd73f --- /dev/null +++ b/Documentation/library/sample.ids @@ -0,0 +1,57 @@ + + + + buildingSMART Sample IDS + buildingSMART + 1.0.0 + These are example specifications for those learning how to use IDS + foo@bar.com + 2022-01-01 + Contractual requirements + + + + + + + IFCPROJECT + + + + + + + Name + + + TEST + + + + + + + + + IFCWALLTYPE + + + + + + + Pset_WallCommon + + + FireRating + + + + + + + + + + + diff --git a/Documentation/library/sample.ifc b/Documentation/library/sample.ifc new file mode 100644 index 0000000..ffeae56 --- /dev/null +++ b/Documentation/library/sample.ifc @@ -0,0 +1,1162 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition[DesignTransferView]'),'2;1'); +FILE_NAME('sample.ifc','2022-09-03T10:36:17+10:00',(),(),'IfcOpenShell v0.7.0-dc67287d','BlenderBIM 0.0.999999','Nobody'); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1JbbMHQ_jE0OxFftAl3CjL',$,'TEST',$,$,$,$,(#14,#20),#9); +#2=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.); +#3=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); +#4=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); +#5=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0); +#6=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); +#7=IFCMEASUREWITHUNIT(IFCREAL(0.0174532925199433),#6); +#8=IFCCONVERSIONBASEDUNIT(#5,.PLANEANGLEUNIT.,'degree',#7); +#9=IFCUNITASSIGNMENT((#8,#3,#4,#2)); +#14=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-05,$,$); +#15=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#14,$,.MODEL_VIEW.,$); +#16=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Box','Model',*,*,*,*,#14,$,.MODEL_VIEW.,$); +#20=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Plan',2,1.E-05,$,$); +#21=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Plan',*,*,*,*,#20,$,.PLAN_VIEW.,$); +#22=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Plan',*,*,*,*,#20,$,.SECTION_VIEW.,$); +#23=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Plan',*,*,*,*,#20,$,.ELEVATION_VIEW.,$); +#24=IFCSITE('0SLlp4Y_L4NgPpqJhQOw30',$,'My Site',$,$,#47,$,$,$,$,$,$,$,$); +#30=IFCBUILDING('1OCeyWVYH56fceAQgCLzl0',$,'My Building',$,$,#53,$,$,$,$,$,$); +#36=IFCBUILDINGSTOREY('2CPsTrqCT7nviu_B1SyiyO',$,'My Storey',$,$,#59,$,$,$,$); +#42=IFCRELAGGREGATES('16X1M42zTAavPvvcmzaiLe',$,$,$,#1,(#24)); +#43=IFCCARTESIANPOINT((0.,0.,0.)); +#44=IFCDIRECTION((0.,0.,1.)); +#45=IFCDIRECTION((1.,0.,0.)); +#46=IFCAXIS2PLACEMENT3D(#43,#44,#45); +#47=IFCLOCALPLACEMENT($,#46); +#48=IFCRELAGGREGATES('1Rw3RWWWP7EBzgBmmGa5m7',$,$,$,#24,(#30)); +#49=IFCCARTESIANPOINT((0.,0.,0.)); +#50=IFCDIRECTION((0.,0.,1.)); +#51=IFCDIRECTION((1.,0.,0.)); +#52=IFCAXIS2PLACEMENT3D(#49,#50,#51); +#53=IFCLOCALPLACEMENT(#47,#52); +#54=IFCRELAGGREGATES('2ZY6WMLKzF3eZiTciYp5Qt',$,$,$,#30,(#36)); +#55=IFCCARTESIANPOINT((0.,0.,0.)); +#56=IFCDIRECTION((0.,0.,1.)); +#57=IFCDIRECTION((1.,0.,0.)); +#58=IFCAXIS2PLACEMENT3D(#55,#56,#57); +#59=IFCLOCALPLACEMENT(#53,#58); +#60=IFCWALLTYPE('24Js5pn1PCeA_DXGWh67_f',$,'DEMO50',$,$,(#1375),$,$,$,$); +#61=IFCMATERIAL('Unknown',$,$); +#62=IFCMATERIALLAYER(#61,0.05,$,$,$,$,$); +#63=IFCMATERIALLAYERSET((#62),$,$); +#64=IFCRELASSOCIATESMATERIAL('3gPuTuaVf1AAgeln9$alDb',$,$,$,(#60),#63); +#65=IFCWALLTYPE('1HCqnc9S51NhU$e0Xceg6o',$,'DEMO100',$,$,(#1379),$,$,$,$); +#66=IFCMATERIALLAYER(#61,0.1,$,$,$,$,$); +#67=IFCMATERIALLAYERSET((#66),$,$); +#68=IFCRELASSOCIATESMATERIAL('2Ikoi$G2PCXvk61V36wh3N',$,$,$,(#65),#67); +#69=IFCWALLTYPE('3UPlZcHuTCi8CevFkzQjZ_',$,'DEMO200',$,$,(#1383),$,$,$,$); +#70=IFCMATERIALLAYER(#61,0.2,$,$,$,$,$); +#71=IFCMATERIALLAYERSET((#70),$,$); +#72=IFCRELASSOCIATESMATERIAL('3uAo69i4j4nwMM7VRW3TQn',$,$,$,(#69),#71); +#73=IFCWALLTYPE('1y03E8PfTAJPit3967Y5Uf',$,'DEMO300',$,$,$,$,$,$,$); +#74=IFCMATERIALLAYER(#61,0.3,$,$,$,$,$); +#75=IFCMATERIALLAYERSET((#74),$,$); +#76=IFCRELASSOCIATESMATERIAL('2pvy9lWJL62BoA9QC5KCOG',$,$,$,(#73),#75); +#77=IFCCOVERINGTYPE('3ppA8IYrP2nffVvxie6ghZ',$,'DEMO10',$,$,$,$,$,$,$); +#78=IFCMATERIALLAYER(#61,0.01,$,$,$,$,$); +#79=IFCMATERIALLAYERSET((#78),$,$); +#80=IFCRELASSOCIATESMATERIAL('2Lg3S9QRH4kPgHpYrtokt6',$,$,$,(#77),#79); +#81=IFCPROPERTYSINGLEVALUE('LayerSetDirection',$,IFCLABEL('AXIS2'),$); +#82=IFCPROPERTYSET('11$WHz$79EMw60BdaUh77w',$,'EPset_Parametric',$,(#81)); +#83=IFCCOVERINGTYPE('3KuCqMbY16DRUygYOrLyYE',$,'DEMO20',$,$,(#82),$,$,$,$); +#84=IFCMATERIALLAYER(#61,0.02,$,$,$,$,$); +#85=IFCMATERIALLAYERSET((#84),$,$); +#86=IFCRELASSOCIATESMATERIAL('27BA_9uQT6OfxSGgEbsKY4',$,$,$,(#83),#85); +#87=IFCPROPERTYSINGLEVALUE('LayerSetDirection',$,IFCLABEL('AXIS3'),$); +#88=IFCPROPERTYSET('2IalIx1bj02AXv21tZC0Sz',$,'EPset_Parametric',$,(#87)); +#89=IFCCOVERINGTYPE('2cYyQpe9f1vBW8C4D58QZS',$,'DEMO30',$,$,(#88),$,$,$,$); +#90=IFCMATERIALLAYER(#61,0.03,$,$,$,$,$); +#91=IFCMATERIALLAYERSET((#90),$,$); +#92=IFCRELASSOCIATESMATERIAL('1ir_2IiXX4Ax4VH5lcXGEu',$,$,$,(#89),#91); +#93=IFCRAMPTYPE('23wMhiydD6yw5XpaFs6XCA',$,'DEMO200',$,$,$,$,$,$,$); +#94=IFCMATERIALLAYER(#61,0.2,$,$,$,$,$); +#95=IFCMATERIALLAYERSET((#94),$,$); +#96=IFCRELASSOCIATESMATERIAL('2SLXH7fU1D6OIOdV8Gq6T_',$,$,$,(#93),#95); +#97=IFCPILETYPE('3J5r90lrL3kv3b8uqOGsY1',$,'DEMO1',$,$,$,$,$,$,$); +#98=IFCCIRCLEPROFILEDEF(.AREA.,$,$,0.3); +#99=IFCMATERIALPROFILE($,$,#61,#98,$,$); +#100=IFCMATERIALPROFILESET($,$,(#99),$); +#101=IFCRELASSOCIATESMATERIAL('2vYxThgzHDSOHXKehbpw4S',$,$,$,(#97),#100); +#102=IFCSLABTYPE('0OWxf_nd97uvH$Sr4QbAVW',$,'DEMO150',$,$,$,$,$,$,$); +#103=IFCMATERIALLAYER(#61,0.2,$,$,$,$,$); +#104=IFCMATERIALLAYERSET((#103),$,$); +#105=IFCRELASSOCIATESMATERIAL('3WSlLxuwH3Sfsul8DwR0LU',$,$,$,(#102),#104); +#106=IFCSLABTYPE('0wVKQLFFb2oAHccogmWWWy',$,'DEMO250',$,$,$,$,$,$,$); +#107=IFCMATERIALLAYER(#61,0.3,$,$,$,$,$); +#108=IFCMATERIALLAYERSET((#107),$,$); +#109=IFCRELASSOCIATESMATERIAL('01R$pwjx14qOlDDfB34EBC',$,$,$,(#106),#108); +#110=IFCCOLUMNTYPE('2OGUvw6Tj9deH3dTY4Hk3T',$,'DEMO1',$,$,$,$,$,$,$); +#111=IFCRECTANGLEPROFILEDEF(.AREA.,$,$,0.5,0.6); +#112=IFCMATERIALPROFILE($,$,#61,#111,$,$); +#113=IFCMATERIALPROFILESET($,$,(#112),$); +#114=IFCRELASSOCIATESMATERIAL('1f717ijc53DgmnoMRFBZ62',$,$,$,(#110),#113); +#115=IFCCOLUMNTYPE('3_jg43QeDAWvPCl1D0Lw_q',$,'DEMO2',$,$,$,$,$,$,$); +#116=IFCCIRCLEHOLLOWPROFILEDEF(.AREA.,$,$,0.25,0.005); +#117=IFCMATERIALPROFILE($,$,#61,#116,$,$); +#118=IFCMATERIALPROFILESET($,$,(#117),$); +#119=IFCRELASSOCIATESMATERIAL('3mX_vYbF92vxfOrjZFAuYk',$,$,$,(#115),#118); +#120=IFCCOLUMNTYPE('2ZJTQa2Db0MAv2N5bjUuXK',$,'DEMO3',$,$,$,$,$,$,$); +#121=IFCRECTANGLEHOLLOWPROFILEDEF(.AREA.,$,$,0.075,0.15,0.005,0.005,0.005); +#122=IFCMATERIALPROFILE($,$,#61,#121,$,$); +#123=IFCMATERIALPROFILESET($,$,(#122),$); +#124=IFCRELASSOCIATESMATERIAL('0Yslq2hlz9Qe3PO16oqESz',$,$,$,(#120),#123); +#125=IFCBEAMTYPE('2bUnl1uHnB$QSMF_fVajUw',$,'DEMO1',$,$,$,$,$,$,$); +#126=IFCISHAPEPROFILEDEF(.AREA.,'DEMO-I',$,0.1,0.2,0.005,0.01,0.005,$,$); +#127=IFCMATERIALPROFILE($,$,#61,#126,$,$); +#128=IFCMATERIALPROFILESET($,$,(#127),$); +#129=IFCRELASSOCIATESMATERIAL('08d9DxbyHAyRgRPc6W4Qsn',$,$,$,(#125),#128); +#130=IFCBEAMTYPE('0f1mNiwDTAiuSgrvotHh5$',$,'DEMO2',$,$,$,$,$,$,$); +#131=IFCCSHAPEPROFILEDEF(.AREA.,'DEMO-C',$,0.2,0.1,0.0015,0.03,0.005); +#132=IFCMATERIALPROFILE($,$,#61,#131,$,$); +#133=IFCMATERIALPROFILESET($,$,(#132),$); +#134=IFCRELASSOCIATESMATERIAL('2cO0XhlFf8MxIg_eNDWX_X',$,$,$,(#130),#133); +#135=IFCCARTESIANPOINT((0.,0.,0.)); +#136=IFCDIRECTION((0.,0.,1.)); +#137=IFCDIRECTION((1.,0.,0.)); +#138=IFCAXIS2PLACEMENT3D(#135,#136,#137); +#144=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#14,$,.MODEL_VIEW.,$); +#145=IFCCARTESIANPOINTLIST3D(((0.899999976158142,0.,1.20000004768372),(0.899999976158142,0.,0.),(0.,0.,1.20000004768372),(0.,0.,0.),(0.0999999940395355,0.,0.0999999940395355),(0.0999999940395355,0.,1.10000002384186),(0.800000011920929,0.,1.10000002384186),(0.800000011920929,0.,0.0999999940395355),(0.0999999940395355,0.0199999995529652,0.0999999940395355),(0.0999999940395355,0.0199999995529652,1.10000002384186),(0.800000011920929,0.0199999995529652,1.10000002384186),(0.800000011920929,0.0199999995529652,0.0999999940395355),(0.0999999940395355,0.0500000007450581,0.0999999940395355),(0.0999999940395355,0.0500000007450581,1.10000002384186),(0.800000011920929,0.0500000007450581,1.10000002384186),(0.800000011920929,0.0500000007450581,0.0999999940395355),(0.,0.0500000007450581,0.),(0.,0.0500000007450581,1.20000004768372),(0.899999976158142,0.0500000007450581,1.20000004768372),(0.899999976158142,0.0500000007450581,0.),(0.0999999940395355,0.0299999993294477,0.0999999940395355),(0.0999999940395355,0.0299999993294477,1.10000002384186),(0.800000011920929,0.0299999993294477,1.10000002384186),(0.800000011920929,0.0299999993294477,0.0999999940395355))); +#146=IFCINDEXEDPOLYGONALFACE((13,17,18,14)); +#147=IFCINDEXEDPOLYGONALFACE((5,6,3,4)); +#148=IFCINDEXEDPOLYGONALFACE((7,8,2,1)); +#149=IFCINDEXEDPOLYGONALFACE((6,7,1,3)); +#150=IFCINDEXEDPOLYGONALFACE((8,5,4,2)); +#151=IFCINDEXEDPOLYGONALFACE((15,19,20,16)); +#152=IFCINDEXEDPOLYGONALFACE((14,18,19,15)); +#153=IFCINDEXEDPOLYGONALFACE((16,20,17,13)); +#154=IFCINDEXEDPOLYGONALFACE((4,17,20,2)); +#155=IFCINDEXEDPOLYGONALFACE((2,20,19,1)); +#156=IFCINDEXEDPOLYGONALFACE((8,16,13,5)); +#157=IFCINDEXEDPOLYGONALFACE((7,15,16,8)); +#158=IFCINDEXEDPOLYGONALFACE((1,19,18,3)); +#159=IFCINDEXEDPOLYGONALFACE((3,18,17,4)); +#160=IFCINDEXEDPOLYGONALFACE((6,14,15,7)); +#161=IFCINDEXEDPOLYGONALFACE((5,13,14,6)); +#162=IFCPOLYGONALFACESET(#145,$,(#146,#147,#148,#149,#150,#151,#152,#153,#154,#155,#156,#157,#158,#159,#160,#161),$); +#163=IFCINDEXEDPOLYGONALFACE((12,11,10,9)); +#164=IFCINDEXEDPOLYGONALFACE((24,21,22,23)); +#165=IFCINDEXEDPOLYGONALFACE((11,23,22,10)); +#166=IFCINDEXEDPOLYGONALFACE((10,22,21,9)); +#167=IFCINDEXEDPOLYGONALFACE((9,21,24,12)); +#168=IFCINDEXEDPOLYGONALFACE((12,24,23,11)); +#169=IFCPOLYGONALFACESET(#145,$,(#163,#164,#165,#166,#167,#168),$); +#170=IFCSHAPEREPRESENTATION(#144,'Body','Tessellation',(#162,#169)); +#171=IFCREPRESENTATIONMAP(#138,#170); +#172=IFCCARTESIANPOINT((0.,0.,0.)); +#173=IFCDIRECTION((0.,0.,1.)); +#174=IFCDIRECTION((1.,0.,0.)); +#175=IFCAXIS2PLACEMENT3D(#172,#173,#174); +#180=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Plan',*,*,*,*,#20,$,.PLAN_VIEW.,$); +#181=IFCCARTESIANPOINTLIST2D(((0.899999976158142,0.),(0.,0.),(0.100000023841858,0.),(0.800000011920929,0.),(0.100000023841858,0.0200000032782555),(0.800000011920929,0.0200000032782555),(0.100000023841858,0.0500000007450581),(0.800000011920929,0.0500000007450581),(0.,0.0500000007450581),(0.899999976158142,0.0500000007450581),(0.100000023841858,0.0300000011920929),(0.800000011920929,0.0300000011920929))); +#182=IFCINDEXEDPOLYCURVE(#181,(IFCLINEINDEX((3,4))),$); +#183=IFCINDEXEDPOLYCURVE(#181,(IFCLINEINDEX((2,3))),$); +#184=IFCINDEXEDPOLYCURVE(#181,(IFCLINEINDEX((4,1))),$); +#185=IFCINDEXEDPOLYCURVE(#181,(IFCLINEINDEX((5,6))),$); +#186=IFCINDEXEDPOLYCURVE(#181,(IFCLINEINDEX((7,8))),$); +#187=IFCINDEXEDPOLYCURVE(#181,(IFCLINEINDEX((9,7))),$); +#188=IFCINDEXEDPOLYCURVE(#181,(IFCLINEINDEX((8,10))),$); +#189=IFCINDEXEDPOLYCURVE(#181,(IFCLINEINDEX((1,10))),$); +#190=IFCINDEXEDPOLYCURVE(#181,(IFCLINEINDEX((9,2))),$); +#191=IFCINDEXEDPOLYCURVE(#181,(IFCLINEINDEX((3,7))),$); +#192=IFCINDEXEDPOLYCURVE(#181,(IFCLINEINDEX((8,4))),$); +#193=IFCINDEXEDPOLYCURVE(#181,(IFCLINEINDEX((11,12))),$); +#194=IFCINDEXEDPOLYCURVE(#181,(IFCLINEINDEX((5,11))),$); +#195=IFCINDEXEDPOLYCURVE(#181,(IFCLINEINDEX((6,12))),$); +#196=IFCGEOMETRICCURVESET((#182,#183,#184,#185,#186,#187,#188,#189,#190,#191,#192,#193,#194,#195)); +#197=IFCSHAPEREPRESENTATION(#180,'Annotation','Annotation2D',(#196)); +#198=IFCREPRESENTATIONMAP(#175,#197); +#199=IFCWINDOWTYPE('0ihTx2Iw1E2gRAq1N4pWVg',$,'DEMO1',$,$,$,(#171,#198),$,$,$,$,$,$); +#203=IFCSURFACESTYLE('Frame',.BOTH.,(#1407)); +#204=IFCSTYLEDITEM(#162,(#203),'Frame'); +#208=IFCSURFACESTYLE('Glass',.BOTH.,(#1411)); +#209=IFCSTYLEDITEM(#169,(#208),'Glass'); +#210=IFCCARTESIANPOINT((0.,0.,0.)); +#211=IFCDIRECTION((0.,0.,1.)); +#212=IFCDIRECTION((1.,0.,0.)); +#213=IFCAXIS2PLACEMENT3D(#210,#211,#212); +#214=IFCCARTESIANPOINTLIST3D(((0.955000162124634,0.,2.09000015258789),(0.955000162124634,0.0549999885261059,2.09000015258789),(0.970000028610229,0.0549999922513962,2.10500001907349),(0.,0.0999999940395355,0.),(0.970000028610229,0.0999999940395355,2.10500001907349),(0.0399999916553497,0.0999999940395355,2.10500001907349),(0.0399999916553497,0.0549999922513962,2.10500001907349),(0.0550000071525574,0.0549999885261059,2.09000015258789),(0.0550000071525574,0.,2.09000015258789),(0.,0.,2.14500021934509),(0.,0.100000001490116,2.14500021934509),(0.0449999868869781,0.0999999940395355,2.09999990463257),(0.0449999868869781,0.0599999949336052,2.09999990463257),(0.965000033378601,0.0599999949336052,2.09999990463257),(0.965000033378601,0.0999999940395355,2.09999990463257),(0.965000033378601,0.0999999940395355,0.),(0.965000033378601,0.0599999949336052,0.),(0.0449999868869781,0.0599999949336052,0.),(0.0449999868869781,0.0999999940395355,0.),(0.,0.,0.),(0.0550000071525574,0.,0.),(0.0550000071525574,0.0549999922513962,0.),(0.0399999916553497,0.0549999922513962,0.),(0.0399999916553497,0.0999999940395355,0.),(1.01000034809113,0.,2.14500021934509),(1.01000034809113,0.100000001490116,2.14500021934509),(0.955000162124634,0.,0.),(0.955000162124634,0.0549999885261059,0.),(0.970000028610229,0.0549999922513962,0.),(0.970000028610229,0.0999999940395355,0.),(1.01000034809113,0.,0.),(1.01000034809113,0.100000001490116,0.))); +#215=IFCINDEXEDPOLYGONALFACE((2,3,29,28)); +#216=IFCINDEXEDPOLYGONALFACE((27,28,29,30,32,31)); +#217=IFCINDEXEDPOLYGONALFACE((7,6,5,3)); +#218=IFCINDEXEDPOLYGONALFACE((8,7,3,2)); +#219=IFCINDEXEDPOLYGONALFACE((23,24,6,7)); +#220=IFCINDEXEDPOLYGONALFACE((21,20,4,24,23,22)); +#221=IFCINDEXEDPOLYGONALFACE((11,10,25,26)); +#222=IFCINDEXEDPOLYGONALFACE((25,1,27,31)); +#223=IFCINDEXEDPOLYGONALFACE((24,4,11,6)); +#224=IFCINDEXEDPOLYGONALFACE((20,21,9,10)); +#225=IFCINDEXEDPOLYGONALFACE((9,8,2,1)); +#226=IFCINDEXEDPOLYGONALFACE((10,9,1,25)); +#227=IFCINDEXEDPOLYGONALFACE((22,23,7,8)); +#228=IFCINDEXEDPOLYGONALFACE((4,20,10,11)); +#229=IFCINDEXEDPOLYGONALFACE((21,22,8,9)); +#230=IFCINDEXEDPOLYGONALFACE((6,11,26,5)); +#231=IFCINDEXEDPOLYGONALFACE((5,26,32,30)); +#232=IFCINDEXEDPOLYGONALFACE((1,2,28,27)); +#233=IFCINDEXEDPOLYGONALFACE((26,25,31,32)); +#234=IFCINDEXEDPOLYGONALFACE((3,5,30,29)); +#235=IFCPOLYGONALFACESET(#214,$,(#215,#216,#217,#218,#219,#220,#221,#222,#223,#224,#225,#226,#227,#228,#229,#230,#231,#232,#233,#234),$); +#236=IFCINDEXEDPOLYGONALFACE((17,16,15,14)); +#237=IFCINDEXEDPOLYGONALFACE((12,13,14,15)); +#238=IFCINDEXEDPOLYGONALFACE((16,19,12,15)); +#239=IFCINDEXEDPOLYGONALFACE((19,16,17,18)); +#240=IFCINDEXEDPOLYGONALFACE((19,18,13,12)); +#241=IFCINDEXEDPOLYGONALFACE((18,17,14,13)); +#242=IFCPOLYGONALFACESET(#214,$,(#236,#237,#238,#239,#240,#241),$); +#243=IFCSHAPEREPRESENTATION(#144,'Body','Tessellation',(#235,#242)); +#244=IFCREPRESENTATIONMAP(#213,#243); +#245=IFCCARTESIANPOINT((0.,0.,0.)); +#246=IFCDIRECTION((0.,0.,1.)); +#247=IFCDIRECTION((1.,0.,0.)); +#248=IFCAXIS2PLACEMENT3D(#245,#246,#247); +#249=IFCCARTESIANPOINTLIST2D(((0.,0.0999999940395355),(0.965000033378601,0.0999999940395355),(0.925000011920929,0.0999999940395355),(0.924999952316284,1.0200001001358),(0.964999914169312,1.0200001001358),(0.,0.),(0.0550000071525574,0.),(0.0550000071525574,0.0549999922513962),(0.0399999916553497,0.0549999922513962),(0.0399999916553497,0.0999999940395355),(0.955000162124634,0.),(0.955000162124634,0.0549999922513962),(0.970000028610229,0.0549999922513962),(0.970000028610229,0.0999999940395355),(1.01000034809113,0.),(1.01000034809113,0.0999999940395355),(0.964999914169312,1.0200001001358),(0.844915807247162,1.01212930679321),(0.726886332035065,0.988651752471924),(0.612931072711945,0.949969172477722),(0.504999756813049,0.896743297576904),(0.404939234256744,0.829885005950928),(0.314461469650269,0.750538170337677),(0.235114604234695,0.660060405731201),(0.168256282806396,0.559999823570251),(0.115030474960804,0.452068567276001),(0.0763478726148605,0.338113307952881),(0.0528703518211842,0.220083817839622),(0.0449996180832386,0.099999688565731))); +#250=IFCINDEXEDPOLYCURVE(#249,(IFCLINEINDEX((13,12)),IFCLINEINDEX((12,11))),$); +#251=IFCINDEXEDPOLYCURVE(#249,(IFCLINEINDEX((4,3))),$); +#252=IFCINDEXEDPOLYCURVE(#249,(IFCLINEINDEX((7,6))),$); +#253=IFCINDEXEDPOLYCURVE(#249,(IFCLINEINDEX((1,6))),$); +#254=IFCINDEXEDPOLYCURVE(#249,(IFCLINEINDEX((2,3))),$); +#255=IFCINDEXEDPOLYCURVE(#249,(IFCLINEINDEX((2,5)),IFCLINEINDEX((5,4))),$); +#256=IFCINDEXEDPOLYCURVE(#249,(IFCLINEINDEX((8,7))),$); +#257=IFCINDEXEDPOLYCURVE(#249,(IFCLINEINDEX((1,10)),IFCLINEINDEX((10,9)),IFCLINEINDEX((9,8))),$); +#258=IFCINDEXEDPOLYCURVE(#249,(IFCLINEINDEX((16,14)),IFCLINEINDEX((14,13))),$); +#259=IFCINDEXEDPOLYCURVE(#249,(IFCLINEINDEX((16,15))),$); +#260=IFCINDEXEDPOLYCURVE(#249,(IFCLINEINDEX((11,15))),$); +#261=IFCINDEXEDPOLYCURVE(#249,(IFCLINEINDEX((17,18)),IFCLINEINDEX((18,19)),IFCLINEINDEX((19,20)),IFCLINEINDEX((20,21)),IFCLINEINDEX((21,22)),IFCLINEINDEX((22,23)),IFCLINEINDEX((23,24)),IFCLINEINDEX((24,25)),IFCLINEINDEX((25,26)),IFCLINEINDEX((26,27)),IFCLINEINDEX((27,28)),IFCLINEINDEX((28,29))),$); +#262=IFCGEOMETRICCURVESET((#250,#251,#252,#253,#254,#255,#256,#257,#258,#259,#260,#261)); +#263=IFCSHAPEREPRESENTATION(#180,'Annotation','Annotation2D',(#262)); +#264=IFCREPRESENTATIONMAP(#248,#263); +#265=IFCDOORTYPE('0HLh8Cp3f58hay4OhB7SHy',$,'DEMO1',$,$,$,(#244,#264),$,$,$,$,$,$); +#269=IFCSURFACESTYLE('Frame',.BOTH.,(#1409)); +#270=IFCSTYLEDITEM(#235,(#269),'Frame'); +#274=IFCSURFACESTYLE('Panel',.BOTH.,(#1413)); +#275=IFCSTYLEDITEM(#242,(#274),'Panel'); +#276=IFCCARTESIANPOINT((0.,0.,0.)); +#277=IFCDIRECTION((0.,0.,1.)); +#278=IFCDIRECTION((1.,0.,0.)); +#279=IFCAXIS2PLACEMENT3D(#276,#277,#278); +#280=IFCCARTESIANPOINTLIST3D(((-0.0757642686367035,-0.0121694896370173,0.220662087202072),(-0.105255022644997,-0.0141069469973445,0.230906546115875),(-0.164038479328156,-0.0962571799755096,0.263201057910919),(-0.0149683114141226,-0.0434482358396053,0.228664547204971),(-0.0426693223416805,-0.0120228659361601,0.222334340214729),(0.0788992568850517,-0.0767349451780319,0.173714026808739),(0.0953715369105339,-0.0409212671220303,0.16986283659935),(-0.0719772353768349,-0.0949608311057091,0.171763256192207),(0.0735535696148872,-0.0462111458182335,0.199328601360321),(-0.160245850682259,0.0397466160356998,0.298533588647842),(0.106730677187443,-0.0124975387006998,0.138676866889),(0.0139651391655207,-0.0423045344650745,0.229461222887039),(0.0967235639691353,-0.0144418459385633,0.168111309409142),(-0.219927728176117,-0.0414205342531204,0.239053592085838),(-0.198184996843338,-0.0742136090993881,0.172668352723122),(-0.162167191505432,-0.0434498824179173,0.289568781852722),(-0.189809292554855,-0.0716947764158249,0.281713783740997),(0.0152298724278808,-0.0849794447422028,0.205268412828445),(-0.123513199388981,-0.0452961064875126,0.264716774225235),(-0.188629180192947,-0.119135543704033,0.233101561665535),(-0.0130218090489507,-0.0651145428419113,0.222954735159874),(-0.196876853704453,0.0119782146066427,0.138698890805244),(0.0431601963937283,-0.0451620146632195,0.22145189344883),(-0.216075524687767,-0.016599427908659,0.204968154430389),(-0.0582821778953075,0.0224160328507423,0.331800371408463),(-0.190823614597321,-0.102445237338543,0.260164886713028),(-0.0431380830705166,-0.0991964489221573,0.176975786685944),(-0.0522686094045639,0.0494366958737373,0.351232975721359),(-0.0895938724279404,0.0322130136191845,0.318689584732056),(0.013082567602396,-0.0668555349111557,0.223062723875046),(-0.106145963072777,-0.0415130592882633,0.22882467508316),(0.0448657646775246,-0.0776780471205711,0.203667193651199),(-0.10371295362711,-0.00366749544627964,0.314385384321213),(-0.21360756456852,-0.0169711355119944,0.233581200242043),(-0.138989388942719,-0.0749303176999092,0.265050023794174),(0.105769321322441,-0.0415658876299858,0.138697892427444),(0.0992072820663452,-0.0677607133984566,0.138679757714272),(-0.135680645704269,-0.0402409471571445,0.287896603345871),(-0.17496183514595,-0.0425181090831757,0.0743281096220016),(-0.161954745650291,-0.0129314502701163,0.289540559053421),(-0.208628505468369,-0.103418782353401,0.201527774333954),(0.0640031322836876,-0.0677034556865692,0.197900995612144),(0.100172616541386,0.0126537960022688,0.138708665966988),(-0.168615952134132,0.0482185557484627,0.30722576379776),(-0.0140691194683313,-0.0847146064043045,0.205532997846603),(0.0702492073178291,-0.1020467877388,0.138582319021225),(-0.181213811039925,0.0992056727409363,0.328065633773804),(-0.0152021609246731,-0.112156376242638,0.0183885656297207),(0.0162124074995518,-0.111216500401497,0.021827794611454),(-0.133747041225433,-0.0159911345690489,0.290624916553497),(-0.216561943292618,-0.0709330290555954,0.202728658914566),(-0.0427242144942284,-0.0426300838589668,0.222017183899879),(-0.159124106168747,-0.0738818794488907,0.283847242593765),(-0.103956542909145,0.0154779236763716,0.320181280374527),(-0.136982098221779,-0.102321907877922,0.0194435473531485),(-0.183684900403023,0.0396271869540215,0.295159220695496),(-0.107928916811943,-0.010153891518712,0.291135489940643),(-0.103886745870113,-0.101836994290352,0.0180104468017817),(-0.0461161360144615,-0.119219377636909,0.138967230916023),(-0.0461340732872486,-0.061420276761055,0.21500451862812),(-0.211329713463783,-0.0169732719659805,0.138692498207092),(-0.165825873613358,0.0170033983886242,0.294365167617798),(-0.162926822900772,0.0167535953223705,0.259086668491364),(0.044605728238821,-0.0985531806945801,0.171382486820221),(-0.0834082290530205,0.00335463741794229,0.315553486347198),(-0.15971240401268,0.0247225016355515,0.197611734271049),(-0.16489240527153,0.105032727122307,0.322820842266083),(-0.215148985385895,-0.0462404675781727,0.266269713640213),(0.074162483215332,0.0414574705064297,0.138786911964417),(0.0142031144350767,-0.105447888374329,0.170478105545044),(0.0141690038144588,-0.0131895141676068,0.229208543896675),(0.0433205515146255,-0.101634204387665,0.0178499221801758),(-0.194831639528275,0.00855887122452259,0.19867131114006),(-0.190071240067482,0.00837886054068804,0.263859361410141),(0.0146396514028311,0.0503562577068806,0.171330958604813),(-0.0466328002512455,-0.0789417400956154,0.203323245048523),(-0.0142267476767302,-0.0157651714980602,0.22864143550396),(-0.214272990822792,-0.0700500085949898,0.258544147014618),(-0.0187377445399761,0.0234869290143251,0.211539566516876),(-0.169090524315834,0.130419373512268,0.343455374240875),(-0.0730840340256691,-0.0585213899612427,0.211252138018608),(-0.211533859372139,-0.0429056100547314,0.138715773820877),(-0.0739177912473679,0.0154376216232777,0.210008263587952),(-0.07377789914608,-0.0735882744193077,0.200627535581589),(-0.186267927289009,-0.121167339384556,0.205986142158508),(0.0892870724201202,0.0163372419774532,0.167569145560265),(-0.163796290755272,0.0387952998280525,0.138641089200974),(-0.197594255208969,-0.07469642162323,0.138668864965439),(-0.157580107450485,0.132616892457008,0.328512966632843),(-0.0735077708959579,0.0393004417419434,0.326341509819031),(-0.133432641625404,-0.0800390690565109,0.240147277712822),(-0.161642774939537,-0.107512913644314,0.235317841172218),(-0.103187024593353,0.0151489116251469,0.293316811323166),(-0.131257891654968,-0.0962524563074112,0.0883080363273621),(-0.0977480411529541,0.0540151223540306,0.138882651925087),(-0.015323237515986,-0.12871652841568,0.138334348797798),(0.102820813655853,-0.0720862969756126,0.0782168358564377),(0.0691742300987244,0.00961552746593952,0.196848139166832),(-0.0784864947199821,-0.104707300662994,0.0244421008974314),(-0.129387423396111,-0.0837726294994354,0.201711267232895),(0.10028512775898,0.0147631969302893,0.106750056147575),(0.0725274235010147,-0.0733503252267838,0.0162904672324657),(0.0907945036888123,-0.0631996393203735,0.166820541024208),(-0.0685850381851196,0.0688069462776184,0.138255223631859),(-0.0430277064442635,-0.107757613062859,0.022122398018837),(0.102449595928192,-0.0650743395090103,0.0278087817132473),(-0.0123228346928954,-0.128916323184967,0.0516869872808456),(0.0133168455213308,-0.126367673277855,0.0497013293206692),(-0.211436733603477,-0.0425778105854988,0.171008050441742),(-0.135128378868103,-0.0737440511584282,0.028781833127141),(-0.0713493376970291,-0.0974928066134453,0.048680767416954),(-0.0144545361399651,-0.10740352421999,0.169533520936966),(-0.0520200654864311,-0.106458351016045,0.0468626022338867),(-0.0383422300219536,-0.121899470686913,0.0537898242473602),(-0.135303497314453,0.00472360569983721,0.269406676292419),(-0.222012773156166,-0.0435851588845253,0.201951056718826),(-0.150152832269669,0.0706916153430939,0.296226799488068),(-0.205232128500938,-0.0530128739774227,0.172492980957031),(0.0815067514777184,-0.0842671692371368,0.0463023483753204),(0.101917430758476,-0.0744422674179077,0.0511590167880058),(-0.104162633419037,-0.0769466981291771,0.197300210595131),(-0.165175527334213,0.100392691791058,0.295828104019165),(0.0624474883079529,-0.0914158597588539,0.172223627567291),(-0.0696270391345024,0.0371879562735558,0.345104366540909),(-0.129096910357475,-0.0715842396020889,0.0532362163066864),(-0.102229714393616,-0.0918472409248352,0.0500270053744316),(0.0328243598341942,-0.0628630220890045,0.219847500324249),(-0.0929397568106651,-0.0598123446106911,0.212814390659332),(-0.140351414680481,-0.0651696026325226,0.281688511371613),(-0.0299176927655935,0.0646412074565887,0.345614969730377),(-0.210334226489067,-0.019161444157362,0.170468419790268),(-0.189835593104362,-0.0147899463772774,0.284663945436478),(-0.0706062465906143,-0.0353134833276272,0.219783633947372),(-0.196250692009926,-0.0419037826359272,0.286000579595566),(-0.189289301633835,0.015417193993926,0.167268991470337),(-0.165491297841072,0.119253136217594,0.309156060218811),(-0.188711583614349,-0.0422543436288834,0.0857931450009346),(-0.137549817562103,-0.0175594426691532,0.048555850982666),(-0.0439321398735046,0.0188035927712917,0.209587976336479),(-0.166142821311951,0.0438390895724297,0.269286632537842),(-0.100659042596817,0.0212050415575504,0.210695147514343),(-0.165524810552597,0.0681574642658234,0.275103896856308),(-0.131917878985405,-0.0432314537465572,0.0469778589904308),(-0.0393056124448776,-0.127956256270409,0.0805243328213692),(-0.0148295955732465,-0.134464859962463,0.078124076128006),(0.0156515818089247,-0.132012516260147,0.0775675550103188),(0.128680378198624,-0.0638554841279984,0.0486980155110359),(0.011726126074791,-0.12689021229744,0.138521879911423),(-0.104669205844402,-0.0973712056875229,0.0786209478974342),(-0.0722803771495819,-0.0994613841176033,0.0782437026500702),(-0.0900976955890656,0.0289249792695045,0.304527103900909),(-0.131665915250778,-0.0805337652564049,0.0729337483644485),(-0.17888680100441,0.0127522293478251,0.288278430700302),(-0.131906762719154,0.0216084867715836,0.211986422538757),(0.0438910871744156,0.0446652211248875,0.170035198330879),(0.126842275261879,-0.0620891898870468,0.0720244571566582),(-0.181458547711372,0.0720020085573196,0.30515855550766),(-0.105359517037868,0.0106867477297783,0.222205132246017),(-0.0755681917071342,-0.105624243617058,0.10775239020586),(-0.130771055817604,0.0436740666627884,0.171749204397202),(-0.133024662733078,0.049973726272583,0.138679206371307),(-0.11655567586422,-0.016352504491806,0.262825727462769),(-0.192813113331795,0.00962049700319767,0.228011801838875),(-0.0995994955301285,0.0463632792234421,0.169919461011887),(-0.0153328543528914,0.07756557315588,0.138280719518661),(-0.0149811441078782,0.0544508099555969,0.170514196157455),(-0.0777326822280884,0.0189591310918331,0.297642737627029),(-0.0429378487169743,0.0526389256119728,0.171193689107895),(-0.210668057203293,-0.0934961810708046,0.245899826288223),(-0.162400558590889,0.0198477655649185,0.223333954811096),(0.112556174397469,-0.0415905937552452,0.087884321808815),(-0.0984991043806076,0.0341813936829567,0.19681504368782),(-0.125417664647102,0.00907643139362335,0.292186677455902),(0.0127286352217197,0.0715995132923126,0.138794869184494),(-0.184464573860168,-0.063567191362381,0.0917578190565109),(-0.159845903515816,0.0349735803902149,0.277037382125854),(-0.163954228162766,-0.073273241519928,0.079649306833744),(-0.130220845341682,0.0479081235826015,0.111017473042011),(-0.105627626180649,-0.103251308202744,0.104907594621181),(-0.0447412990033627,-0.130966305732727,0.105820834636688),(-0.0145897325128317,-0.137667417526245,0.107010833919048),(0.0177259147167206,-0.133680522441864,0.11051332205534),(-0.20410780608654,-0.015498636290431,0.265768945217133),(-0.163662612438202,-0.0963144749403,0.108248025178909),(-0.133774682879448,-0.102946348488331,0.108776144683361),(-0.152653515338898,-0.093793697655201,0.0112244309857488),(-0.169374197721481,0.0769077241420746,0.31595915555954),(-0.15337011218071,0.0495448186993599,0.289855599403381),(-0.14865180850029,0.0935175195336342,0.306516766548157),(-0.163774311542511,-0.100279614329338,0.138708546757698),(-0.114786863327026,-0.0349755696952343,0.251059830188751),(0.0435214228928089,-0.123003117740154,0.107089169323444),(0.0122568001970649,0.0234032459557056,0.212896287441254),(-0.132915586233139,-0.105148307979107,0.138666361570358),(-0.103796437382698,-0.10418801009655,0.13867013156414),(-0.0721595510840416,-0.1059859842062,0.138681977987289),(0.0412953048944473,-0.0123581402003765,0.221496060490608),(-0.0697300583124161,0.0507166534662247,0.170578330755234),(0.0441036224365234,-0.114852353930473,0.138935402035713),(-0.0128488391637802,0.0388977639377117,0.196252673864365),(-0.124916173517704,-0.00659546442329884,0.306106418371201),(-0.218161851167679,-0.071009561419487,0.230814844369888),(-0.163197606801987,-0.0973011329770088,0.173606932163239),(-0.106259688735008,-0.0960564464330673,0.167294099926949),(-0.134439319372177,-0.0996981337666512,0.164969086647034),(-0.160570159554482,-0.110724151134491,0.202919006347656),(-0.120365753769875,-0.00549432123079896,0.253050655126572),(-0.133883744478226,0.0106024611741304,0.23326064646244),(-0.0365464128553867,0.062771737575531,0.351498425006866),(-0.0698662772774696,0.0357129909098148,0.305281817913055),(-0.135447904467583,-0.0874549821019173,0.184239640831947),(-0.112891294062138,0.00657996907830238,0.271908432245255),(-0.0499069318175316,0.0498133301734924,0.325594484806061),(-0.135738432407379,-0.100006818771362,-7.45058059692383E-09),(0.0123523958027363,-0.101531967520714,-7.45058059692383E-09),(-0.102930329740047,-0.0987276136875153,-7.45058059692383E-09),(-0.158383101224899,0.0353976972401142,0.167762398719788),(0.0585155189037323,-0.0887269079685211,0.0169257298111916),(-0.202236160635948,-0.0440891794860363,0.107780121266842),(0.12652799487114,-0.0424845181405544,0.0317913927137852),(0.0445115864276886,-0.111490845680237,0.0452388003468513),(0.0178857706487179,0.0359265469014645,0.199328750371933),(0.0685334727168083,-0.0978689268231392,0.0533365905284882),(0.138488471508026,-0.0432419404387474,0.0493728704750538),(0.0406565591692924,0.062880277633667,0.138536900281906),(0.0871811881661415,-0.0870387107133865,0.138694822788239),(-0.0505233928561211,0.0300182458013296,0.313426643610001),(0.0435324311256409,-0.119963906705379,0.0792121887207031),(0.0723142325878143,-0.100660108029842,0.0801471099257469),(0.0880676060914993,-0.086207315325737,0.078484445810318),(0.136276960372925,-0.0405644066631794,0.078633114695549),(0.0735301449894905,0.0462804175913334,0.10518267005682),(-0.180783584713936,0.120272636413574,0.33598318696022),(-0.155802026391029,-0.042164009064436,0.0622472763061523),(-0.192451253533363,-0.0732510983943939,0.112686090171337),(0.0313579067587852,0.0240139346569777,0.208784699440002),(0.0728883668780327,-0.103513494133949,0.107350297272205),(0.0885002017021179,-0.0885679498314857,0.105739302933216),(0.100790202617645,-0.0713259652256966,0.10683286935091),(0.109439946711063,-0.0426978133618832,0.107300646603107),(-0.18864569067955,-0.0167884975671768,0.0867345333099365),(-0.0709428116679192,0.0352016389369965,0.19365206360817),(-0.0357190407812595,0.0615072995424271,0.335724234580994),(0.0447911284863949,0.0144118629395962,-7.45058059692383E-09),(0.0369860865175724,0.0369828194379807,-7.45058059692383E-09),(0.0461129434406757,-0.0748821049928665,-7.45058059692383E-09),(0.104031659662724,-0.0135611081495881,0.0148804550990462),(0.0986066535115242,0.0066530667245388,0.0271508432924747),(0.103960558772087,-0.0420542061328888,0.0150693515315652),(0.121874935925007,-0.0147962821647525,0.0282622296363115),(0.0696230307221413,0.0340555869042873,0.168976783752441),(0.0729203075170517,0.015480482019484,0.0226278305053711),(-0.0445376336574554,0.0741409137845039,0.139188349246979),(0.046685803681612,0.0460076108574867,0.0192816369235516),(0.132462680339813,-0.0147683853283525,0.079218864440918),(0.123972199857235,0.00519884005188942,0.0471794344484806),(0.13483801484108,-0.0135693158954382,0.0477543026208878),(0.101557418704033,0.0150842368602753,0.0500984787940979),(-0.151446789503098,0.125798091292381,0.318272113800049),(0.0826703608036041,0.023927254602313,0.0464257299900055),(0.0693408101797104,0.0435765013098717,0.0500893704593182),(-0.0420871675014496,0.0380131863057613,0.193471923470497),(-0.0971032008528709,0.0616641864180565,-7.45058059692383E-09),(-0.0130963791161776,0.064698226749897,0.0197515171021223),(-0.157119512557983,0.00803167372941971,-7.45058059692383E-09),(0.113602519035339,-0.0132037419825792,0.0879008769989014),(-0.069912314414978,0.066078893840313,0.0191369466483593),(0.0389328189194202,0.0351467467844486,0.194373697042465),(0.0768988505005836,0.0420413166284561,0.0788332372903824),(0.10157422721386,0.0134498169645667,0.0773250162601471),(0.123080961406231,0.00395354814827442,0.0694246292114258),(-0.211960434913635,-0.102200835943222,0.224356546998024),(0.110181555151939,-0.0136255938559771,0.109196342527866),(-0.102282598614693,0.0414383597671986,0.019612405449152),(-0.172445297241211,0.11539913713932,0.340771019458771),(-0.181048646569252,0.112369157373905,0.34296378493309),(0.0725264996290207,-0.0152853392064571,0.200319215655327),(-0.183978870511055,0.0709394812583923,0.317676812410355),(-0.153028383851051,-0.0384657420217991,-7.45058059692383E-09),(-0.154637187719345,-0.0691222250461578,-7.45058059692383E-09),(-0.152765303850174,-0.0738510563969612,0.015262059867382),(-0.153248697519302,-0.0919284746050835,-7.45058059692383E-09),(-0.16192090511322,-0.0145302480086684,-7.45058059692383E-09),(-0.161076262593269,-0.0149271814152598,0.0173035766929388),(-0.139386385679245,-0.0480194091796875,0.0201432537287474),(-0.15407682955265,-0.0336258858442307,0.0154564278200269),(-0.141747921705246,-0.0158547051250935,0.0288874395191669),(-0.0563743449747562,-0.108996540307999,0.0737379342317581),(-0.0461691729724407,0.0890766233205795,0.110146202147007),(-0.0146415047347546,0.0512426868081093,-7.45058059692383E-09),(-0.156508177518845,0.00872325897216797,0.0127747664228082),(-0.0932494476437569,0.0622886717319489,0.0157215017825365),(-0.134241998195648,0.0180515833199024,0.0220324043184519),(-0.0754619538784027,0.0455531552433968,0.0509162880480289),(-0.103701874613762,0.0273517612367868,0.0517874732613564),(-0.131066977977753,0.0115249017253518,0.0524038933217525),(-0.062931016087532,0.0692232176661491,0.0536416172981262),(-0.132335588335991,0.0322872921824455,0.19751612842083),(-0.0452888980507851,0.0760203972458839,0.0472172982990742),(-0.163926124572754,0.0142420912161469,0.0823174566030502),(-0.174691706895828,-0.0135900285094976,0.0736509189009666),(-0.0486402213573456,0.0849898308515549,0.0788175389170647),(-0.0689510703086853,0.0702485665678978,0.0784279331564903),(-0.0810153111815453,0.0491584502160549,0.0748984813690186),(-0.0429749675095081,0.0617619827389717,-7.45058059692383E-09),(0.0349937379360199,0.00642204098403454,0.219141826033592),(-0.202323064208031,-0.0122631303966045,0.109208643436432),(-0.188646167516708,0.0148954978212714,0.108683586120605),(-0.0744052901864052,0.0735662579536438,0.106222227215767),(-0.161729156970978,0.0381991006433964,0.108166508376598),(-0.104008600115776,0.0453929454088211,-7.45058059692383E-09),(0.0388389863073826,0.0702219158411026,0.10972835123539),(-0.0412575826048851,0.0688836574554443,0.0204634200781584),(-0.132600158452988,0.0162683837115765,-7.45058059692383E-09),(0.0419384241104126,0.0643723532557487,0.0487342029809952),(-0.0230755694210529,0.0902970731258392,0.106796741485596),(0.0122685618698597,0.0503091886639595,-7.45058059692383E-09),(0.0420029424130917,0.0680971890687943,0.0789963230490685),(-0.0132175851613283,0.00625489093363285,0.222308561205864),(0.0146723045036197,0.00723757036030293,0.223271667957306),(0.0720149055123329,-0.0120490025728941,0.00231547281146049),(0.013688700273633,0.0642379224300385,0.0262222941964865),(0.033619936555624,0.0599825419485569,0.0301631242036819),(0.0156846102327108,0.0726122707128525,0.0497567467391491),(-0.0139973452314734,0.0766579210758209,0.0474896989762783),(-0.0166601836681366,0.0857705846428871,0.0790435597300529),(0.0127416122704744,0.0787845030426979,0.0776184424757957),(-0.137325063347816,0.0222998633980751,0.0709470063447952),(-0.103061355650425,0.0392319709062576,0.082869827747345),(-0.133015736937523,0.0387391112744808,0.0904415026307106),(-0.151931047439575,0.0321191623806953,0.0878717452287674),(0.0125869233161211,0.0806632563471794,0.105742789804935),(-0.0995742082595825,0.049370177090168,0.106232292950153),(-0.0746603757143021,0.0656085163354874,-7.45058059692383E-09),(0.0122953318059444,0.017735980451107,-7.45058059692383E-09),(-0.0146934473887086,0.0262711010873318,-7.45058059692383E-09),(-0.0429374538362026,0.0298651698976755,-7.45058059692383E-09),(-0.103215932846069,0.0137835666537285,-7.45058059692383E-09),(0.0444422401487827,-0.0129836350679398,-7.45058059692383E-09),(-0.0746518895030022,0.0316607765853405,-7.45058059692383E-09),(0.0123018361628056,-0.0127876792103052,-7.45058059692383E-09),(-0.0147215090692043,-0.0133242877200246,-7.45058059692383E-09),(-0.101430043578148,-0.0147481001913548,-7.45058059692383E-09),(-0.0429213680326939,-0.0151002155616879,-7.45058059692383E-09),(-0.132630944252014,-0.0134387537837029,-7.45058059692383E-09),(-0.0746475011110306,-0.0111579261720181,-7.45058059692383E-09),(0.0461949594318867,-0.0483818538486958,-7.45058059692383E-09),(0.0123028568923473,-0.0431565642356873,-7.45058059692383E-09),(0.0676943361759186,-0.0439984127879143,0.00213921279646456),(-0.0147214606404305,-0.0419304519891739,-7.45058059692383E-09),(-0.0429213680326939,-0.0426230616867542,-7.45058059692383E-09),(-0.134391859173775,-0.0420995727181435,-7.45058059692383E-09),(0.0123003236949444,-0.0714240521192551,-7.45058059692383E-09),(-0.0147217661142349,-0.0719940662384033,-7.45058059692383E-09),(-0.0746477097272873,-0.0698381289839745,-7.45058059692383E-09),(-0.0429213680326939,-0.0721928924322128,-7.45058059692383E-09),(-0.101144231855869,-0.0718697011470795,-7.45058059692383E-09),(0.0347950644791126,-0.096686989068985,-7.45058059692383E-09),(-0.132067084312439,-0.0720017328858376,-7.45058059692383E-09),(-0.159548789262772,-0.0125050684437156,0.0618688985705376),(-0.0169071108102798,-0.107485927641392,-7.45058059692383E-09),(-0.0746394321322441,-0.103576719760895,-7.45058059692383E-09),(-0.0428757518529892,-0.105996340513229,-7.45058059692383E-09),(-0.0746474862098694,-0.0418127365410328,-7.45058059692383E-09),(-0.101288944482803,-0.0456511229276657,-7.45058059692383E-09),(0.061871238052845,0.0245271548628807,0.191577181220055),(-0.0470216795802116,0.0414715930819511,0.344332307577133),(-0.0351001992821693,0.0582603961229324,0.352131396532059),(-0.043320570141077,0.0422725304961205,0.325726985931396),(-0.0332878455519676,0.056865319609642,0.334871053695679),(-0.0782285928726196,0.010980136692524,0.334277510643005),(-0.0612197890877724,0.0185103937983513,0.30783212184906),(-0.0876919776201248,0.0268637835979462,0.333815038204193),(-0.0750949084758759,-0.00158989988267422,0.21651217341423),(-0.0432584583759308,0.000724630663171411,0.217384174466133))); +#281=IFCINDEXEDPOLYGONALFACE((187,278,44)); +#282=IFCINDEXEDPOLYGONALFACE((21,52,60)); +#283=IFCINDEXEDPOLYGONALFACE((91,100,31)); +#284=IFCINDEXEDPOLYGONALFACE((162,19,191)); +#285=IFCINDEXEDPOLYGONALFACE((288,180,159)); +#286=IFCINDEXEDPOLYGONALFACE((241,219,307)); +#287=IFCINDEXEDPOLYGONALFACE((54,93,173)); +#288=IFCINDEXEDPOLYGONALFACE((60,45,21)); +#289=IFCINDEXEDPOLYGONALFACE((58,110,55)); +#290=IFCINDEXEDPOLYGONALFACE((64,18,70)); +#291=IFCINDEXEDPOLYGONALFACE((2,207,162)); +#292=IFCINDEXEDPOLYGONALFACE((10,176,188)); +#293=IFCINDEXEDPOLYGONALFACE((105,114,113)); +#294=IFCINDEXEDPOLYGONALFACE((220,106,249)); +#295=IFCINDEXEDPOLYGONALFACE((252,321,244)); +#296=IFCINDEXEDPOLYGONALFACE((162,57,19)); +#297=IFCINDEXEDPOLYGONALFACE((224,147,220)); +#298=IFCINDEXEDPOLYGONALFACE((90,373,124)); +#299=IFCINDEXEDPOLYGONALFACE((70,199,64)); +#300=IFCINDEXEDPOLYGONALFACE((256,248,258)); +#301=IFCINDEXEDPOLYGONALFACE((115,212,207)); +#302=IFCINDEXEDPOLYGONALFACE((103,36,7)); +#303=IFCINDEXEDPOLYGONALFACE((71,306,320)); +#304=IFCINDEXEDPOLYGONALFACE((297,267,294)); +#305=IFCINDEXEDPOLYGONALFACE((57,50,19)); +#306=IFCINDEXEDPOLYGONALFACE((117,44,188)); +#307=IFCINDEXEDPOLYGONALFACE((62,56,153)); +#308=IFCINDEXEDPOLYGONALFACE((106,147,120)); +#309=IFCINDEXEDPOLYGONALFACE((254,244,245)); +#310=IFCINDEXEDPOLYGONALFACE((208,207,2)); +#311=IFCINDEXEDPOLYGONALFACE((256,257,250)); +#312=IFCINDEXEDPOLYGONALFACE((203,205,211)); +#313=IFCINDEXEDPOLYGONALFACE((56,278,157)); +#314=IFCINDEXEDPOLYGONALFACE((103,7,9)); +#315=IFCINDEXEDPOLYGONALFACE((63,140,176)); +#316=IFCINDEXEDPOLYGONALFACE((15,109,118)); +#317=IFCINDEXEDPOLYGONALFACE((59,159,180)); +#318=IFCINDEXEDPOLYGONALFACE((158,154,208)); +#319=IFCINDEXEDPOLYGONALFACE((300,241,308)); +#320=IFCINDEXEDPOLYGONALFACE((23,32,42)); +#321=IFCINDEXEDPOLYGONALFACE((44,278,56)); +#322=IFCINDEXEDPOLYGONALFACE((189,259,67)); +#323=IFCINDEXEDPOLYGONALFACE((309,304,333)); +#324=IFCINDEXEDPOLYGONALFACE((136,89,259)); +#325=IFCINDEXEDPOLYGONALFACE((31,191,19)); +#326=IFCINDEXEDPOLYGONALFACE((295,304,294)); +#327=IFCINDEXEDPOLYGONALFACE((50,38,19)); +#328=IFCINDEXEDPOLYGONALFACE((44,62,10)); +#329=IFCINDEXEDPOLYGONALFACE((369,25,227)); +#330=IFCINDEXEDPOLYGONALFACE((136,47,233)); +#331=IFCINDEXEDPOLYGONALFACE((33,54,201)); +#332=IFCINDEXEDPOLYGONALFACE((333,304,329)); +#333=IFCINDEXEDPOLYGONALFACE((281,110,285)); +#334=IFCINDEXEDPOLYGONALFACE((275,80,276)); +#335=IFCINDEXEDPOLYGONALFACE((119,106,120)); +#336=IFCINDEXEDPOLYGONALFACE((276,80,233)); +#337=IFCINDEXEDPOLYGONALFACE((232,318,312)); +#338=IFCINDEXEDPOLYGONALFACE((208,63,115)); +#339=IFCINDEXEDPOLYGONALFACE((150,288,159)); +#340=IFCINDEXEDPOLYGONALFACE((286,287,284)); +#341=IFCINDEXEDPOLYGONALFACE((286,285,287)); +#342=IFCINDEXEDPOLYGONALFACE((285,286,279)); +#343=IFCINDEXEDPOLYGONALFACE((239,171,240)); +#344=IFCINDEXEDPOLYGONALFACE((233,47,276)); +#345=IFCINDEXEDPOLYGONALFACE((124,213,90)); +#346=IFCINDEXEDPOLYGONALFACE((157,278,47)); +#347=IFCINDEXEDPOLYGONALFACE((187,47,157)); +#348=IFCINDEXEDPOLYGONALFACE((268,75,222)); +#349=IFCINDEXEDPOLYGONALFACE((101,269,232)); +#350=IFCINDEXEDPOLYGONALFACE((277,7,13)); +#351=IFCINDEXEDPOLYGONALFACE((140,63,74)); +#352=IFCINDEXEDPOLYGONALFACE((140,74,56)); +#353=IFCINDEXEDPOLYGONALFACE((74,153,56)); +#354=IFCINDEXEDPOLYGONALFACE((57,201,50)); +#355=IFCINDEXEDPOLYGONALFACE((320,236,193)); +#356=IFCINDEXEDPOLYGONALFACE((222,236,268)); +#357=IFCINDEXEDPOLYGONALFACE((173,50,201)); +#358=IFCINDEXEDPOLYGONALFACE((299,267,297)); +#359=IFCINDEXEDPOLYGONALFACE((162,212,57)); +#360=IFCINDEXEDPOLYGONALFACE((208,115,207)); +#361=IFCINDEXEDPOLYGONALFACE((267,292,274)); +#362=IFCINDEXEDPOLYGONALFACE((98,197,277)); +#363=IFCINDEXEDPOLYGONALFACE((295,328,329)); +#364=IFCINDEXEDPOLYGONALFACE((158,208,2)); +#365=IFCINDEXEDPOLYGONALFACE((201,57,33)); +#366=IFCINDEXEDPOLYGONALFACE((187,47,278)); +#367=IFCINDEXEDPOLYGONALFACE((241,307,308)); +#368=IFCINDEXEDPOLYGONALFACE((335,317,245)); +#369=IFCINDEXEDPOLYGONALFACE((328,330,329)); +#370=IFCINDEXEDPOLYGONALFACE((84,128,121)); +#371=IFCINDEXEDPOLYGONALFACE((331,330,328)); +#372=IFCINDEXEDPOLYGONALFACE((300,331,328)); +#373=IFCINDEXEDPOLYGONALFACE((129,19,38)); +#374=IFCINDEXEDPOLYGONALFACE((154,298,66)); +#375=IFCINDEXEDPOLYGONALFACE((317,322,323)); +#376=IFCINDEXEDPOLYGONALFACE((302,297,303)); +#377=IFCINDEXEDPOLYGONALFACE((212,93,167)); +#378=IFCINDEXEDPOLYGONALFACE((94,185,184)); +#379=IFCINDEXEDPOLYGONALFACE((211,121,100)); +#380=IFCINDEXEDPOLYGONALFACE((212,173,93)); +#381=IFCINDEXEDPOLYGONALFACE((317,254,245)); +#382=IFCINDEXEDPOLYGONALFACE((51,15,41)); +#383=IFCINDEXEDPOLYGONALFACE((321,339,244)); +#384=IFCINDEXEDPOLYGONALFACE((244,335,245)); +#385=IFCINDEXEDPOLYGONALFACE((211,204,121)); +#386=IFCINDEXEDPOLYGONALFACE((246,72,358)); +#387=IFCINDEXEDPOLYGONALFACE((300,360,301)); +#388=IFCINDEXEDPOLYGONALFACE((234,177,39)); +#389=IFCINDEXEDPOLYGONALFACE((125,152,177)); +#390=IFCINDEXEDPOLYGONALFACE((338,314,311)); +#391=IFCINDEXEDPOLYGONALFACE((149,94,152)); +#392=IFCINDEXEDPOLYGONALFACE((39,175,137)); +#393=IFCINDEXEDPOLYGONALFACE((334,292,267)); +#394=IFCINDEXEDPOLYGONALFACE((343,338,340,346)); +#395=IFCINDEXEDPOLYGONALFACE((283,286,284)); +#396=IFCINDEXEDPOLYGONALFACE((129,16,53)); +#397=IFCINDEXEDPOLYGONALFACE((102,249,106)); +#398=IFCINDEXEDPOLYGONALFACE((197,12,23)); +#399=IFCINDEXEDPOLYGONALFACE((330,310,178)); +#400=IFCINDEXEDPOLYGONALFACE((307,61,22,308)); +#401=IFCINDEXEDPOLYGONALFACE((300,310,331)); +#402=IFCINDEXEDPOLYGONALFACE((205,190,194)); +#403=IFCINDEXEDPOLYGONALFACE((133,2,31)); +#404=IFCINDEXEDPOLYGONALFACE((85,92,20)); +#405=IFCINDEXEDPOLYGONALFACE((360,39,301)); +#406=IFCINDEXEDPOLYGONALFACE((122,47,136)); +#407=IFCINDEXEDPOLYGONALFACE((281,282,186)); +#408=IFCINDEXEDPOLYGONALFACE((2,191,31)); +#409=IFCINDEXEDPOLYGONALFACE((250,249,247)); +#410=IFCINDEXEDPOLYGONALFACE((58,214,216)); +#411=IFCINDEXEDPOLYGONALFACE((234,138,143)); +#412=IFCINDEXEDPOLYGONALFACE((141,298,154)); +#413=IFCINDEXEDPOLYGONALFACE((27,45,76)); +#414=IFCINDEXEDPOLYGONALFACE((146,181,145)); +#415=IFCINDEXEDPOLYGONALFACE((144,181,180)); +#416=IFCINDEXEDPOLYGONALFACE((195,185,179)); +#417=IFCINDEXEDPOLYGONALFACE((228,223,229)); +#418=IFCINDEXEDPOLYGONALFACE((49,358,72)); +#419=IFCINDEXEDPOLYGONALFACE((74,34,183)); +#420=IFCINDEXEDPOLYGONALFACE((221,218,223)); +#421=IFCINDEXEDPOLYGONALFACE((146,107,108)); +#422=IFCINDEXEDPOLYGONALFACE((194,204,205)); +#423=IFCINDEXEDPOLYGONALFACE((352,359,280,279)); +#424=IFCINDEXEDPOLYGONALFACE((46,64,199)); +#425=IFCINDEXEDPOLYGONALFACE((366,86,251)); +#426=IFCINDEXEDPOLYGONALFACE((48,114,105)); +#427=IFCINDEXEDPOLYGONALFACE((198,95,164)); +#428=IFCINDEXEDPOLYGONALFACE((372,65,167)); +#429=IFCINDEXEDPOLYGONALFACE((74,132,153)); +#430=IFCINDEXEDPOLYGONALFACE((21,12,4)); +#431=IFCINDEXEDPOLYGONALFACE((288,111,113)); +#432=IFCINDEXEDPOLYGONALFACE((75,225,174)); +#433=IFCINDEXEDPOLYGONALFACE((166,262,200)); +#434=IFCINDEXEDPOLYGONALFACE((223,230,229)); +#435=IFCINDEXEDPOLYGONALFACE((26,92,3)); +#436=IFCINDEXEDPOLYGONALFACE((219,88,82)); +#437=IFCINDEXEDPOLYGONALFACE((355,357,365,364)); +#438=IFCINDEXEDPOLYGONALFACE((322,325,324)); +#439=IFCINDEXEDPOLYGONALFACE((257,220,250)); +#440=IFCINDEXEDPOLYGONALFACE((289,104,253)); +#441=IFCINDEXEDPOLYGONALFACE((228,108,221)); +#442=IFCINDEXEDPOLYGONALFACE((119,218,102)); +#443=IFCINDEXEDPOLYGONALFACE((367,124,25)); +#444=IFCINDEXEDPOLYGONALFACE((327,325,326)); +#445=IFCINDEXEDPOLYGONALFACE((40,115,63)); +#446=IFCINDEXEDPOLYGONALFACE((321,248,247)); +#447=IFCINDEXEDPOLYGONALFACE((158,83,141)); +#448=IFCINDEXEDPOLYGONALFACE((13,98,277)); +#449=IFCINDEXEDPOLYGONALFACE((352,345,343,365)); +#450=IFCINDEXEDPOLYGONALFACE((5,374,1)); +#451=IFCINDEXEDPOLYGONALFACE((339,347,348,341)); +#452=IFCINDEXEDPOLYGONALFACE((135,87,22)); +#453=IFCINDEXEDPOLYGONALFACE((156,224,231)); +#454=IFCINDEXEDPOLYGONALFACE((163,63,170)); +#455=IFCINDEXEDPOLYGONALFACE((56,142,140)); +#456=IFCINDEXEDPOLYGONALFACE((362,355,356,363)); +#457=IFCINDEXEDPOLYGONALFACE((88,203,15)); +#458=IFCINDEXEDPOLYGONALFACE((24,163,73)); +#459=IFCINDEXEDPOLYGONALFACE((14,78,68)); +#460=IFCINDEXEDPOLYGONALFACE((248,260,258)); +#461=IFCINDEXEDPOLYGONALFACE((78,26,17)); +#462=IFCINDEXEDPOLYGONALFACE((16,17,53)); +#463=IFCINDEXEDPOLYGONALFACE((161,164,95)); +#464=IFCINDEXEDPOLYGONALFACE((291,287,293)); +#465=IFCINDEXEDPOLYGONALFACE((127,18,32)); +#466=IFCINDEXEDPOLYGONALFACE((182,199,148)); +#467=IFCINDEXEDPOLYGONALFACE((319,71,320)); +#468=IFCINDEXEDPOLYGONALFACE((225,232,312)); +#469=IFCINDEXEDPOLYGONALFACE((302,309,289)); +#470=IFCINDEXEDPOLYGONALFACE((13,36,11)); +#471=IFCINDEXEDPOLYGONALFACE((308,87,310)); +#472=IFCINDEXEDPOLYGONALFACE((353,348,347,246)); +#473=IFCINDEXEDPOLYGONALFACE((262,79,200)); +#474=IFCINDEXEDPOLYGONALFACE((131,73,135)); +#475=IFCINDEXEDPOLYGONALFACE((370,213,243)); +#476=IFCINDEXEDPOLYGONALFACE((92,100,91)); +#477=IFCINDEXEDPOLYGONALFACE((89,233,80)); +#478=IFCINDEXEDPOLYGONALFACE((332,165,174)); +#479=IFCINDEXEDPOLYGONALFACE((1,374,2)); +#480=IFCINDEXEDPOLYGONALFACE((28,368,209)); +#481=IFCINDEXEDPOLYGONALFACE((189,136,259)); +#482=IFCINDEXEDPOLYGONALFACE((326,332,327)); +#483=IFCINDEXEDPOLYGONALFACE((117,122,189)); +#484=IFCINDEXEDPOLYGONALFACE((132,16,40)); +#485=IFCINDEXEDPOLYGONALFACE((263,334,311)); +#486=IFCINDEXEDPOLYGONALFACE((134,183,68)); +#487=IFCINDEXEDPOLYGONALFACE((157,122,142)); +#488=IFCINDEXEDPOLYGONALFACE((239,230,97)); +#489=IFCINDEXEDPOLYGONALFACE((180,96,59)); +#490=IFCINDEXEDPOLYGONALFACE((99,113,111)); +#491=IFCINDEXEDPOLYGONALFACE((22,131,135)); +#492=IFCINDEXEDPOLYGONALFACE((321,249,349)); +#493=IFCINDEXEDPOLYGONALFACE((156,120,147)); +#494=IFCINDEXEDPOLYGONALFACE((148,181,182)); +#495=IFCINDEXEDPOLYGONALFACE((152,126,149)); +#496=IFCINDEXEDPOLYGONALFACE((346,340,337,344)); +#497=IFCINDEXEDPOLYGONALFACE((358,215,353,246)); +#498=IFCINDEXEDPOLYGONALFACE((275,89,80)); +#499=IFCINDEXEDPOLYGONALFACE((240,37,239)); +#500=IFCINDEXEDPOLYGONALFACE((14,183,34)); +#501=IFCINDEXEDPOLYGONALFACE((293,295,274)); +#502=IFCINDEXEDPOLYGONALFACE((350,351,344,342)); +#503=IFCINDEXEDPOLYGONALFACE((148,112,96)); +#504=IFCINDEXEDPOLYGONALFACE((313,325,264)); +#505=IFCINDEXEDPOLYGONALFACE((154,170,208)); +#506=IFCINDEXEDPOLYGONALFACE((226,123,46)); +#507=IFCINDEXEDPOLYGONALFACE((351,364,346,344)); +#508=IFCINDEXEDPOLYGONALFACE((355,362,216,357)); +#509=IFCINDEXEDPOLYGONALFACE((349,339,321)); +#510=IFCINDEXEDPOLYGONALFACE((318,324,327)); +#511=IFCINDEXEDPOLYGONALFACE((338,311,334,340)); +#512=IFCINDEXEDPOLYGONALFACE((326,299,302)); +#513=IFCINDEXEDPOLYGONALFACE((112,59,96)); +#514=IFCINDEXEDPOLYGONALFACE((262,198,242)); +#515=IFCINDEXEDPOLYGONALFACE((272,51,41)); +#516=IFCINDEXEDPOLYGONALFACE((318,261,315)); +#517=IFCINDEXEDPOLYGONALFACE((167,57,212)); +#518=IFCINDEXEDPOLYGONALFACE((271,266,255)); +#519=IFCINDEXEDPOLYGONALFACE((218,246,102)); +#520=IFCINDEXEDPOLYGONALFACE((94,179,185)); +#521=IFCINDEXEDPOLYGONALFACE((343,346,364,365)); +#522=IFCINDEXEDPOLYGONALFACE((40,153,132)); +#523=IFCINDEXEDPOLYGONALFACE((345,314,338,343)); +#524=IFCINDEXEDPOLYGONALFACE((8,121,204)); +#525=IFCINDEXEDPOLYGONALFACE((32,64,123)); +#526=IFCINDEXEDPOLYGONALFACE((88,109,82)); +#527=IFCINDEXEDPOLYGONALFACE((133,128,81)); +#528=IFCINDEXEDPOLYGONALFACE((193,319,320)); +#529=IFCINDEXEDPOLYGONALFACE((370,367,369)); +#530=IFCINDEXEDPOLYGONALFACE((6,9,42)); +#531=IFCINDEXEDPOLYGONALFACE((214,186,282)); +#532=IFCINDEXEDPOLYGONALFACE((200,75,166)); +#533=IFCINDEXEDPOLYGONALFACE((375,79,139)); +#534=IFCINDEXEDPOLYGONALFACE((95,309,333)); +#535=IFCINDEXEDPOLYGONALFACE((221,49,72)); +#536=IFCINDEXEDPOLYGONALFACE((36,273,11)); +#537=IFCINDEXEDPOLYGONALFACE((69,155,251)); +#538=IFCINDEXEDPOLYGONALFACE((316,302,289)); +#539=IFCINDEXEDPOLYGONALFACE((297,304,303)); +#540=IFCINDEXEDPOLYGONALFACE((195,159,196)); +#541=IFCINDEXEDPOLYGONALFACE((110,186,55)); +#542=IFCINDEXEDPOLYGONALFACE((323,324,315)); +#543=IFCINDEXEDPOLYGONALFACE((172,83,242)); +#544=IFCINDEXEDPOLYGONALFACE((61,219,82)); +#545=IFCINDEXEDPOLYGONALFACE((283,291,265)); +#546=IFCINDEXEDPOLYGONALFACE((184,175,177)); +#547=IFCINDEXEDPOLYGONALFACE((349,246,347)); +#548=IFCINDEXEDPOLYGONALFACE((174,166,75)); +#549=IFCINDEXEDPOLYGONALFACE((48,363,361)); +#550=IFCINDEXEDPOLYGONALFACE((199,237,46)); +#551=IFCINDEXEDPOLYGONALFACE((164,242,198)); +#552=IFCINDEXEDPOLYGONALFACE((290,317,335,336)); +#553=IFCINDEXEDPOLYGONALFACE((217,298,160)); +#554=IFCINDEXEDPOLYGONALFACE((193,200,79)); +#555=IFCINDEXEDPOLYGONALFACE((253,166,165)); +#556=IFCINDEXEDPOLYGONALFACE((202,116,51)); +#557=IFCINDEXEDPOLYGONALFACE((236,366,268)); +#558=IFCINDEXEDPOLYGONALFACE((170,73,163)); +#559=IFCINDEXEDPOLYGONALFACE((360,328,296)); +#560=IFCINDEXEDPOLYGONALFACE((354,350,348,353)); +#561=IFCINDEXEDPOLYGONALFACE((359,357,216,214)); +#562=IFCINDEXEDPOLYGONALFACE((143,110,125)); +#563=IFCINDEXEDPOLYGONALFACE((265,314,345,283)); +#564=IFCINDEXEDPOLYGONALFACE((252,261,260)); +#565=IFCINDEXEDPOLYGONALFACE((305,337,340,334)); +#566=IFCINDEXEDPOLYGONALFACE((131,116,24)); +#567=IFCINDEXEDPOLYGONALFACE((104,168,253)); +#568=IFCINDEXEDPOLYGONALFACE((126,99,111)); +#569=IFCINDEXEDPOLYGONALFACE((47,275,276)); +#570=IFCINDEXEDPOLYGONALFACE((230,120,97)); +#571=IFCINDEXEDPOLYGONALFACE((279,283,345,352)); +#572=IFCINDEXEDPOLYGONALFACE((67,89,275)); +#573=IFCINDEXEDPOLYGONALFACE((257,271,255)); +#574=IFCINDEXEDPOLYGONALFACE((257,231,224)); +#575=IFCINDEXEDPOLYGONALFACE((316,253,165)); +#576=IFCINDEXEDPOLYGONALFACE((17,3,53)); +#577=IFCINDEXEDPOLYGONALFACE((273,171,266)); +#578=IFCINDEXEDPOLYGONALFACE((260,270,258)); +#579=IFCINDEXEDPOLYGONALFACE((362,58,216)); +#580=IFCINDEXEDPOLYGONALFACE((48,108,107)); +#581=IFCINDEXEDPOLYGONALFACE((57,65,33)); +#582=IFCINDEXEDPOLYGONALFACE((160,172,164)); +#583=IFCINDEXEDPOLYGONALFACE((190,235,184)); +#584=IFCINDEXEDPOLYGONALFACE((354,353,215,361)); +#585=IFCINDEXEDPOLYGONALFACE((258,271,256)); +#586=IFCINDEXEDPOLYGONALFACE((155,366,251)); +#587=IFCINDEXEDPOLYGONALFACE((365,357,359,352)); +#588=IFCINDEXEDPOLYGONALFACE((169,20,26)); +#589=IFCINDEXEDPOLYGONALFACE((312,174,225)); +#590=IFCINDEXEDPOLYGONALFACE((273,43,11)); +#591=IFCINDEXEDPOLYGONALFACE((264,317,290)); +#592=IFCINDEXEDPOLYGONALFACE((287,296,293)); +#593=IFCINDEXEDPOLYGONALFACE((159,149,150)); +#594=IFCINDEXEDPOLYGONALFACE((267,305,334)); +#595=IFCINDEXEDPOLYGONALFACE((206,211,100)); +#596=IFCINDEXEDPOLYGONALFACE((126,150,149)); +#597=IFCINDEXEDPOLYGONALFACE((288,114,144)); +#598=IFCINDEXEDPOLYGONALFACE((266,101,273)); +#599=IFCINDEXEDPOLYGONALFACE((123,42,32)); +#600=IFCINDEXEDPOLYGONALFACE((255,171,231)); +#601=IFCINDEXEDPOLYGONALFACE((34,116,14)); +#602=IFCINDEXEDPOLYGONALFACE((91,3,92)); +#603=IFCINDEXEDPOLYGONALFACE((287,143,138)); +#604=IFCINDEXEDPOLYGONALFACE((77,12,71)); +#605=IFCINDEXEDPOLYGONALFACE((95,178,161)); +#606=IFCINDEXEDPOLYGONALFACE((285,280,281)); +#607=IFCINDEXEDPOLYGONALFACE((242,139,262)); +#608=IFCINDEXEDPOLYGONALFACE((332,318,327)); +#609=IFCINDEXEDPOLYGONALFACE((226,239,37)); +#610=IFCINDEXEDPOLYGONALFACE((175,219,137)); +#611=IFCINDEXEDPOLYGONALFACE((177,94,184)); +#612=IFCINDEXEDPOLYGONALFACE((103,226,37)); +#613=IFCINDEXEDPOLYGONALFACE((372,371,65)); +#614=IFCINDEXEDPOLYGONALFACE((341,335,244,339)); +#615=IFCINDEXEDPOLYGONALFACE((101,69,43)); +#616=IFCINDEXEDPOLYGONALFACE((146,192,182)); +#617=IFCINDEXEDPOLYGONALFACE((52,77,5)); +#618=IFCINDEXEDPOLYGONALFACE((133,60,52)); +#619=IFCINDEXEDPOLYGONALFACE((28,243,213)); +#620=IFCINDEXEDPOLYGONALFACE((110,126,125)); +#621=IFCINDEXEDPOLYGONALFACE((140,188,176)); +#622=IFCINDEXEDPOLYGONALFACE((341,342,336,335)); +#623=IFCINDEXEDPOLYGONALFACE((82,131,61)); +#624=IFCINDEXEDPOLYGONALFACE((290,336,337,305)); +#625=IFCINDEXEDPOLYGONALFACE((109,51,116)); +#626=IFCINDEXEDPOLYGONALFACE((210,29,90)); +#627=IFCINDEXEDPOLYGONALFACE((45,30,21)); +#628=IFCINDEXEDPOLYGONALFACE((204,196,8)); +#629=IFCINDEXEDPOLYGONALFACE((229,238,237)); +#630=IFCINDEXEDPOLYGONALFACE((161,217,160)); +#631=IFCINDEXEDPOLYGONALFACE((305,264,290)); +#632=IFCINDEXEDPOLYGONALFACE((84,60,81)); +#633=IFCINDEXEDPOLYGONALFACE((185,190,184)); +#634=IFCINDEXEDPOLYGONALFACE((5,133,52)); +#635=IFCINDEXEDPOLYGONALFACE((189,187,117)); +#636=IFCINDEXEDPOLYGONALFACE((226,237,238)); +#637=IFCINDEXEDPOLYGONALFACE((23,277,197)); +#638=IFCINDEXEDPOLYGONALFACE((76,8,27)); +#639=IFCINDEXEDPOLYGONALFACE((294,274,295)); +#640=IFCINDEXEDPOLYGONALFACE((145,114,107)); +#641=IFCINDEXEDPOLYGONALFACE((188,44,10)); +#642=IFCINDEXEDPOLYGONALFACE((41,203,85)); +#643=IFCINDEXEDPOLYGONALFACE((13,43,86)); +#644=IFCINDEXEDPOLYGONALFACE((355,364,351,356)); +#645=IFCINDEXEDPOLYGONALFACE((234,125,177)); +#646=IFCINDEXEDPOLYGONALFACE((40,38,50)); +#647=IFCINDEXEDPOLYGONALFACE((272,85,20)); +#648=IFCINDEXEDPOLYGONALFACE((215,48,361)); +#649=IFCINDEXEDPOLYGONALFACE((39,241,301)); +#650=IFCINDEXEDPOLYGONALFACE((311,292,263)); +#651=IFCINDEXEDPOLYGONALFACE((69,86,43)); +#652=IFCINDEXEDPOLYGONALFACE((310,161,178)); +#653=IFCINDEXEDPOLYGONALFACE((202,169,78)); +#654=IFCINDEXEDPOLYGONALFACE((248,250,247)); +#655=IFCINDEXEDPOLYGONALFACE((296,138,360)); +#656=IFCINDEXEDPOLYGONALFACE((42,9,23)); +#657=IFCINDEXEDPOLYGONALFACE((203,206,85)); +#658=IFCINDEXEDPOLYGONALFACE((202,272,169)); +#659=IFCINDEXEDPOLYGONALFACE((342,344,337,336)); +#660=IFCINDEXEDPOLYGONALFACE((129,35,19)); +#661=IFCINDEXEDPOLYGONALFACE((2,162,191)); +#662=IFCINDEXEDPOLYGONALFACE((366,306,98)); +#663=IFCINDEXEDPOLYGONALFACE((361,363,356,354)); +#664=IFCINDEXEDPOLYGONALFACE((68,17,134)); +#665=IFCINDEXEDPOLYGONALFACE((54,173,201)); +#666=IFCINDEXEDPOLYGONALFACE((210,167,151)); +#667=IFCINDEXEDPOLYGONALFACE((156,171,97)); +#668=IFCINDEXEDPOLYGONALFACE((54,151,93)); +#669=IFCINDEXEDPOLYGONALFACE((59,8,196)); +#670=IFCINDEXEDPOLYGONALFACE((213,210,90)); +#671=IFCINDEXEDPOLYGONALFACE((54,371,373)); +#672=IFCINDEXEDPOLYGONALFACE((130,243,209)); +#673=IFCINDEXEDPOLYGONALFACE((359,214,282,280)); +#674=IFCINDEXEDPOLYGONALFACE((142,117,188)); +#675=IFCINDEXEDPOLYGONALFACE((28,367,368)); +#676=IFCINDEXEDPOLYGONALFACE((237,228,229)); +#677=IFCINDEXEDPOLYGONALFACE((362,105,99)); +#678=IFCINDEXEDPOLYGONALFACE((291,314,265)); +#679=IFCINDEXEDPOLYGONALFACE((45,70,18)); +#680=IFCINDEXEDPOLYGONALFACE((210,372,167)); +#681=IFCINDEXEDPOLYGONALFACE((62,63,176)); +#682=IFCINDEXEDPOLYGONALFACE((91,19,35)); +#683=IFCINDEXEDPOLYGONALFACE((206,203,211)); +#684=IFCINDEXEDPOLYGONALFACE((269,260,261)); +#685=IFCINDEXEDPOLYGONALFACE((53,35,129)); +#686=IFCINDEXEDPOLYGONALFACE((54,29,151)); +#687=IFCINDEXEDPOLYGONALFACE((130,368,370)); +#688=IFCINDEXEDPOLYGONALFACE((67,187,189)); +#689=IFCINDEXEDPOLYGONALFACE((371,25,124)); +#690=IFCINDEXEDPOLYGONALFACE((130,209,368)); +#691=IFCINDEXEDPOLYGONALFACE((243,130,370)); +#692=IFCINDEXEDPOLYGONALFACE((213,227,210)); +#693=IFCINDEXEDPOLYGONALFACE((227,372,210)); +#694=IFCINDEXEDPOLYGONALFACE((167,93,151)); +#695=IFCINDEXEDPOLYGONALFACE((372,227,25)); +#696=IFCINDEXEDPOLYGONALFACE((373,29,54)); +#697=IFCINDEXEDPOLYGONALFACE((213,369,227)); +#698=IFCINDEXEDPOLYGONALFACE((371,124,373)); +#699=IFCINDEXEDPOLYGONALFACE((341,348,350,342)); +#700=IFCINDEXEDPOLYGONALFACE((135,66,217)); +#701=IFCINDEXEDPOLYGONALFACE((65,371,33)); +#702=IFCINDEXEDPOLYGONALFACE((350,354,356,351)); +#703=IFCINDEXEDPOLYGONALFACE((333,330,178)); +#704=IFCINDEXEDPOLYGONALFACE((315,254,323)); +#705=IFCINDEXEDPOLYGONALFACE((127,12,30)); +#706=IFCINDEXEDPOLYGONALFACE((100,128,31)); +#707=IFCINDEXEDPOLYGONALFACE((319,5,77)); +#708=IFCINDEXEDPOLYGONALFACE((374,158,2)); +#709=IFCINDEXEDPOLYGONALFACE((375,83,374)); +#710=IFCINDEXEDPOLYGONALFACE((314,274,311)); +#711=IFCINDEXEDPOLYGONALFACE((21,4,52)); +#712=IFCINDEXEDPOLYGONALFACE((288,144,180)); +#713=IFCINDEXEDPOLYGONALFACE((241,137,219)); +#714=IFCINDEXEDPOLYGONALFACE((60,76,45)); +#715=IFCINDEXEDPOLYGONALFACE((10,62,176)); +#716=IFCINDEXEDPOLYGONALFACE((220,147,106)); +#717=IFCINDEXEDPOLYGONALFACE((90,29,373)); +#718=IFCINDEXEDPOLYGONALFACE((70,148,199)); +#719=IFCINDEXEDPOLYGONALFACE((103,37,36)); +#720=IFCINDEXEDPOLYGONALFACE((71,197,306)); +#721=IFCINDEXEDPOLYGONALFACE((117,187,44)); +#722=IFCINDEXEDPOLYGONALFACE((62,44,56)); +#723=IFCINDEXEDPOLYGONALFACE((254,252,244)); +#724=IFCINDEXEDPOLYGONALFACE((59,196,159)); +#725=IFCINDEXEDPOLYGONALFACE((158,141,154)); +#726=IFCINDEXEDPOLYGONALFACE((300,301,241)); +#727=IFCINDEXEDPOLYGONALFACE((23,127,32)); +#728=IFCINDEXEDPOLYGONALFACE((309,303,304)); +#729=IFCINDEXEDPOLYGONALFACE((295,329,304)); +#730=IFCINDEXEDPOLYGONALFACE((369,367,25)); +#731=IFCINDEXEDPOLYGONALFACE((119,102,106)); +#732=IFCINDEXEDPOLYGONALFACE((232,269,318)); +#733=IFCINDEXEDPOLYGONALFACE((208,170,63)); +#734=IFCINDEXEDPOLYGONALFACE((239,97,171)); +#735=IFCINDEXEDPOLYGONALFACE((124,28,213)); +#736=IFCINDEXEDPOLYGONALFACE((268,155,75)); +#737=IFCINDEXEDPOLYGONALFACE((101,270,269)); +#738=IFCINDEXEDPOLYGONALFACE((277,9,7)); +#739=IFCINDEXEDPOLYGONALFACE((320,306,236)); +#740=IFCINDEXEDPOLYGONALFACE((222,193,236)); +#741=IFCINDEXEDPOLYGONALFACE((173,115,50)); +#742=IFCINDEXEDPOLYGONALFACE((299,313,267)); +#743=IFCINDEXEDPOLYGONALFACE((162,207,212)); +#744=IFCINDEXEDPOLYGONALFACE((98,306,197)); +#745=IFCINDEXEDPOLYGONALFACE((295,296,328)); +#746=IFCINDEXEDPOLYGONALFACE((84,81,128)); +#747=IFCINDEXEDPOLYGONALFACE((302,299,297)); +#748=IFCINDEXEDPOLYGONALFACE((212,115,173)); +#749=IFCINDEXEDPOLYGONALFACE((317,323,254)); +#750=IFCINDEXEDPOLYGONALFACE((211,205,204)); +#751=IFCINDEXEDPOLYGONALFACE((39,177,175)); +#752=IFCINDEXEDPOLYGONALFACE((334,263,292)); +#753=IFCINDEXEDPOLYGONALFACE((283,279,286)); +#754=IFCINDEXEDPOLYGONALFACE((129,38,16)); +#755=IFCINDEXEDPOLYGONALFACE((102,349,249)); +#756=IFCINDEXEDPOLYGONALFACE((197,71,12)); +#757=IFCINDEXEDPOLYGONALFACE((330,331,310)); +#758=IFCINDEXEDPOLYGONALFACE((300,308,310)); +#759=IFCINDEXEDPOLYGONALFACE((205,203,190)); +#760=IFCINDEXEDPOLYGONALFACE((133,1,2)); +#761=IFCINDEXEDPOLYGONALFACE((85,206,92)); +#762=IFCINDEXEDPOLYGONALFACE((360,234,39)); +#763=IFCINDEXEDPOLYGONALFACE((122,157,47)); +#764=IFCINDEXEDPOLYGONALFACE((281,280,282)); +#765=IFCINDEXEDPOLYGONALFACE((250,220,249)); +#766=IFCINDEXEDPOLYGONALFACE((58,55,214)); +#767=IFCINDEXEDPOLYGONALFACE((234,360,138)); +#768=IFCINDEXEDPOLYGONALFACE((141,172,298)); +#769=IFCINDEXEDPOLYGONALFACE((27,112,45)); +#770=IFCINDEXEDPOLYGONALFACE((146,182,181)); +#771=IFCINDEXEDPOLYGONALFACE((144,145,181)); +#772=IFCINDEXEDPOLYGONALFACE((195,194,185)); +#773=IFCINDEXEDPOLYGONALFACE((228,221,223)); +#774=IFCINDEXEDPOLYGONALFACE((49,215,358)); +#775=IFCINDEXEDPOLYGONALFACE((74,163,34)); +#776=IFCINDEXEDPOLYGONALFACE((221,72,218)); +#777=IFCINDEXEDPOLYGONALFACE((146,145,107)); +#778=IFCINDEXEDPOLYGONALFACE((194,195,204)); +#779=IFCINDEXEDPOLYGONALFACE((46,123,64)); +#780=IFCINDEXEDPOLYGONALFACE((366,98,86)); +#781=IFCINDEXEDPOLYGONALFACE((48,107,114)); +#782=IFCINDEXEDPOLYGONALFACE((198,104,95)); +#783=IFCINDEXEDPOLYGONALFACE((74,183,132)); +#784=IFCINDEXEDPOLYGONALFACE((21,30,12)); +#785=IFCINDEXEDPOLYGONALFACE((288,150,111)); +#786=IFCINDEXEDPOLYGONALFACE((75,155,225)); +#787=IFCINDEXEDPOLYGONALFACE((166,168,262)); +#788=IFCINDEXEDPOLYGONALFACE((223,119,230)); +#789=IFCINDEXEDPOLYGONALFACE((26,20,92)); +#790=IFCINDEXEDPOLYGONALFACE((219,235,88)); +#791=IFCINDEXEDPOLYGONALFACE((322,264,325)); +#792=IFCINDEXEDPOLYGONALFACE((257,224,220)); +#793=IFCINDEXEDPOLYGONALFACE((289,309,104)); +#794=IFCINDEXEDPOLYGONALFACE((228,146,108)); +#795=IFCINDEXEDPOLYGONALFACE((119,223,218)); +#796=IFCINDEXEDPOLYGONALFACE((367,28,124)); +#797=IFCINDEXEDPOLYGONALFACE((327,324,325)); +#798=IFCINDEXEDPOLYGONALFACE((40,50,115)); +#799=IFCINDEXEDPOLYGONALFACE((321,252,248)); +#800=IFCINDEXEDPOLYGONALFACE((13,86,98)); +#801=IFCINDEXEDPOLYGONALFACE((5,375,374)); +#802=IFCINDEXEDPOLYGONALFACE((135,217,87)); +#803=IFCINDEXEDPOLYGONALFACE((156,147,224)); +#804=IFCINDEXEDPOLYGONALFACE((163,74,63)); +#805=IFCINDEXEDPOLYGONALFACE((56,157,142)); +#806=IFCINDEXEDPOLYGONALFACE((88,190,203)); +#807=IFCINDEXEDPOLYGONALFACE((24,34,163)); +#808=IFCINDEXEDPOLYGONALFACE((14,202,78)); +#809=IFCINDEXEDPOLYGONALFACE((248,252,260)); +#810=IFCINDEXEDPOLYGONALFACE((78,169,26)); +#811=IFCINDEXEDPOLYGONALFACE((16,134,17)); +#812=IFCINDEXEDPOLYGONALFACE((161,160,164)); +#813=IFCINDEXEDPOLYGONALFACE((291,284,287)); +#814=IFCINDEXEDPOLYGONALFACE((127,30,18)); +#815=IFCINDEXEDPOLYGONALFACE((182,192,199)); +#816=IFCINDEXEDPOLYGONALFACE((319,77,71)); +#817=IFCINDEXEDPOLYGONALFACE((225,69,232)); +#818=IFCINDEXEDPOLYGONALFACE((302,303,309)); +#819=IFCINDEXEDPOLYGONALFACE((13,7,36)); +#820=IFCINDEXEDPOLYGONALFACE((308,22,87)); +#821=IFCINDEXEDPOLYGONALFACE((262,139,79)); +#822=IFCINDEXEDPOLYGONALFACE((131,24,73)); +#823=IFCINDEXEDPOLYGONALFACE((370,369,213)); +#824=IFCINDEXEDPOLYGONALFACE((92,206,100)); +#825=IFCINDEXEDPOLYGONALFACE((89,136,233)); +#826=IFCINDEXEDPOLYGONALFACE((332,316,165)); +#827=IFCINDEXEDPOLYGONALFACE((189,122,136)); +#828=IFCINDEXEDPOLYGONALFACE((326,316,332)); +#829=IFCINDEXEDPOLYGONALFACE((117,142,122)); +#830=IFCINDEXEDPOLYGONALFACE((132,134,16)); +#831=IFCINDEXEDPOLYGONALFACE((134,132,183)); +#832=IFCINDEXEDPOLYGONALFACE((239,238,230)); +#833=IFCINDEXEDPOLYGONALFACE((180,181,96)); +#834=IFCINDEXEDPOLYGONALFACE((99,105,113)); +#835=IFCINDEXEDPOLYGONALFACE((22,61,131)); +#836=IFCINDEXEDPOLYGONALFACE((321,247,249)); +#837=IFCINDEXEDPOLYGONALFACE((156,97,120)); +#838=IFCINDEXEDPOLYGONALFACE((148,96,181)); +#839=IFCINDEXEDPOLYGONALFACE((152,125,126)); +#840=IFCINDEXEDPOLYGONALFACE((240,36,37)); +#841=IFCINDEXEDPOLYGONALFACE((14,68,183)); +#842=IFCINDEXEDPOLYGONALFACE((293,296,295)); +#843=IFCINDEXEDPOLYGONALFACE((148,70,112)); +#844=IFCINDEXEDPOLYGONALFACE((313,299,325)); +#845=IFCINDEXEDPOLYGONALFACE((154,66,170)); +#846=IFCINDEXEDPOLYGONALFACE((226,6,123)); +#847=IFCINDEXEDPOLYGONALFACE((349,347,339)); +#848=IFCINDEXEDPOLYGONALFACE((318,315,324)); +#849=IFCINDEXEDPOLYGONALFACE((326,325,299)); +#850=IFCINDEXEDPOLYGONALFACE((112,27,59)); +#851=IFCINDEXEDPOLYGONALFACE((262,168,198)); +#852=IFCINDEXEDPOLYGONALFACE((272,202,51)); +#853=IFCINDEXEDPOLYGONALFACE((318,269,261)); +#854=IFCINDEXEDPOLYGONALFACE((167,65,57)); +#855=IFCINDEXEDPOLYGONALFACE((271,270,266)); +#856=IFCINDEXEDPOLYGONALFACE((218,72,246)); +#857=IFCINDEXEDPOLYGONALFACE((94,149,179)); +#858=IFCINDEXEDPOLYGONALFACE((40,62,153)); +#859=IFCINDEXEDPOLYGONALFACE((8,84,121)); +#860=IFCINDEXEDPOLYGONALFACE((32,18,64)); +#861=IFCINDEXEDPOLYGONALFACE((88,15,109)); +#862=IFCINDEXEDPOLYGONALFACE((133,31,128)); +#863=IFCINDEXEDPOLYGONALFACE((193,79,319)); +#864=IFCINDEXEDPOLYGONALFACE((370,368,367)); +#865=IFCINDEXEDPOLYGONALFACE((6,103,9)); +#866=IFCINDEXEDPOLYGONALFACE((214,55,186)); +#867=IFCINDEXEDPOLYGONALFACE((200,222,75)); +#868=IFCINDEXEDPOLYGONALFACE((375,319,79)); +#869=IFCINDEXEDPOLYGONALFACE((95,104,309)); +#870=IFCINDEXEDPOLYGONALFACE((221,108,49)); +#871=IFCINDEXEDPOLYGONALFACE((36,240,273)); +#872=IFCINDEXEDPOLYGONALFACE((69,225,155)); +#873=IFCINDEXEDPOLYGONALFACE((316,326,302)); +#874=IFCINDEXEDPOLYGONALFACE((297,294,304)); +#875=IFCINDEXEDPOLYGONALFACE((195,179,159)); +#876=IFCINDEXEDPOLYGONALFACE((110,281,186)); +#877=IFCINDEXEDPOLYGONALFACE((323,322,324)); +#878=IFCINDEXEDPOLYGONALFACE((172,141,83)); +#879=IFCINDEXEDPOLYGONALFACE((61,307,219)); +#880=IFCINDEXEDPOLYGONALFACE((283,284,291)); +#881=IFCINDEXEDPOLYGONALFACE((184,235,175)); +#882=IFCINDEXEDPOLYGONALFACE((349,102,246)); +#883=IFCINDEXEDPOLYGONALFACE((174,165,166)); +#884=IFCINDEXEDPOLYGONALFACE((48,105,363)); +#885=IFCINDEXEDPOLYGONALFACE((199,192,237)); +#886=IFCINDEXEDPOLYGONALFACE((164,172,242)); +#887=IFCINDEXEDPOLYGONALFACE((217,66,298)); +#888=IFCINDEXEDPOLYGONALFACE((193,222,200)); +#889=IFCINDEXEDPOLYGONALFACE((253,168,166)); +#890=IFCINDEXEDPOLYGONALFACE((202,14,116)); +#891=IFCINDEXEDPOLYGONALFACE((236,306,366)); +#892=IFCINDEXEDPOLYGONALFACE((170,66,73)); +#893=IFCINDEXEDPOLYGONALFACE((360,300,328)); +#894=IFCINDEXEDPOLYGONALFACE((143,285,110)); +#895=IFCINDEXEDPOLYGONALFACE((252,254,261)); +#896=IFCINDEXEDPOLYGONALFACE((131,109,116)); +#897=IFCINDEXEDPOLYGONALFACE((104,198,168)); +#898=IFCINDEXEDPOLYGONALFACE((126,58,99)); +#899=IFCINDEXEDPOLYGONALFACE((47,67,275)); +#900=IFCINDEXEDPOLYGONALFACE((230,119,120)); +#901=IFCINDEXEDPOLYGONALFACE((67,259,89)); +#902=IFCINDEXEDPOLYGONALFACE((257,256,271)); +#903=IFCINDEXEDPOLYGONALFACE((257,255,231)); +#904=IFCINDEXEDPOLYGONALFACE((316,289,253)); +#905=IFCINDEXEDPOLYGONALFACE((17,26,3)); +#906=IFCINDEXEDPOLYGONALFACE((273,240,171)); +#907=IFCINDEXEDPOLYGONALFACE((362,99,58)); +#908=IFCINDEXEDPOLYGONALFACE((48,49,108)); +#909=IFCINDEXEDPOLYGONALFACE((160,298,172)); +#910=IFCINDEXEDPOLYGONALFACE((190,88,235)); +#911=IFCINDEXEDPOLYGONALFACE((258,270,271)); +#912=IFCINDEXEDPOLYGONALFACE((155,268,366)); +#913=IFCINDEXEDPOLYGONALFACE((169,272,20)); +#914=IFCINDEXEDPOLYGONALFACE((312,332,174)); +#915=IFCINDEXEDPOLYGONALFACE((273,101,43)); +#916=IFCINDEXEDPOLYGONALFACE((264,322,317)); +#917=IFCINDEXEDPOLYGONALFACE((287,138,296)); +#918=IFCINDEXEDPOLYGONALFACE((159,179,149)); +#919=IFCINDEXEDPOLYGONALFACE((267,313,305)); +#920=IFCINDEXEDPOLYGONALFACE((126,111,150)); +#921=IFCINDEXEDPOLYGONALFACE((288,113,114)); +#922=IFCINDEXEDPOLYGONALFACE((266,270,101)); +#923=IFCINDEXEDPOLYGONALFACE((123,6,42)); +#924=IFCINDEXEDPOLYGONALFACE((255,266,171)); +#925=IFCINDEXEDPOLYGONALFACE((34,24,116)); +#926=IFCINDEXEDPOLYGONALFACE((91,35,3)); +#927=IFCINDEXEDPOLYGONALFACE((287,285,143)); +#928=IFCINDEXEDPOLYGONALFACE((77,4,12)); +#929=IFCINDEXEDPOLYGONALFACE((95,333,178)); +#930=IFCINDEXEDPOLYGONALFACE((285,279,280)); +#931=IFCINDEXEDPOLYGONALFACE((242,83,139)); +#932=IFCINDEXEDPOLYGONALFACE((332,312,318)); +#933=IFCINDEXEDPOLYGONALFACE((226,238,239)); +#934=IFCINDEXEDPOLYGONALFACE((175,235,219)); +#935=IFCINDEXEDPOLYGONALFACE((177,152,94)); +#936=IFCINDEXEDPOLYGONALFACE((103,6,226)); +#937=IFCINDEXEDPOLYGONALFACE((372,25,371)); +#938=IFCINDEXEDPOLYGONALFACE((101,232,69)); +#939=IFCINDEXEDPOLYGONALFACE((146,228,192)); +#940=IFCINDEXEDPOLYGONALFACE((52,4,77)); +#941=IFCINDEXEDPOLYGONALFACE((133,81,60)); +#942=IFCINDEXEDPOLYGONALFACE((28,209,243)); +#943=IFCINDEXEDPOLYGONALFACE((110,58,126)); +#944=IFCINDEXEDPOLYGONALFACE((140,142,188)); +#945=IFCINDEXEDPOLYGONALFACE((82,109,131)); +#946=IFCINDEXEDPOLYGONALFACE((109,15,51)); +#947=IFCINDEXEDPOLYGONALFACE((210,151,29)); +#948=IFCINDEXEDPOLYGONALFACE((45,18,30)); +#949=IFCINDEXEDPOLYGONALFACE((204,195,196)); +#950=IFCINDEXEDPOLYGONALFACE((229,230,238)); +#951=IFCINDEXEDPOLYGONALFACE((161,87,217)); +#952=IFCINDEXEDPOLYGONALFACE((305,313,264)); +#953=IFCINDEXEDPOLYGONALFACE((84,76,60)); +#954=IFCINDEXEDPOLYGONALFACE((185,194,190)); +#955=IFCINDEXEDPOLYGONALFACE((5,1,133)); +#956=IFCINDEXEDPOLYGONALFACE((226,46,237)); +#957=IFCINDEXEDPOLYGONALFACE((23,9,277)); +#958=IFCINDEXEDPOLYGONALFACE((76,84,8)); +#959=IFCINDEXEDPOLYGONALFACE((294,267,274)); +#960=IFCINDEXEDPOLYGONALFACE((145,144,114)); +#961=IFCINDEXEDPOLYGONALFACE((41,15,203)); +#962=IFCINDEXEDPOLYGONALFACE((13,11,43)); +#963=IFCINDEXEDPOLYGONALFACE((234,143,125)); +#964=IFCINDEXEDPOLYGONALFACE((40,16,38)); +#965=IFCINDEXEDPOLYGONALFACE((272,41,85)); +#966=IFCINDEXEDPOLYGONALFACE((215,49,48)); +#967=IFCINDEXEDPOLYGONALFACE((39,137,241)); +#968=IFCINDEXEDPOLYGONALFACE((311,274,292)); +#969=IFCINDEXEDPOLYGONALFACE((69,251,86)); +#970=IFCINDEXEDPOLYGONALFACE((310,87,161)); +#971=IFCINDEXEDPOLYGONALFACE((248,256,250)); +#972=IFCINDEXEDPOLYGONALFACE((68,78,17)); +#973=IFCINDEXEDPOLYGONALFACE((156,231,171)); +#974=IFCINDEXEDPOLYGONALFACE((59,27,8)); +#975=IFCINDEXEDPOLYGONALFACE((54,33,371)); +#976=IFCINDEXEDPOLYGONALFACE((237,192,228)); +#977=IFCINDEXEDPOLYGONALFACE((362,363,105)); +#978=IFCINDEXEDPOLYGONALFACE((291,293,314)); +#979=IFCINDEXEDPOLYGONALFACE((45,112,70)); +#980=IFCINDEXEDPOLYGONALFACE((62,40,63)); +#981=IFCINDEXEDPOLYGONALFACE((91,31,19)); +#982=IFCINDEXEDPOLYGONALFACE((269,270,260)); +#983=IFCINDEXEDPOLYGONALFACE((53,3,35)); +#984=IFCINDEXEDPOLYGONALFACE((67,47,187)); +#985=IFCINDEXEDPOLYGONALFACE((135,73,66)); +#986=IFCINDEXEDPOLYGONALFACE((333,329,330)); +#987=IFCINDEXEDPOLYGONALFACE((315,261,254)); +#988=IFCINDEXEDPOLYGONALFACE((127,23,12)); +#989=IFCINDEXEDPOLYGONALFACE((100,121,128)); +#990=IFCINDEXEDPOLYGONALFACE((319,375,5)); +#991=IFCINDEXEDPOLYGONALFACE((374,83,158)); +#992=IFCINDEXEDPOLYGONALFACE((375,139,83)); +#993=IFCINDEXEDPOLYGONALFACE((314,293,274)); +#994=IFCPOLYGONALFACESET(#280,$,(#281,#282,#283,#284,#285,#286,#287,#288,#289,#290,#291,#292,#293,#294,#295,#296,#297,#298,#299,#300,#301,#302,#303,#304,#305,#306,#307,#308,#309,#310,#311,#312,#313,#314,#315,#316,#317,#318,#319,#320,#321,#322,#323,#324,#325,#326,#327,#328,#329,#330,#331,#332,#333,#334,#335,#336,#337,#338,#339,#340,#341,#342,#343,#344,#345,#346,#347,#348,#349,#350,#351,#352,#353,#354,#355,#356,#357,#358,#359,#360,#361,#362,#363,#364,#365,#366,#367,#368,#369,#370,#371,#372,#373,#374,#375,#376,#377,#378,#379,#380,#381,#382,#383,#384,#385,#386,#387,#388,#389,#390,#391,#392,#393,#394,#395,#396,#397,#398,#399,#400,#401,#402,#403,#404,#405,#406,#407,#408,#409,#410,#411,#412,#413,#414,#415,#416,#417,#418,#419,#420,#421,#422,#423,#424,#425,#426,#427,#428,#429,#430,#431,#432,#433,#434,#435,#436,#437,#438,#439,#440,#441,#442,#443,#444,#445,#446,#447,#448,#449,#450,#451,#452,#453,#454,#455,#456,#457,#458,#459,#460,#461,#462,#463,#464,#465,#466,#467,#468,#469,#470,#471,#472,#473,#474,#475,#476,#477,#478,#479,#480,#481,#482,#483,#484,#485,#486,#487,#488,#489,#490,#491,#492,#493,#494,#495,#496,#497,#498,#499,#500,#501,#502,#503,#504,#505,#506,#507,#508,#509,#510,#511,#512,#513,#514,#515,#516,#517,#518,#519,#520,#521,#522,#523,#524,#525,#526,#527,#528,#529,#530,#531,#532,#533,#534,#535,#536,#537,#538,#539,#540,#541,#542,#543,#544,#545,#546,#547,#548,#549,#550,#551,#552,#553,#554,#555,#556,#557,#558,#559,#560,#561,#562,#563,#564,#565,#566,#567,#568,#569,#570,#571,#572,#573,#574,#575,#576,#577,#578,#579,#580,#581,#582,#583,#584,#585,#586,#587,#588,#589,#590,#591,#592,#593,#594,#595,#596,#597,#598,#599,#600,#601,#602,#603,#604,#605,#606,#607,#608,#609,#610,#611,#612,#613,#614,#615,#616,#617,#618,#619,#620,#621,#622,#623,#624,#625,#626,#627,#628,#629,#630,#631,#632,#633,#634,#635,#636,#637,#638,#639,#640,#641,#642,#643,#644,#645,#646,#647,#648,#649,#650,#651,#652,#653,#654,#655,#656,#657,#658,#659,#660,#661,#662,#663,#664,#665,#666,#667,#668,#669,#670,#671,#672,#673,#674,#675,#676,#677,#678,#679,#680,#681,#682,#683,#684,#685,#686,#687,#688,#689,#690,#691,#692,#693,#694,#695,#696,#697,#698,#699,#700,#701,#702,#703,#704,#705,#706,#707,#708,#709,#710,#711,#712,#713,#714,#715,#716,#717,#718,#719,#720,#721,#722,#723,#724,#725,#726,#727,#728,#729,#730,#731,#732,#733,#734,#735,#736,#737,#738,#739,#740,#741,#742,#743,#744,#745,#746,#747,#748,#749,#750,#751,#752,#753,#754,#755,#756,#757,#758,#759,#760,#761,#762,#763,#764,#765,#766,#767,#768,#769,#770,#771,#772,#773,#774,#775,#776,#777,#778,#779,#780,#781,#782,#783,#784,#785,#786,#787,#788,#789,#790,#791,#792,#793,#794,#795,#796,#797,#798,#799,#800,#801,#802,#803,#804,#805,#806,#807,#808,#809,#810,#811,#812,#813,#814,#815,#816,#817,#818,#819,#820,#821,#822,#823,#824,#825,#826,#827,#828,#829,#830,#831,#832,#833,#834,#835,#836,#837,#838,#839,#840,#841,#842,#843,#844,#845,#846,#847,#848,#849,#850,#851,#852,#853,#854,#855,#856,#857,#858,#859,#860,#861,#862,#863,#864,#865,#866,#867,#868,#869,#870,#871,#872,#873,#874,#875,#876,#877,#878,#879,#880,#881,#882,#883,#884,#885,#886,#887,#888,#889,#890,#891,#892,#893,#894,#895,#896,#897,#898,#899,#900,#901,#902,#903,#904,#905,#906,#907,#908,#909,#910,#911,#912,#913,#914,#915,#916,#917,#918,#919,#920,#921,#922,#923,#924,#925,#926,#927,#928,#929,#930,#931,#932,#933,#934,#935,#936,#937,#938,#939,#940,#941,#942,#943,#944,#945,#946,#947,#948,#949,#950,#951,#952,#953,#954,#955,#956,#957,#958,#959,#960,#961,#962,#963,#964,#965,#966,#967,#968,#969,#970,#971,#972,#973,#974,#975,#976,#977,#978,#979,#980,#981,#982,#983,#984,#985,#986,#987,#988,#989,#990,#991,#992,#993),$); +#995=IFCSHAPEREPRESENTATION(#144,'Body','Tessellation',(#994)); +#996=IFCREPRESENTATIONMAP(#279,#995); +#997=IFCCARTESIANPOINT((0.,0.,0.)); +#998=IFCDIRECTION((0.,0.,1.)); +#999=IFCDIRECTION((1.,0.,0.)); +#1000=IFCAXIS2PLACEMENT3D(#997,#998,#999); +#1001=IFCCARTESIANPOINTLIST2D(((-0.00187504291534424,-0.136098772287369),(-0.0447412729263306,-0.130966305732727),(-0.0755681991577148,-0.105624251067638),(0.0435214042663574,-0.123003117740154),(0.0776327848434448,-0.0989715680480003),(0.101917445659637,-0.0744422599673271),(0.128680348396301,-0.0638554915785789),(0.138488471508026,-0.0432419404387474),(0.134837985038757,-0.0135693177580833),(0.123972177505493,0.00519884377717972),(0.100000023841858,0.0200000032782555),(0.0768988728523254,0.0420413166284561),(0.0449999570846558,0.0689153224229813),(-0.00524431467056274,0.0854801684617996),(-0.0373027324676514,0.0895451977849007),(-0.074405312538147,0.0735662579536438),(-0.0977480411529541,0.0540151223540306),(-0.130220890045166,0.0479081235826015),(-0.189349979162216,0.0118629187345505),(-0.217635273933411,-0.0236888602375984),(-0.222012758255005,-0.0435851588845253),(-0.214284062385559,-0.0905132815241814),(-0.205768346786499,-0.106695257127285),(-0.187541648745537,-0.117346309125423),(-0.16057014465332,-0.11072414368391),(-0.148344993591309,-0.102713964879513),(-0.114447318017483,-0.103237792849541),(-0.129387378692627,-0.0837726220488548),(-0.112089991569519,-0.0523208752274513),(-0.160456106066704,0.03740194439888),(-0.16297847032547,0.0306398719549179),(-0.152914509177208,0.0576198659837246),(-0.148716494441032,0.0795774236321449),(-0.149392008781433,0.102066904306412),(-0.15144681930542,0.125798091292381),(-0.157580137252808,0.132616892457008),(-0.169090509414673,0.130419373512268),(-0.180844187736511,0.118465758860111),(-0.182052731513977,0.0906300097703934),(-0.183831930160522,0.0552833341062069),(-0.183684945106506,0.0396271869540215),(-0.192724362015724,-0.00467484071850777),(-0.14391028881073,0.00847188383340836),(-0.127020835876465,0.0233357548713684),(-0.0995742082595825,0.049370177090168),(-0.0685850381851196,0.0688069462776184),(-0.0296431183815002,0.0763391554355621),(-0.0267347097396851,0.07121342420578),(-0.0338107347488403,0.0583882182836533),(-0.0585765838623047,0.0190281048417091),(-0.103685975074768,-0.00794906169176102),(-0.130663156509399,-0.0145827829837799),(-0.0413289070129395,0.0605994611978531),(-0.0554808378219604,0.0468897596001625),(-0.0780355930328369,0.0367180481553078),(-0.0992635488510132,0.0185858532786369),(-0.136412382125854,0.00443390011787415),(0.11093932390213,-0.0415389761328697),(0.112531423568726,-0.0134119689464569),(-0.173348978161812,0.0203548446297646),(-0.16315957903862,0.0617493018507957),(-0.157428041100502,0.0974122136831284),(-0.165070101618767,0.119064696133137),(-0.161386370658875,0.000390071421861649))); +#1002=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((1,2)),IFCLINEINDEX((2,3))),$); +#1003=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((4,1))),$); +#1004=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((5,4))),$); +#1005=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((6,5))),$); +#1006=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((7,6))),$); +#1007=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((8,7))),$); +#1008=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((9,8))),$); +#1009=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((10,9))),$); +#1010=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((11,10))),$); +#1011=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((12,11))),$); +#1012=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((13,12))),$); +#1013=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((14,13))),$); +#1014=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((15,14))),$); +#1015=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((16,15))),$); +#1016=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((17,16))),$); +#1017=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((18,17))),$); +#1018=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((20,19))),$); +#1019=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((21,20))),$); +#1020=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((22,21))),$); +#1021=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((23,22))),$); +#1022=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((24,23))),$); +#1023=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((25,24))),$); +#1024=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((26,25))),$); +#1025=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((27,26))),$); +#1026=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((3,27))),$); +#1027=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((26,28)),IFCLINEINDEX((28,29))),$); +#1028=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((30,18))),$); +#1029=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((31,32)),IFCLINEINDEX((32,33)),IFCLINEINDEX((33,34)),IFCLINEINDEX((34,35)),IFCLINEINDEX((35,36)),IFCLINEINDEX((36,37)),IFCLINEINDEX((37,38)),IFCLINEINDEX((38,39)),IFCLINEINDEX((39,40)),IFCLINEINDEX((40,41)),IFCLINEINDEX((41,42))),$); +#1030=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((43,44)),IFCLINEINDEX((44,45)),IFCLINEINDEX((45,46)),IFCLINEINDEX((46,47)),IFCLINEINDEX((47,48)),IFCLINEINDEX((48,49)),IFCLINEINDEX((49,50)),IFCLINEINDEX((50,51)),IFCLINEINDEX((51,52))),$); +#1031=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((53,54)),IFCLINEINDEX((54,55)),IFCLINEINDEX((55,56)),IFCLINEINDEX((56,57))),$); +#1032=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((6,58)),IFCLINEINDEX((58,59))),$); +#1033=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((11,59))),$); +#1034=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((60,61)),IFCLINEINDEX((61,62)),IFCLINEINDEX((62,63))),$); +#1035=IFCINDEXEDPOLYCURVE(#1001,(IFCLINEINDEX((64,31))),$); +#1036=IFCGEOMETRICCURVESET((#1002,#1003,#1004,#1005,#1006,#1007,#1008,#1009,#1010,#1011,#1012,#1013,#1014,#1015,#1016,#1017,#1018,#1019,#1020,#1021,#1022,#1023,#1024,#1025,#1026,#1027,#1028,#1029,#1030,#1031,#1032,#1033,#1034,#1035)); +#1037=IFCSHAPEREPRESENTATION(#180,'Annotation','Annotation2D',(#1036)); +#1038=IFCREPRESENTATIONMAP(#1000,#1037); +#1039=IFCFURNITURETYPE('1wgo6Pw4jDJO4F1GA9Qlmx',$,'BUNNY',$,$,$,(#996,#1038),$,$,$,$); +#1040=IFCWALL('2taFT8FI98u9wB7ZQYn3Hb',$,'Wall',$,$,#1391,#1093,$,$); +#1063=IFCRELCONTAINEDINSPATIALSTRUCTURE('37_XU5HaPFm8is_ifGF2Ay',$,$,$,(#1040,#1097,#1209,#1320),#36); +#1069=IFCRELDEFINESBYTYPE('28WpanUAzAXgCygv0JSKRi',$,$,$,(#1040),#65); +#1070=IFCMATERIALLAYERSETUSAGE(#67,.AXIS2.,.POSITIVE.,0.,$); +#1071=IFCRELASSOCIATESMATERIAL('1dzknAI$X4MPvu5JYshjXP',$,$,$,(#1040),#1070); +#1077=IFCCARTESIANPOINT((-0.0500000007450581,-0.5)); +#1078=IFCCARTESIANPOINT((0.0500000007450581,-0.5)); +#1079=IFCCARTESIANPOINT((0.0500000007450581,0.5)); +#1080=IFCCARTESIANPOINT((-0.0500000007450581,0.5)); +#1081=IFCPOLYLINE((#1077,#1078,#1079,#1080,#1077)); +#1082=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#1081); +#1083=IFCCARTESIANPOINT((0.5,0.0500000007450581,0.)); +#1084=IFCDIRECTION((-0.,0.,-1.)); +#1085=IFCDIRECTION((0.,1.,0.)); +#1086=IFCAXIS2PLACEMENT3D(#1083,#1084,#1085); +#1087=IFCDIRECTION((0.,0.,-1.)); +#1088=IFCEXTRUDEDAREASOLID(#1082,#1086,#1087,3.); +#1089=IFCSHAPEREPRESENTATION(#15,'Body','SweptSolid',(#1088)); +#1090=IFCCARTESIANPOINT((0.,0.,0.)); +#1091=IFCBOUNDINGBOX(#1090,1.,0.100000001490116,3.); +#1092=IFCSHAPEREPRESENTATION(#16,'Box','BoundingBox',(#1091)); +#1093=IFCPRODUCTDEFINITIONSHAPE($,$,(#1092,#1089)); +#1094=IFCPROPERTYSET('2OolYgUET1QxL8YBlptxmW',$,'EPset_Parametric',$,(#1096)); +#1095=IFCRELDEFINESBYPROPERTIES('2ce6qLM5170f8Bo1TBTnqg',$,$,$,(#1040),#1094); +#1096=IFCPROPERTYSINGLEVALUE('Engine',$,IFCLABEL('BlenderBIM.DumbLayer2'),$); +#1097=IFCWALL('1Mni3S3xH64PNigmfNvLk9',$,'Wall',$,$,#1396,#1149,$,$); +#1125=IFCRELDEFINESBYTYPE('1OqJ01wDf5EwM8vG$$bsZy',$,$,$,(#1097),#69); +#1126=IFCMATERIALLAYERSETUSAGE(#71,.AXIS2.,.POSITIVE.,0.,$); +#1127=IFCRELASSOCIATESMATERIAL('0WK9RuHhz7d8azSiojExaF',$,$,$,(#1097),#1126); +#1133=IFCCARTESIANPOINT((-0.100000001490116,-0.5)); +#1134=IFCCARTESIANPOINT((0.100000001490116,-0.5)); +#1135=IFCCARTESIANPOINT((0.100000001490116,0.5)); +#1136=IFCCARTESIANPOINT((-0.100000001490116,0.5)); +#1137=IFCPOLYLINE((#1133,#1134,#1135,#1136,#1133)); +#1138=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#1137); +#1139=IFCCARTESIANPOINT((0.5,0.100000001490116,0.)); +#1140=IFCDIRECTION((-0.,0.,-1.)); +#1141=IFCDIRECTION((0.,1.,0.)); +#1142=IFCAXIS2PLACEMENT3D(#1139,#1140,#1141); +#1143=IFCDIRECTION((0.,0.,-1.)); +#1144=IFCEXTRUDEDAREASOLID(#1138,#1142,#1143,3.); +#1145=IFCSHAPEREPRESENTATION(#15,'Body','SweptSolid',(#1144)); +#1146=IFCCARTESIANPOINT((0.,0.,0.)); +#1147=IFCBOUNDINGBOX(#1146,1.,0.200000002980232,3.); +#1148=IFCSHAPEREPRESENTATION(#16,'Box','BoundingBox',(#1147)); +#1149=IFCPRODUCTDEFINITIONSHAPE($,$,(#1148,#1145)); +#1150=IFCPROPERTYSET('0K11R24J19Cx_hdD6WusnC',$,'EPset_Parametric',$,(#1152)); +#1151=IFCRELDEFINESBYPROPERTIES('3Yq2$zzAr4KBmKhRC7YFaI',$,$,$,(#1097),#1150); +#1152=IFCPROPERTYSINGLEVALUE('Engine',$,IFCLABEL('BlenderBIM.DumbLayer2'),$); +#1181=IFCRELDEFINESBYTYPE('1cmUGuxI53XegDXo3Zf3on',$,$,$,(#1209),#73); +#1182=IFCMATERIALLAYERSETUSAGE(#75,.AXIS2.,.POSITIVE.,0.,$); +#1183=IFCRELASSOCIATESMATERIAL('3oQCo6QfrA8fylYnI3GErB',$,$,$,(),#1182); +#1184=IFCCARTESIANPOINT((0.,0.,0.)); +#1185=IFCDIRECTION((0.,0.,1.)); +#1186=IFCDIRECTION((-4.37113882867379E-08,-1.,0.)); +#1187=IFCAXIS2PLACEMENT3D(#1184,#1185,#1186); +#1188=IFCLOCALPLACEMENT(#59,#1187); +#1206=IFCPROPERTYSET('31PiTB5a93iRFeINb_asGF',$,'EPset_Parametric',$,(#1208)); +#1207=IFCRELDEFINESBYPROPERTIES('10onauetbDhPmBGMhGg9v8',$,$,$,(),#1206); +#1208=IFCPROPERTYSINGLEVALUE('Engine',$,IFCLABEL('BlenderBIM.DumbLayer2'),$); +#1209=IFCWALL('02tYuLp513DAdZe5xmWnyB',$,'Wall',$,$,#1401,#1260,$,$); +#1237=IFCMATERIALLAYERSETUSAGE(#75,.AXIS2.,.POSITIVE.,0.,$); +#1238=IFCRELASSOCIATESMATERIAL('1Jq2Vaax1DGPU2f6UvJpU9',$,$,$,(#1209),#1237); +#1244=IFCCARTESIANPOINT((-0.150000005960464,-0.5)); +#1245=IFCCARTESIANPOINT((0.150000005960464,-0.5)); +#1246=IFCCARTESIANPOINT((0.150000005960464,0.5)); +#1247=IFCCARTESIANPOINT((-0.150000005960464,0.5)); +#1248=IFCPOLYLINE((#1244,#1245,#1246,#1247,#1244)); +#1249=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#1248); +#1250=IFCCARTESIANPOINT((0.5,0.150000005960464,0.)); +#1251=IFCDIRECTION((-0.,0.,-1.)); +#1252=IFCDIRECTION((0.,1.,0.)); +#1253=IFCAXIS2PLACEMENT3D(#1250,#1251,#1252); +#1254=IFCDIRECTION((0.,0.,-1.)); +#1255=IFCEXTRUDEDAREASOLID(#1249,#1253,#1254,3.); +#1256=IFCSHAPEREPRESENTATION(#15,'Body','SweptSolid',(#1255)); +#1257=IFCCARTESIANPOINT((0.,0.,0.)); +#1258=IFCBOUNDINGBOX(#1257,1.,0.300000011920929,3.); +#1259=IFCSHAPEREPRESENTATION(#16,'Box','BoundingBox',(#1258)); +#1260=IFCPRODUCTDEFINITIONSHAPE($,$,(#1259,#1256)); +#1261=IFCPROPERTYSET('1HdsBGoBD4T8ed1BcWabON',$,'EPset_Parametric',$,(#1263)); +#1262=IFCRELDEFINESBYPROPERTIES('3AmU96TWfEqQ$JZrb7haDc',$,$,$,(#1209),#1261); +#1263=IFCPROPERTYSINGLEVALUE('Engine',$,IFCLABEL('BlenderBIM.DumbLayer2'),$); +#1292=IFCRELDEFINESBYTYPE('0mKcnBcKT1NhqXg1aObpVc',$,$,$,(#1320),#60); +#1293=IFCMATERIALLAYERSETUSAGE(#63,.AXIS2.,.POSITIVE.,0.,$); +#1294=IFCRELASSOCIATESMATERIAL('31XGlylTP428EA6oyOdIV3',$,$,$,(),#1293); +#1295=IFCCARTESIANPOINT((0.,0.,0.)); +#1296=IFCDIRECTION((0.,0.,1.)); +#1297=IFCDIRECTION((-4.37113882867379E-08,-1.,0.)); +#1298=IFCAXIS2PLACEMENT3D(#1295,#1296,#1297); +#1299=IFCLOCALPLACEMENT(#59,#1298); +#1317=IFCPROPERTYSET('35ROBiifHBuAYI0rSjGBz8',$,'EPset_Parametric',$,(#1319)); +#1318=IFCRELDEFINESBYPROPERTIES('1QzPOyJuj9n8$dx42u_Akl',$,$,$,(),#1317); +#1319=IFCPROPERTYSINGLEVALUE('Engine',$,IFCLABEL('BlenderBIM.DumbLayer2'),$); +#1320=IFCWALL('10en2G1Qr3VRRJtdWJyi9i',$,'Wall',$,$,#1406,#1371,$,$); +#1348=IFCMATERIALLAYERSETUSAGE(#63,.AXIS2.,.POSITIVE.,0.,$); +#1349=IFCRELASSOCIATESMATERIAL('0itMS9BjjC0gRvo_dLt4CP',$,$,$,(#1320),#1348); +#1355=IFCCARTESIANPOINT((-0.025000000372529,-0.5)); +#1356=IFCCARTESIANPOINT((0.025000000372529,-0.5)); +#1357=IFCCARTESIANPOINT((0.025000000372529,0.5)); +#1358=IFCCARTESIANPOINT((-0.025000000372529,0.5)); +#1359=IFCPOLYLINE((#1355,#1356,#1357,#1358,#1355)); +#1360=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#1359); +#1361=IFCCARTESIANPOINT((0.5,0.025000000372529,0.)); +#1362=IFCDIRECTION((-0.,0.,-1.)); +#1363=IFCDIRECTION((0.,1.,0.)); +#1364=IFCAXIS2PLACEMENT3D(#1361,#1362,#1363); +#1365=IFCDIRECTION((0.,0.,-1.)); +#1366=IFCEXTRUDEDAREASOLID(#1360,#1364,#1365,3.); +#1367=IFCSHAPEREPRESENTATION(#15,'Body','SweptSolid',(#1366)); +#1368=IFCCARTESIANPOINT((0.,0.,0.)); +#1369=IFCBOUNDINGBOX(#1368,1.,0.0500000007450581,3.); +#1370=IFCSHAPEREPRESENTATION(#16,'Box','BoundingBox',(#1369)); +#1371=IFCPRODUCTDEFINITIONSHAPE($,$,(#1370,#1367)); +#1372=IFCPROPERTYSET('3aSmRF3lj1HB7CzwkfpLHR',$,'EPset_Parametric',$,(#1374)); +#1373=IFCRELDEFINESBYPROPERTIES('00cwnr2zH3Y9DwG4JOQhpQ',$,$,$,(#1320),#1372); +#1374=IFCPROPERTYSINGLEVALUE('Engine',$,IFCLABEL('BlenderBIM.DumbLayer2'),$); +#1375=IFCPROPERTYSET('0nq8ZwgiL4xwhe2b6ogeB0',$,'Pset_WallCommon',$,(#1377,#1378)); +#1376=IFCPROPERTYENUMERATION('Status',(IFCLABEL('NEW'),IFCLABEL('EXISTING'),IFCLABEL('DEMOLISH'),IFCLABEL('TEMPORARY'),IFCLABEL('OTHER'),IFCLABEL('NOTKNOWN'),IFCLABEL('UNSET')),$); +#1377=IFCPROPERTYENUMERATEDVALUE('Status',$,(),#1376); +#1378=IFCPROPERTYSINGLEVALUE('FireRating',$,IFCLABEL('-/-/-'),$); +#1379=IFCPROPERTYSET('0GdKE7Ziz73fLRqly5PKrZ',$,'Pset_WallCommon',$,(#1381,#1382)); +#1380=IFCPROPERTYENUMERATION('Status',(IFCLABEL('NEW'),IFCLABEL('EXISTING'),IFCLABEL('DEMOLISH'),IFCLABEL('TEMPORARY'),IFCLABEL('OTHER'),IFCLABEL('NOTKNOWN'),IFCLABEL('UNSET')),$); +#1381=IFCPROPERTYENUMERATEDVALUE('Status',$,(),#1380); +#1382=IFCPROPERTYSINGLEVALUE('FireRating',$,IFCLABEL('120/120/120'),$); +#1383=IFCPROPERTYSET('3tW8$f9eH6S9PdmdcSATht',$,'Pset_WallCommon',$,(#1385,#1386)); +#1384=IFCPROPERTYENUMERATION('Status',(IFCLABEL('NEW'),IFCLABEL('EXISTING'),IFCLABEL('DEMOLISH'),IFCLABEL('TEMPORARY'),IFCLABEL('OTHER'),IFCLABEL('NOTKNOWN'),IFCLABEL('UNSET')),$); +#1385=IFCPROPERTYENUMERATEDVALUE('Status',$,(),#1384); +#1386=IFCPROPERTYSINGLEVALUE('FireRating',$,IFCLABEL('FOOBAR'),$); +#1387=IFCCARTESIANPOINT((0.,1.,0.)); +#1388=IFCDIRECTION((0.,0.,1.)); +#1389=IFCDIRECTION((1.,0.,0.)); +#1390=IFCAXIS2PLACEMENT3D(#1387,#1388,#1389); +#1391=IFCLOCALPLACEMENT(#59,#1390); +#1392=IFCCARTESIANPOINT((0.,2.,0.)); +#1393=IFCDIRECTION((0.,0.,1.)); +#1394=IFCDIRECTION((1.,0.,0.)); +#1395=IFCAXIS2PLACEMENT3D(#1392,#1393,#1394); +#1396=IFCLOCALPLACEMENT(#59,#1395); +#1397=IFCCARTESIANPOINT((0.,3.,0.)); +#1398=IFCDIRECTION((0.,0.,1.)); +#1399=IFCDIRECTION((1.,0.,0.)); +#1400=IFCAXIS2PLACEMENT3D(#1397,#1398,#1399); +#1401=IFCLOCALPLACEMENT(#59,#1400); +#1402=IFCCARTESIANPOINT((0.,0.,0.)); +#1403=IFCDIRECTION((0.,0.,1.)); +#1404=IFCDIRECTION((1.,0.,0.)); +#1405=IFCAXIS2PLACEMENT3D(#1402,#1403,#1404); +#1406=IFCLOCALPLACEMENT(#59,#1405); +#1407=IFCSURFACESTYLESHADING(#1408,0.); +#1408=IFCCOLOURRGB($,0.0429765619337559,0.0429765619337559,0.0429765619337559); +#1409=IFCSURFACESTYLESHADING(#1410,0.); +#1410=IFCCOLOURRGB($,0.0429765619337559,0.0429765619337559,0.0429765619337559); +#1411=IFCSURFACESTYLESHADING(#1412,0.799999997019768); +#1412=IFCCOLOURRGB($,0.800000011920929,1.,1.); +#1413=IFCSURFACESTYLESHADING(#1414,0.); +#1414=IFCCOLOURRGB($,0.184475064277649,0.184475019574165,0.184475019574165); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/material-facet.md b/Documentation/material-facet.md new file mode 100644 index 0000000..ccb1d6a --- /dev/null +++ b/Documentation/material-facet.md @@ -0,0 +1,35 @@ +# Material facet + +Elements (e.g. walls, doors, windows, etc) in IFC and element types (e.g. wall types, door types, window types, etc) may have a **Material** associated with it. These **Materials** are typically specified as construction materials, as opposed to chemical **Materials**. For example, concrete of two different grades are considered two separate **Materials**. + +In the simplest case, an element may have a single **Material**. For example, a chair may be made from a "wood" material. The **Material Facet** lets you filter by elements having this **Material**. + +An element may also have multiple **Materials** in three possible scenarios: + + - **Layered materials**: an element (e.g. a wall or slab) is parametrically defined in terms of material layers with a thickness (e.g. stud layer, insulation layer, and gypsum layer). Each layer may have a different **Material**. + - **Profiled materials**: an element (e.g. a column or beam) is parametrically defined in terms of a profile (e.g. C-profile, Z-profile, or I-profile) extruded along a path. Composite columns and beams may have multiple profiles from different **Materials**. + - **Constituent materials**: an element (e.g. a window, or slab) where portions of the element are made out of different **Materials** (e.g. the window glazing and the window frame) or mixed (e.g. a concrete slab may be composed of a percentage of cement, aggregate, etc) + +![Material Facet](material-facet.png) + +The **Material Facet** lets you filter elements where one of their **Materials** matches your specified **Material**. + +Many disciplines, such as costing, scheduling, sustainability analysis, or construction trade packages depend on correct **Material** association. The **Material Facet** is especially useful for domain specific information **Specifications**. + +## Parameters + +Parameter | Required | Restrictions Allowed | Allowed Values | Meaning +--- | --- | --- | --- | --- +**Value** | ❌ | ✔️ | Any material name or material category. The material name is typically specific to the project or local convention. The material category is recommended to be one of 'concrete', 'steel', 'aluminium', 'block', 'brick', 'stone', 'wood', 'glass', 'gypsum', 'plastic', or 'earth'. | The element must be made out of a **Material** with the specified name or category. If there are multiple **Materials**, then any **Material**, **Layer**, **Profile** or **Constituent** with that name or category will also satisfy the requirement. + +If no parameters are specified, then it means that any **Material** should be present, regardless of name or category. + +## Examples + +Applicabiity Intention | Requirement Intention | Facet Definition +--- | --- | --- +Any entity with a material | The entity must have a material | No parameters +All entities made from wood | The entity must be made out of wood | Value="wood" +All entities made from brick | The entity must be made out of brick | Value="brick" +All entities made from either concrete or steel | The entity (e.g. foundation piles) must be made of either concrete or steel | Value=["concrete", "steel"] +Any entities with a material named with a code starting with "CON" followed by 2 digits, like CON01, CON02, etc | The entity shall have a material with the naming scheme of "CON" followed by two digits, such as CON01, CON02, etc. | Value="CON[0-9]{2}" diff --git a/Documentation/material-facet.png b/Documentation/material-facet.png new file mode 100644 index 0000000..9aac0fc Binary files /dev/null and b/Documentation/material-facet.png differ diff --git a/Documentation/restrictions.md b/Documentation/restrictions.md new file mode 100644 index 0000000..51f73d9 --- /dev/null +++ b/Documentation/restrictions.md @@ -0,0 +1,63 @@ +# Complex restrictions + +When specifying a **Facet Parameter**, you may either specify a **Simple Value** or a **Complex Restriction**. A **Simple Value** may be text, a number, or a boolean (TRUE / FALSE). In contrast, a **Complex Restriction** may represent pick lists of valid values, naming schemes and conventions, numeric ranges, or more. A restriction may be specified in six different ways: + + - Enumeration + - Pattern + - Bounds + - Length + - Total digits + - Fraction digits + +## Enumeration + +An **Enumeration** restriction means that the value must be one of a list of allowed values. For example, you might want to specify that a material may be either "concrete" or "steel". + +Numbers may also be specified as a list. For example, you may specify that a concrete strength grade may be either "25", "30", "35, or "40". If the user has the value of "30", then that will comply with your **Enumeration**. However, if they choose "31", then it does not. + +Booleans may also be specified, such as "TRUE" or "FALSE". However, it is generally meaningless to specify a boolean as an enumeration because the nature of a boolean implies that the user always has to choose either "TRUE" or "FALSE". + +Note that even if you specify a list of allowed values, the user can still only choose one value from that list. + +## Pattern + +A **Pattern** restriction represents a naming convention or naming scheme. For example, if you want to specify that door types must be named using the convention DT01, DT02, DT03, etc, you can create a pattern defining that the letters "DT" should be first, followed by two numbers. + +Computers have a special way of defining patterns of text called **Regex**. It uses special symbols to tell the computer to expect numbers, letters, or any character. You may already be familiar with computer patterns using the "`*`" character as a wildcard. For example, you might say that the pattern "`DT*`" can be satisfied by the values "`DTA`", "`DTB`", or even "`DT01`". **Regex** is a bit more complex, but in exchange, you can be more specific about the rules in your pattern. Investing in learning **Regex** is highly recommended, given the importance of naming conventions in the AEC industry. + +Here are some common examples you can use: + +Pattern | Description | Example values that meet the pattern criteria | Example values that fail the pattern +--- | --- | --- | --- +`DT01` | When only letters and numbers are used with no symbols, then the pattern is equivalent to an exact match | "`DT01`" | Anything other than "`DT01`" will fail. +`DT_ABC-01` | Apart from letters and numbers, the "`_`" and "`-`" symbols have no special meaning, so this pattern is also equivalent to an exact match. | "`DT_ABC-01`" | Anything other than "`DT_ABC-01`" will fail. +`DT.` | The "`.`" symbol is a wildcard for any _single_ character. | "`DT1`", "`DT2`", "`DTA`", "`DTX`", "`DT+`", etc | "`DT01`" will not match because it has multiple characters after "`DT`". "`ADT1`" will not match because it starts with "`A`", not "`DT`". +`DT..` | When the "`.`" wildcard symbol is used multiple times, each time represents another _single_ character. | "`DT01`", "`DT02`", "`DTAB`", "`DTXY`", "`DT++`", etc | "`DT1`" will not match because it doesn't have two characters after "`DT`". +`DT.*` | When the "`*`" symbol is used after the "`.`" symbol to create "`.*`", it is a wildcard for any number of characters, not just a single character. So anything starting with `DT` will match, regardless of what characters are after it. | "`DT1`", "`DT02`", "`DTA`", "`DTXYZ`", "`DT+1-BC=123`", etc | Anything that doesn't start with "`DT`" will fail, such as "`ADT`", "`ABC-DT01`", etc. +`.*DT.*` | This time, the "`.*`" symbol combination is used both before and after the text "`DT`", meaning that any number of characters (including zero characters) can occur before or after the text "`DT`". | "`DT`" matches because it technically has zero characters before and after it (tricky, isn't it?). "`DT1`", "`ADT`", "`ADT1`", "`ABCDT01`", and "`ABC-DT-01`" all match. | Anything which doesn't contain "`DT`" will fail, such as "`ADIT`", "`TD`", or "`D-T`". +`DT[0-9]` | The "`[0-9]`" symbol combination means that any _single_ digit between 0 and 9 is allowed after the text "`DT`". | "`DT0`", "`DT1`", "`DT2`" up to "`DT9`" will all match | Anything which doesn't have _only_ a single digit after "`DT`" will fail, like "`DT`", "`DTA`", and "`DT123`" +`DT[0-9]*` | When the "`*`" symbol is used after the "`[0-9]`" symbol to create "`[0-9]*`", it means that you can have any number of digits (including zero!) after the text "`DT`". | "`DT`", "`DT1`", "`DT12`", "`DT012345`", etc will match | Any value which has a non-digit after "`DT`" will fail, like "`DTABC`", "`DT01A`", "DTA1B2", etc. +`DT[0-9]{2}` | This time, instead of adding the "`*`" symbol, we add the "`{2}`" symbol, which means that you want exactly two digits after "`DT`". | "`DT01`", "`DT24`", "`DT99`", etc all match | Anything other than 2 digits will fail, like "`DTA`", "`DT0`", or "`DT123`". + +**Regex** is a well-established methodology and can achieve very advanced pattern matching, but can take a while to fully learn its capabilities. As a result, only a few basic examples are shown here. Teaching the full capabilities is outside the scope of the IDS documentation. To make full use of it, there are plenty of online tutorials and resources: + + - [Beginners Regex tutorial](https://regexone.com/) + - [Online Regex testing website](https://regex101.com/) + +## Bounds + +A **Bounds** restriction allows you to specify that the value is a number and has to fall within a range of values. You can specify either a minimum, maximum, or both. You can also specify whether the minimum or maximum is inclusive (e.g. `>=` and `<=`) or exclusive (e.g. `>` and `<`). For example, you might specify that a value needs to be "more than 3" and "less than or equal to 10". + +## Length + +A **Length** restriction specifies the exact number of characters allowed in a value. For example, if you specify a length of 3, then values that are three characters long, like "`ABC`" or "`123`", will meet your requirement. Other values, like "`AB`" or "`ABC123`" will not meet your requirement. + +Note that it is also possible to achieve the same effect by specifying a **Pattern**, such as "`.{3}`", however, the **Length** restriction is simpler and quicker to compute. + +## Total digits + +A **Total Digits** restriction specifies the total number of digits allowed in a value, regardless of negative signs or decimal points. For example, a **Total Digits** of 3 mean that "`123`", "`-123`", and "`1.23`" all meet the requirement. + +## Fraction digits + +A **Fraction Digits** restriction specifies the precision of the digits allowed after the decimal point. For example, a value of 3 means that "`12`", "`12.3`", "`12.34`", and "`12.345`" are all allowed, since they have three or less digits after the decimal point. However, "`12.3456`" is not allowed. Note that "`12.3450`", "`12.34500`", etc are all equivalent to "`12.345`", so they are also allowed. However, "`12.3450001`" is not equivalent so it is not allowed. diff --git a/Documentation/specifications.md b/Documentation/specifications.md new file mode 100644 index 0000000..f3166cf --- /dev/null +++ b/Documentation/specifications.md @@ -0,0 +1,84 @@ +# How do specifications work? + +A **Specification** is designed to be easy for humans to understand. However, **Specifications** are also highly structured so that computer software may automatically and accurately check information requirements with no ambiguity. Every **Specification** has three parts: + + 1. **Description**: a description of why the **Specification** is important to your project and instructions of how to achieve it. This part is designed for humans to read and understand why information is being requested. + 2. **Applicability**: which type of objects the **Specification** applies to. There are many different types of objects in IFC models, such as walls, doors, and windows, but each **Specification** will only apply to certain objects. + 3. **Requirements**: what information is required for the objects specified in part 2, such as required properties or classifications. + +For example, the **Specification** of "_all walls must have a fire rating property_" is structured like so: + + 1. **Description**: wall fire ratings are critical for building code compliance + 2. **Applicability**: this specification applies to all wall objects + 3. **Requirements**: the aforementioned wall objects must have a fire rating property + +## How specifications can describe information + +**Applicability** and **Requirements** are described using **Facets**. A **Facet** describes information that a single entity (e.g. wall, door, etc) in your model may have. A **Facet** describes its information precisely using fixed **Facet Parameters** so that computers can understand exactly what information you are after. + +When a **Facet** is used in the **Applicability** section, the **Facet** describes information that an entity needs to have for the **Specification** to be **Applicable** to the entity. + +When a **Facet** is used in the **Requirements** section, the **Facet** describes information that an entity needs to have to comply with the **Specification**. + +![IDS Structure](ids-structure.png) + +There are five different **Facets** of information: + +Facet Type | Facet Parameters | Example applicability | Example requirement +--- | --- | --- | --- +**Entity** | **IFC Class** and **Predefined Type** | Applies to "IfcWall" with predefined type of "SHEAR" | Must be an "IfcWall" with a predefined type of "SHEAR" +**Attribute** | **Name** and **Value** | Applies to elements with the attribute "Name" having the value "W01" | Must have the attribute "Name" with the value "W01" +**Classification** | **System** and **Value** | Applies to elements classified under "Uniclass 2015" as "EF_25_10_25" | Must have a "Uniclass 2015" classification reference of "EF_25_10_25" +**Property** | **Property Set**, **Name**, and **Value** | Applies to elements with a property set of "Pset_WallCommon" with a "LoadBearing" property set to "TRUE" | Must have a "Pset_WallCommon" property set with a "LoadBearing" property set to "TRUE" +**Material** | **Value** | Applies to "concrete" elements | Must have a "concrete" material +**Parts** | **Entity** and **Relationship** | Applies to elements that are "contained in" an "IfcSpace" | Must be "contained in" an "IfcSpace" + +You can combine multiple **Facets** together in either the **Applicability** or **Requirements** section to describe a wide variety of **Specifications**. Some **Facets** may have optional **Facet Parameters**. For example, if you want to specify that a property should exist, but not the exact value, you may omit the value parameter of the **Property Facet**. + +You may also specify a list of valid values, or a range of numbers, or text pattern for some **Facet Parameters**. These are known as **Complex Restrictions**. For example, you would use a **Complex Restriction** to specify that a fire rating property must choose from either the value "0HR", "1HR", or "2HR" only. + +Here are a few examples to whet your appetite: + +Description | Applicability | Requirements +--- | --- | --- +External load bearing walls need to have a fire rating property for code compliance | | +Bedrooms should have a minimum area of 10m2 | | +All brick wall types must be classified and follow the approved naming convention | | + +To see the full capabilities of what each information each **Facet** can specify, see the sections below for more detail. + +## Required and optional specifications + +Each **Specification** may also specify whether it is **Required**, **Optional**, or **Prohibited**. Given the example **Specification** of "_all walls must have a fire rating property_" this is the interpretation: + +Type | Meaning | Example +--- | --- | --- +**Required** | The specified information _must_ be found in the IFC model | The model must have walls, and they must all have a fire rating property +**Optional** | If there are elements in the IFC model that are applicable to the **Specification**, then the **Requirements** must be satisfied | The model may or may not have walls. If they do, then they must have a fire rating property +**Prohibited** | The specified information _must not_ be found in the IFC model | The model should not have any walls that have a fire rating property. Walls without a fire rating property are allowed. Other non-wall elements with a fire rating property are also allowed. + +## IFC schema support + +Each **Specification** may specify the IFC schema(s) that it applies to. If a model does not match the schema(s), the **Specification** will not apply and will not be audited. The supported IFC schemas are: + + - IFC4X3 + - IFC4 + - IFC2X3 + +IDS assumes that the provided IFC model only contains valid data. If the model has syntax errors or IFC schema validation errors, then the model may not be able to be audited. It is the responsibility of the IFC authoring software to ensure that the produced IFCs are valid. + +## Advanced information requirements + +The first version of IDS targets basic information and relationships in IFC that are common to all disciplines. More advanced information requirements are currently out of scope for IDS. For example, geometry checks, checks that rely on calculated or dynamic values, checks that reference data outside the IFC model, or use domain specific IFC relationships are not possible. Here are some types of advanced requirements that you will need other tools to help audit: + + - There must be no clashes between structural beams and pipes + - All walls need to be 3m away from the site boundary + - The total area of all office spaces must be more than 300m2 + - The names of all door types must be unique + - All pumps need to have a nominated supplier and manufacturer + - All air handling units must have sensors assigned with trigger events + - Saturday and sunday must be a holiday in all work schedules + - All models shall load in under 3 minutes by major software vendors + - Associated drawings in the model must match the latest revisions in the CDE + - All rebar should be modeled as parametric swept disks + - The model must match the as-built state of construction diff --git a/Documentation/testcases-attribute.md b/Documentation/testcases-attribute.md new file mode 100644 index 0000000..5f69af5 --- /dev/null +++ b/Documentation/testcases-attribute.md @@ -0,0 +1,1012 @@ +# Attribute testcases + +These testcases are designed to help describe behaviour in edge cases and ambiguities. All valid IDS implementations must demonstrate identical behaviour to these test cases. + +## [FAIL] Invalid attribute names always fail + +~~~xml + + + Foobar + + +~~~ + +~~~lua +#1=IFCWALL('0wS_mjksj9$xYDTmr2m3AZ',$,$,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-invalid_attribute_names_always_fail.ids) - [Sample IFC: 1](testcases/fail-invalid_attribute_names_always_fail.ifc) + +## [PASS] Attributes with a string value should pass + +~~~xml + + + Name + + +~~~ + +~~~lua +#1=IFCWALL('3I4qOL0ab8_fP9MBGvLeIC',$,'Foobar',$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-attributes_with_a_string_value_should_pass.ids) - [Sample IFC: 1](testcases/pass-attributes_with_a_string_value_should_pass.ifc) + +## [FAIL] Attributes with null values always fail + +~~~xml + + + Name + + +~~~ + +~~~lua +#1=IFCWALL('3$UvNnnuP2GRvi9gizh$8r',$,$,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-attributes_with_null_values_always_fail.ids) - [Sample IFC: 1](testcases/fail-attributes_with_null_values_always_fail.ifc) + +## [FAIL] Attributes with empty strings always fail + +~~~xml + + + Name + + +~~~ + +~~~lua +#1=IFCWALL('2uH0ikuhn0p8H7VeUvNKzc',$,'',$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-attributes_with_empty_strings_always_fail.ids) - [Sample IFC: 1](testcases/fail-attributes_with_empty_strings_always_fail.ifc) + +## [PASS] Attributes with a zero number have meaning and should pass + +~~~xml + + + CountValue + + +~~~ + +~~~lua +#1=IFCQUANTITYCOUNT('Foobar',$,$,0.,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-attributes_with_a_zero_number_have_meaning_and_should_pass.ids) - [Sample IFC: 1](testcases/pass-attributes_with_a_zero_number_have_meaning_and_should_pass.ifc) + +## [PASS] Attributes with a boolean true should pass + +~~~xml + + + IsCritical + + +~~~ + +~~~lua +#1=IFCTASKTIME($,$,$,$,$,$,$,$,$,$,$,$,$,.T.,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-attributes_with_a_boolean_true_should_pass.ids) - [Sample IFC: 1](testcases/pass-attributes_with_a_boolean_true_should_pass.ifc) + +## [PASS] Attributes with a boolean false should pass + +~~~xml + + + IsCritical + + +~~~ + +~~~lua +#1=IFCTASKTIME($,$,$,$,$,$,$,$,$,$,$,$,$,.F.,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-attributes_with_a_boolean_false_should_pass.ids) - [Sample IFC: 1](testcases/pass-attributes_with_a_boolean_false_should_pass.ifc) + +## [FAIL] Attributes with an empty list always fail + +~~~xml + + + RelatingPriorities + + +~~~ + +~~~lua +#1=IFCWALL('2ZiHw1N2v8L9lnEFBqdGtC',$,$,$,$,$,$,$,$); +#2=IFCWALL('1ZhzAkRRr4Ouo4LjkDOmHK',$,$,$,$,$,$,$,$); +#3=IFCRELCONNECTSPATHELEMENTS('2Wui1$py55WvX5BykmDWCz',$,$,$,$,#1,#2,(),(),.ATSTART.,.ATEND.); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-attributes_with_an_empty_list_always_fail.ids) - [Sample IFC: 3](testcases/fail-attributes_with_an_empty_list_always_fail.ifc) + +## [FAIL] Attributes with an empty set always fail + +~~~xml + + + LayerStyles + + +~~~ + +~~~lua +#1=IFCCARTESIANPOINT((0.,0.,0.)); +#2=IFCPRESENTATIONLAYERWITHSTYLE('Foo',$,(#1),$,.T.,.F.,.F.,()); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-attributes_with_an_empty_set_always_fail.ids) - [Sample IFC: 2](testcases/fail-attributes_with_an_empty_set_always_fail.ifc) + +## [FAIL] Attributes with a logical unknown always fail + +~~~xml + + + LayerOn + + +~~~ + +~~~lua +#1=IFCCARTESIANPOINT((0.,0.,0.)); +#2=IFCPRESENTATIONLAYERWITHSTYLE('Foo',$,(#1),$,.U.,.F.,.F.,()); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-attributes_with_a_logical_unknown_always_fail.ids) - [Sample IFC: 2](testcases/fail-attributes_with_a_logical_unknown_always_fail.ifc) + +## [PASS] Attributes with a zero duration should pass + +~~~xml + + + ScheduleDuration + + +~~~ + +~~~lua +#1=IFCTASKTIME($,$,$,$,'P0D',$,$,$,$,$,$,$,$,$,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-attributes_with_a_zero_duration_should_pass.ids) - [Sample IFC: 1](testcases/pass-attributes_with_a_zero_duration_should_pass.ifc) + +## [PASS] Attributes referencing an object should pass + +~~~xml + + + TaskTime + + +~~~ + +~~~lua +#1=IFCTASKTIME($,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$); +#2=IFCTASK('00d1dXChr3j9_KEFWuoBWP',$,$,$,$,$,$,$,$,.T.,$,#1,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-attributes_referencing_an_object_should_pass.ids) - [Sample IFC: 2](testcases/pass-attributes_referencing_an_object_should_pass.ifc) + +## [PASS] Attributes with a select referencing an object should pass + +~~~xml + + + DiffuseColour + + +~~~ + +~~~lua +#1=IFCCOLOURRGB($,1.,1.,1.); +#2=IFCCOLOURRGB($,1.,1.,1.); +#3=IFCSURFACESTYLERENDERING(#1,$,#2,$,$,$,$,$,.FLAT.); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-attributes_with_a_select_referencing_an_object_should_pass.ids) - [Sample IFC: 3](testcases/pass-attributes_with_a_select_referencing_an_object_should_pass.ifc) + +## [PASS] Attributes with a select referencing a primitive should pass + +~~~xml + + + DiffuseColour + + +~~~ + +~~~lua +#1=IFCCOLOURRGB($,1.,1.,1.); +#2=IFCSURFACESTYLERENDERING(#1,$,IFCNORMALISEDRATIOMEASURE(0.5),$,$,$,$,$,.FLAT.); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-attributes_with_a_select_referencing_a_primitive_should_pass.ids) - [Sample IFC: 2](testcases/pass-attributes_with_a_select_referencing_a_primitive_should_pass.ifc) + +## [FAIL] Inverse attributes cannot be checked and always fail + +~~~xml + + + EngagedIn + + +~~~ + +~~~lua +#1=IFCPERSON($,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCORGANIZATION($,'Foo',$,$,$); +#3=IFCPERSONANDORGANIZATION(#1,#2,$); +~~~ + +[Sample IDS](testcases/fail-inverse_attributes_cannot_be_checked_and_always_fail.ids) - [Sample IFC: 1](testcases/fail-inverse_attributes_cannot_be_checked_and_always_fail.ifc) + +## [FAIL] Derived attributes cannot be checked and always fail + +~~~xml + + + Dim + + +~~~ + +~~~lua +#1=IFCCARTESIANPOINT((0.,0.,0.)); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-derived_attributes_cannot_be_checked_and_always_fail.ids) - [Sample IFC: 1](testcases/fail-derived_attributes_cannot_be_checked_and_always_fail.ifc) + +## [PASS] Attributes should check strings case sensitively 1/2 + +~~~xml + + + Name + + + Foobar + + +~~~ + +~~~lua +#1=IFCWALL('09XSeyWSD1gfgYNYWfWOT7',$,'Foobar',$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-attributes_should_check_strings_case_sensitively_1_2.ids) - [Sample IFC: 1](testcases/pass-attributes_should_check_strings_case_sensitively_1_2.ifc) + +## [FAIL] Attributes should check strings case sensitively 2/2 + +~~~xml + + + Name + + + Foobar + + +~~~ + +~~~lua +#1=IFCWALL('0ZCjZxCFH378tguwvO12cq',$,'foobar',$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-attributes_should_check_strings_case_sensitively_2_2.ids) - [Sample IFC: 1](testcases/fail-attributes_should_check_strings_case_sensitively_2_2.ifc) + +## [PASS] Non-ascii characters are treated without encoding + +~~~xml + + + Name + + + + + +~~~ + +~~~lua +#1=IFCWALL('3cAdSfdcrCBOkMB4iVIIvW',$,'\X2\266B\X0\',$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-non_ascii_characters_are_treated_without_encoding.ids) - [Sample IFC: 1](testcases/pass-non_ascii_characters_are_treated_without_encoding.ifc) + +## [FAIL] Value checks always fail for objects + +~~~xml + + + TaskTime + + + Foobar + + +~~~ + +~~~lua +#1=IFCTASKTIME($,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$); +#2=IFCTASK('1Lr183iRb6ERi3XZOe1UNs',$,$,$,$,$,$,$,$,.F.,$,#1,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-value_checks_always_fail_for_objects.ids) - [Sample IFC: 2](testcases/fail-value_checks_always_fail_for_objects.ifc) + +## [FAIL] Value checks always fail for selects + +~~~xml + + + DiffuseColour + + + Foobar + + +~~~ + +~~~lua +#1=IFCCOLOURRGB($,1.,1.,1.); +#2=IFCSURFACESTYLERENDERING(#1,$,IFCNORMALISEDRATIOMEASURE(0.5),$,$,$,$,$,.FLAT.); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-value_checks_always_fail_for_selects.ids) - [Sample IFC: 2](testcases/fail-value_checks_always_fail_for_selects.ifc) + +## [FAIL] Value checks always fail for lists + +~~~xml + + + Coordinates + + + Foobar + + +~~~ + +~~~lua +#1=IFCCARTESIANPOINT((0.,0.,0.)); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-value_checks_always_fail_for_lists.ids) - [Sample IFC: 1](testcases/fail-value_checks_always_fail_for_lists.ifc) + +## [PASS] GlobalIds are treated as strings and not expanded + +~~~xml + + + GlobalId + + + 1LS4c2G4HBSu6ckm_j_Zla + + +~~~ + +~~~lua +#1=IFCWALL('1LS4c2G4HBSu6ckm_j_Zla',$,$,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-globalids_are_treated_as_strings_and_not_expanded.ids) - [Sample IFC: 1](testcases/pass-globalids_are_treated_as_strings_and_not_expanded.ifc) + +## [FAIL] IDS does not handle string truncation such as for identifiers + +~~~xml + + + Identification + + + 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345_extra_characters + + +~~~ + +~~~lua +#1=IFCPERSON('123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345',$,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-ids_does_not_handle_string_truncation_such_as_for_identifiers.ids) - [Sample IFC: 1](testcases/fail-ids_does_not_handle_string_truncation_such_as_for_identifiers.ifc) + +## [PASS] Numeric values are checked using type casting 1/4 + +~~~xml + + + RefractionIndex + + + 42 + + +~~~ + +~~~lua +#1=IFCSURFACESTYLEREFRACTION(42.,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-numeric_values_are_checked_using_type_casting_1_4.ids) - [Sample IFC: 1](testcases/pass-numeric_values_are_checked_using_type_casting_1_4.ifc) + +## [PASS] Numeric values are checked using type casting 2/4 + +~~~xml + + + RefractionIndex + + + 42. + + +~~~ + +~~~lua +#1=IFCSURFACESTYLEREFRACTION(42.,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-numeric_values_are_checked_using_type_casting_2_4.ids) - [Sample IFC: 1](testcases/pass-numeric_values_are_checked_using_type_casting_2_4.ifc) + +## [PASS] Numeric values are checked using type casting 3/4 + +~~~xml + + + RefractionIndex + + + 42.0 + + +~~~ + +~~~lua +#1=IFCSURFACESTYLEREFRACTION(42.,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-numeric_values_are_checked_using_type_casting_3_4.ids) - [Sample IFC: 1](testcases/pass-numeric_values_are_checked_using_type_casting_3_4.ifc) + +## [FAIL] Numeric values are checked using type casting 4/4 + +~~~xml + + + RefractionIndex + + + 42 + + +~~~ + +~~~lua +#1=IFCSURFACESTYLEREFRACTION(42.3,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-numeric_values_are_checked_using_type_casting_4_4.ids) - [Sample IFC: 1](testcases/fail-numeric_values_are_checked_using_type_casting_4_4.ifc) + +## [FAIL] Only specifically formatted numbers are allowed 1/4 + +~~~xml + + + RefractionIndex + + + 42,3 + + +~~~ + +~~~lua +#1=IFCSURFACESTYLEREFRACTION(42.3,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-only_specifically_formatted_numbers_are_allowed_1_4.ids) - [Sample IFC: 1](testcases/fail-only_specifically_formatted_numbers_are_allowed_1_4.ifc) + +## [FAIL] Only specifically formatted numbers are allowed 2/4 + +~~~xml + + + RefractionIndex + + + 123,4.5 + + +~~~ + +~~~lua +#1=IFCSURFACESTYLEREFRACTION(1234.5,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-only_specifically_formatted_numbers_are_allowed_2_4.ids) - [Sample IFC: 1](testcases/fail-only_specifically_formatted_numbers_are_allowed_2_4.ifc) + +## [PASS] Only specifically formatted numbers are allowed 3/4 + +~~~xml + + + RefractionIndex + + + 1.2345e3 + + +~~~ + +~~~lua +#1=IFCSURFACESTYLEREFRACTION(1234.5,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-only_specifically_formatted_numbers_are_allowed_3_4.ids) - [Sample IFC: 1](testcases/pass-only_specifically_formatted_numbers_are_allowed_3_4.ifc) + +## [PASS] Only specifically formatted numbers are allowed 4/4 + +~~~xml + + + RefractionIndex + + + 1.2345E3 + + +~~~ + +~~~lua +#1=IFCSURFACESTYLEREFRACTION(1234.5,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-only_specifically_formatted_numbers_are_allowed_4_4.ids) - [Sample IFC: 1](testcases/pass-only_specifically_formatted_numbers_are_allowed_4_4.ifc) + +## [PASS] Integers follow the same rules as numbers + +~~~xml + + + NumberOfRisers + + + 42 + + +~~~ + +~~~lua +#1=IFCSTAIRFLIGHT('1y_N0u9FnFOgV7ozZePqWN',$,$,$,$,$,$,$,42,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-integers_follow_the_same_rules_as_numbers.ids) - [Sample IFC: 1](testcases/pass-integers_follow_the_same_rules_as_numbers.ifc) + +## [PASS] Integers follow the same rules as numbers 2/2 + +~~~xml + + + NumberOfRisers + + + 42.0 + + +~~~ + +~~~lua +#1=IFCSTAIRFLIGHT('00zuLIKi14ieT_PlwSgmMT',$,$,$,$,$,$,$,42,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-integers_follow_the_same_rules_as_numbers_2_2.ids) - [Sample IFC: 1](testcases/pass-integers_follow_the_same_rules_as_numbers_2_2.ifc) + +## [PASS] Integers are always floored when cast 1/2 + +~~~xml + + + NumberOfRisers + + + 42.3 + + +~~~ + +~~~lua +#1=IFCSTAIRFLIGHT('373vYC8I5D8wbbpPnPVdJB',$,$,$,$,$,$,$,42,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-integers_are_always_floored_when_cast_1_2.ids) - [Sample IFC: 1](testcases/pass-integers_are_always_floored_when_cast_1_2.ifc) + +## [PASS] Integers are always floored when cast 2/2 + +~~~xml + + + NumberOfRisers + + + 42.7 + + +~~~ + +~~~lua +#1=IFCSTAIRFLIGHT('3CoE6oIbP1e9OhdkQS7mMP',$,$,$,$,$,$,$,42,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-integers_are_always_floored_when_cast_2_2.ids) - [Sample IFC: 1](testcases/pass-integers_are_always_floored_when_cast_2_2.ifc) + +## [PASS] Integers are always floored when cast 2/2 + +~~~xml + + + NumberOfRisers + + + 42.7 + + +~~~ + +~~~lua +#1=IFCSTAIRFLIGHT('34KULR3$n6cwAB1EauoIii',$,$,$,$,$,$,$,42,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-integers_are_always_floored_when_cast_2_2.ids) - [Sample IFC: 1](testcases/pass-integers_are_always_floored_when_cast_2_2.ifc) + +## [FAIL] Booleans must be specified as uppercase strings 1/3 + +~~~xml + + + IsMilestone + + + TRUE + + +~~~ + +~~~lua +#1=IFCTASK('32q2Fff9fDS8yRQuEpEgTs',$,$,$,$,$,$,$,$,.F.,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-booleans_must_be_specified_as_uppercase_strings_1_3.ids) - [Sample IFC: 1](testcases/fail-booleans_must_be_specified_as_uppercase_strings_1_3.ifc) + +## [PASS] Booleans must be specified as uppercase strings 2/3 + +~~~xml + + + IsMilestone + + + FALSE + + +~~~ + +~~~lua +#1=IFCTASK('32q2Fff9fDS8yRQuEpEgTs',$,$,$,$,$,$,$,$,.F.,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-booleans_must_be_specified_as_uppercase_strings_2_3.ids) - [Sample IFC: 1](testcases/pass-booleans_must_be_specified_as_uppercase_strings_2_3.ifc) + +## [FAIL] Booleans must be specified as uppercase strings 2/3 + +~~~xml + + + IsMilestone + + + False + + +~~~ + +~~~lua +#1=IFCTASK('32q2Fff9fDS8yRQuEpEgTs',$,$,$,$,$,$,$,$,.F.,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-booleans_must_be_specified_as_uppercase_strings_2_3.ids) - [Sample IFC: 1](testcases/fail-booleans_must_be_specified_as_uppercase_strings_2_3.ifc) + +## [PASS] Dates are treated as strings 1/2 + +~~~xml + + + EditionDate + + + 2022-01-01 + + +~~~ + +~~~lua +#1=IFCCLASSIFICATION($,$,'2022-01-01','Name',$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-dates_are_treated_as_strings_1_2.ids) - [Sample IFC: 1](testcases/pass-dates_are_treated_as_strings_1_2.ifc) + +## [FAIL] Dates are treated as strings 1/2 + +~~~xml + + + EditionDate + + + 2022-01-01 + + +~~~ + +~~~lua +#1=IFCCLASSIFICATION($,$,'2022-01-01+00:00','Name',$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-dates_are_treated_as_strings_1_2.ids) - [Sample IFC: 1](testcases/fail-dates_are_treated_as_strings_1_2.ifc) + +## [FAIL] Durations are treated as strings 1/2 + +~~~xml + + + ScheduleDuration + + + PT16H + + +~~~ + +~~~lua +#1=IFCCLASSIFICATION($,$,'PT16H','Name',$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-durations_are_treated_as_strings_1_2.ids) - [Sample IFC: 1](testcases/fail-durations_are_treated_as_strings_1_2.ifc) + +## [FAIL] Durations are treated as strings 2/2 + +~~~xml + + + ScheduleDuration + + + PT16H + + +~~~ + +~~~lua +#1=IFCCLASSIFICATION($,$,'P2D','Name',$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-durations_are_treated_as_strings_2_2.ids) - [Sample IFC: 1](testcases/fail-durations_are_treated_as_strings_2_2.ifc) + +## [PASS] Name restrictions may be used 1/4 + +~~~xml + + + + + + + +~~~ + +~~~lua +#1=IFCMATERIALLAYER($,1.,$,$,$,$,$); +#2=IFCMATERIALLAYERSET((#1),'Foo',$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-name_restrictions_may_be_used_1_4.ids) - [Sample IFC: 2](testcases/pass-name_restrictions_may_be_used_1_4.ifc) + +## [PASS] Name restrictions may be used 2/4 + +~~~xml + + + + + + + +~~~ + +~~~lua +#1=IFCMATERIALCONSTITUENTSET('Foo',$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-name_restrictions_may_be_used_2_4.ids) - [Sample IFC: 1](testcases/pass-name_restrictions_may_be_used_2_4.ifc) + +## [FAIL] Name restrictions may be used 3/4 + +~~~xml + + + + + + + + +~~~ + +~~~lua +#1=IFCWALL('1_45dk5EDC1uDhBp4esDk1',$,'Foo',$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-name_restrictions_may_be_used_3_4.ids) - [Sample IFC: 1](testcases/fail-name_restrictions_may_be_used_3_4.ifc) + +## [PASS] Name restrictions may be used 4/4 + +~~~xml + + + + + + + + +~~~ + +~~~lua +#1=IFCWALL('20nTyphwfAbO$97tj6Himb',$,'Foo','Bar',$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-name_restrictions_may_be_used_4_4.ids) - [Sample IFC: 1](testcases/pass-name_restrictions_may_be_used_4_4.ifc) + +## [PASS] Value restrictions may be used 1/3 + +~~~xml + + + Name + + + + + + + + +~~~ + +~~~lua +#1=IFCWALL('3JAYRWK7XDc9aJuPa2vHoH',$,'Foo',$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-value_restrictions_may_be_used_1_3.ids) - [Sample IFC: 1](testcases/pass-value_restrictions_may_be_used_1_3.ifc) + +## [PASS] Value restrictions may be used 2/3 + +~~~xml + + + Name + + + + + + + + +~~~ + +~~~lua +#1=IFCWALL('1$ZyzRE5D1HhVh8ORnjJVe',$,'Bar',$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-value_restrictions_may_be_used_2_3.ids) - [Sample IFC: 1](testcases/pass-value_restrictions_may_be_used_2_3.ifc) + +## [FAIL] Value restrictions may be used 3/3 + +~~~xml + + + Name + + + + + + + + +~~~ + +~~~lua +#1=IFCWALL('3X4IAIg1b0ew5qfS4Nyd$9',$,'Foobar',$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-value_restrictions_may_be_used_3_3.ids) - [Sample IFC: 1](testcases/fail-value_restrictions_may_be_used_3_3.ifc) + +## [FAIL] Attributes are not inherited by the occurrence + +~~~xml + + + Name + + + + + + + + +~~~ + +~~~lua +#1=IFCWALL('0y2FiE76f9BQiJ5jrpELFo',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCWALLTYPE('35Sc4Leab3$vdTXdBsrq3i',$,$,'Foobar',$,$,$,$,$,.ELEMENTEDWALL.); +#3=IFCRELDEFINESBYTYPE('2w2JAq$NT8v9osGH38S_9p',$,$,$,(#1),#2); +~~~ + +[Sample IDS](testcases/fail-attributes_are_not_inherited_by_the_occurrence.ids) - [Sample IFC: 1](testcases/fail-attributes_are_not_inherited_by_the_occurrence.ifc) + +## [PASS] Typecast checking may also occur within enumeration restrictions + +~~~xml + + + RefractionIndex + + + + + + + +~~~ + +~~~lua +#1=IFCSURFACESTYLEREFRACTION(42.,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-typecast_checking_may_also_occur_within_enumeration_restrictions.ids) - [Sample IFC: 1](testcases/pass-typecast_checking_may_also_occur_within_enumeration_restrictions.ifc) + +## [PASS] Strict numeric checking may be done with a bounds restriction + +~~~xml + + + RefractionIndex + + + + + + + + +~~~ + +~~~lua +#1=IFCSURFACESTYLEREFRACTION(42.,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-strict_numeric_checking_may_be_done_with_a_bounds_restriction.ids) - [Sample IFC: 1](testcases/pass-strict_numeric_checking_may_be_done_with_a_bounds_restriction.ifc) + diff --git a/Documentation/testcases-classification.md b/Documentation/testcases-classification.md new file mode 100644 index 0000000..7fef3fa --- /dev/null +++ b/Documentation/testcases-classification.md @@ -0,0 +1,584 @@ +# Classification testcases + +These testcases are designed to help describe behaviour in edge cases and ambiguities. All valid IDS implementations must demonstrate identical behaviour to these test cases. + +## [FAIL] A classification facet with no data matches any classification 1/2 + +~~~xml + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); /* Testcase */ +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +~~~ + +[Sample IDS](testcases/fail-a_classification_facet_with_no_data_matches_any_classification_1_2.ids) - [Sample IFC: 4](testcases/fail-a_classification_facet_with_no_data_matches_any_classification_1_2.ifc) + +## [PASS] A classification facet with no data matches any classification 2/2 + +~~~xml + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); /* Testcase */ +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +~~~ + +[Sample IDS](testcases/pass-a_classification_facet_with_no_data_matches_any_classification_2_2.ids) - [Sample IFC: 5](testcases/pass-a_classification_facet_with_no_data_matches_any_classification_2_2.ifc) + +## [PASS] Values should match exactly if lightweight classifications are used + +~~~xml + + + 1 + + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); /* Testcase */ +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +~~~ + +[Sample IDS](testcases/pass-values_should_match_exactly_if_lightweight_classifications_are_used.ids) - [Sample IFC: 5](testcases/pass-values_should_match_exactly_if_lightweight_classifications_are_used.ifc) + +## [PASS] Values match subreferences if full classifications are used (e.g. EF_25_10 should match EF_25_10_25, EF_25_10_30, etc) + +~~~xml + + + 2 + + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); /* Testcase */ +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +~~~ + +[Sample IDS](testcases/pass-values_match_subreferences_if_full_classifications_are_used__e_g__ef_25_10_should_match_ef_25_10_25__ef_25_10_30__etc_.ids) - [Sample IFC: 11](testcases/pass-values_match_subreferences_if_full_classifications_are_used__e_g__ef_25_10_should_match_ef_25_10_25__ef_25_10_30__etc_.ifc) + +## [PASS] Systems should match exactly 1/5 + +~~~xml + + + Foobar + + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +~~~ + +[Sample IDS](testcases/pass-systems_should_match_exactly_1_5.ids) - [Sample IFC: 1](testcases/pass-systems_should_match_exactly_1_5.ifc) + +## [FAIL] Systems should match exactly 2/5 + +~~~xml + + + Foobar + + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); /* Testcase */ +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +~~~ + +[Sample IDS](testcases/fail-systems_should_match_exactly_2_5.ids) - [Sample IFC: 4](testcases/fail-systems_should_match_exactly_2_5.ifc) + +## [PASS] Systems should match exactly 3/5 + +~~~xml + + + Foobar + + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); /* Testcase */ +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +~~~ + +[Sample IDS](testcases/pass-systems_should_match_exactly_3_5.ids) - [Sample IFC: 5](testcases/pass-systems_should_match_exactly_3_5.ifc) + +## [PASS] Systems should match exactly 4/5 + +~~~xml + + + Foobar + + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); /* Testcase */ +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +~~~ + +[Sample IDS](testcases/pass-systems_should_match_exactly_4_5.ids) - [Sample IFC: 8](testcases/pass-systems_should_match_exactly_4_5.ifc) + +## [PASS] Systems should match exactly 5/5 + +~~~xml + + + Foobar + + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); /* Testcase */ +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +~~~ + +[Sample IDS](testcases/pass-systems_should_match_exactly_5_5.ids) - [Sample IFC: 11](testcases/pass-systems_should_match_exactly_5_5.ifc) + +## [PASS] Restrictions can be used for values 1/3 + +~~~xml + + + + + + + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); /* Testcase */ +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +~~~ + +[Sample IDS](testcases/pass-restrictions_can_be_used_for_values_1_3.ids) - [Sample IFC: 5](testcases/pass-restrictions_can_be_used_for_values_1_3.ifc) + +## [PASS] Restrictions can be used for values 2/3 + +~~~xml + + + + + + + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); /* Testcase */ +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +~~~ + +[Sample IDS](testcases/pass-restrictions_can_be_used_for_values_2_3.ids) - [Sample IFC: 8](testcases/pass-restrictions_can_be_used_for_values_2_3.ifc) + +## [FAIL] Restrictions can be used for values 3/3 + +~~~xml + + + + + + + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); /* Testcase */ +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +~~~ + +[Sample IDS](testcases/fail-restrictions_can_be_used_for_values_3_3.ids) - [Sample IFC: 11](testcases/fail-restrictions_can_be_used_for_values_3_3.ifc) + +## [FAIL] Restrictions can be used for systems 1/2 + +~~~xml + + + + + + + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); /* Testcase */ +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +~~~ + +[Sample IDS](testcases/fail-restrictions_can_be_used_for_systems_1_2.ids) - [Sample IFC: 4](testcases/fail-restrictions_can_be_used_for_systems_1_2.ifc) + +## [PASS] Restrictions can be used for systems 2/2 + +~~~xml + + + + + + + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); /* Testcase */ +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +~~~ + +[Sample IDS](testcases/pass-restrictions_can_be_used_for_systems_2_2.ids) - [Sample IFC: 5](testcases/pass-restrictions_can_be_used_for_systems_2_2.ifc) + +## [PASS] Both system and value must match (all, not any) if specified 1/2 + +~~~xml + + + 1 + + + Foobar + + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); /* Testcase */ +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +~~~ + +[Sample IDS](testcases/pass-both_system_and_value_must_match__all__not_any__if_specified_1_2.ids) - [Sample IFC: 5](testcases/pass-both_system_and_value_must_match__all__not_any__if_specified_1_2.ifc) + +## [FAIL] Both system and value must match (all, not any) if specified 2/2 + +~~~xml + + + 1 + + + Foobar + + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); /* Testcase */ +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +~~~ + +[Sample IDS](testcases/fail-both_system_and_value_must_match__all__not_any__if_specified_2_2.ids) - [Sample IFC: 8](testcases/fail-both_system_and_value_must_match__all__not_any__if_specified_2_2.ifc) + +## [PASS] Occurrences override the type classification per system 1/3 + +~~~xml + + + 11 + + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#16,#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11,#17),#12); +#16=IFCWALL('3gjhpoGY54T8ZY2eLSU6Mj',$,$,$,$,$,$,$,$); /* Testcase */ +#17=IFCWALLTYPE('3bLBNhMpT68fl5VCu2b9fk',$,$,$,$,$,$,$,$,.ELEMENTEDWALL.); +#18=IFCRELDEFINESBYTYPE('3iDG_WdzrCCeybZ$O3bcLV',$,$,$,(#16),#17); +#19=IFCCLASSIFICATION($,$,$,'Foobaz',$,$,$); +#20=IFCRELASSOCIATESCLASSIFICATION('3mVzrKNQHEsQ3do0idBpgM',$,$,$,(#1),#19); +#21=IFCCLASSIFICATIONREFERENCE($,'X',$,#19,$,$); +#22=IFCRELASSOCIATESCLASSIFICATION('1$lAD_gez30QRAVfOBq0DZ',$,$,$,(#17),#21); +~~~ + +[Sample IDS](testcases/pass-occurrences_override_the_type_classification_per_system_1_3.ids) - [Sample IFC: 16](testcases/pass-occurrences_override_the_type_classification_per_system_1_3.ifc) + +## [FAIL] Occurrences override the type classification per system 2/3 + +~~~xml + + + 22 + + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#16,#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11,#17),#12); +#16=IFCWALL('3gjhpoGY54T8ZY2eLSU6Mj',$,$,$,$,$,$,$,$); /* Testcase */ +#17=IFCWALLTYPE('3bLBNhMpT68fl5VCu2b9fk',$,$,$,$,$,$,$,$,.ELEMENTEDWALL.); +#18=IFCRELDEFINESBYTYPE('3iDG_WdzrCCeybZ$O3bcLV',$,$,$,(#16),#17); +#19=IFCCLASSIFICATION($,$,$,'Foobaz',$,$,$); +#20=IFCRELASSOCIATESCLASSIFICATION('3mVzrKNQHEsQ3do0idBpgM',$,$,$,(#1),#19); +#21=IFCCLASSIFICATIONREFERENCE($,'X',$,#19,$,$); +#22=IFCRELASSOCIATESCLASSIFICATION('1$lAD_gez30QRAVfOBq0DZ',$,$,$,(#17),#21); +~~~ + +[Sample IDS](testcases/fail-occurrences_override_the_type_classification_per_system_2_3.ids) - [Sample IFC: 16](testcases/fail-occurrences_override_the_type_classification_per_system_2_3.ifc) + +## [PASS] Occurrences override the type classification per system 3/3 + +~~~xml + + + X + + +~~~ + +~~~lua +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#16,#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11,#17),#12); +#16=IFCWALL('3gjhpoGY54T8ZY2eLSU6Mj',$,$,$,$,$,$,$,$); /* Testcase */ +#17=IFCWALLTYPE('3bLBNhMpT68fl5VCu2b9fk',$,$,$,$,$,$,$,$,.ELEMENTEDWALL.); +#18=IFCRELDEFINESBYTYPE('3iDG_WdzrCCeybZ$O3bcLV',$,$,$,(#16),#17); +#19=IFCCLASSIFICATION($,$,$,'Foobaz',$,$,$); +#20=IFCRELASSOCIATESCLASSIFICATION('3mVzrKNQHEsQ3do0idBpgM',$,$,$,(#1),#19); +#21=IFCCLASSIFICATIONREFERENCE($,'X',$,#19,$,$); +#22=IFCRELASSOCIATESCLASSIFICATION('1$lAD_gez30QRAVfOBq0DZ',$,$,$,(#17),#21); +~~~ + +[Sample IDS](testcases/pass-occurrences_override_the_type_classification_per_system_3_3.ids) - [Sample IFC: 16](testcases/pass-occurrences_override_the_type_classification_per_system_3_3.ifc) + diff --git a/Documentation/testcases-entity.md b/Documentation/testcases-entity.md new file mode 100644 index 0000000..b697746 --- /dev/null +++ b/Documentation/testcases-entity.md @@ -0,0 +1,469 @@ +# Entity testcases + +These testcases are designed to help describe behaviour in edge cases and ambiguities. All valid IDS implementations must demonstrate identical behaviour to these test cases. + +## [FAIL] Invalid entities always fail + +~~~xml + + + IFCRABBIT + + +~~~ + +~~~lua +#1=IFCWALL('0bziUpHHb538fov9u7Lsl9',$,$,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-invalid_entities_always_fail.ids) - [Sample IFC: 1](testcases/fail-invalid_entities_always_fail.ifc) + +## [PASS] A matching entity should pass + +~~~xml + + + IFCWALL + + +~~~ + +~~~lua +#1=IFCWALL('1yTM9eiGX5jx7gpHqwcmKe',$,$,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-a_matching_entity_should_pass.ids) - [Sample IFC: 1](testcases/pass-a_matching_entity_should_pass.ifc) + +## [PASS] An matching entity should pass regardless of predefined type + +~~~xml + + + IFCWALL + + +~~~ + +~~~lua +#1=IFCWALL('0DPnCjnmD6_AfI6sLoNhus',$,$,$,$,$,$,$,.SOLIDWALL.); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-an_matching_entity_should_pass_regardless_of_predefined_type.ids) - [Sample IFC: 1](testcases/pass-an_matching_entity_should_pass_regardless_of_predefined_type.ifc) + +## [FAIL] An entity not matching the specified class should fail + +~~~xml + + + IFCWALL + + +~~~ + +~~~lua +#1=IFCSLAB('0lyDsfhm15IfI0WHEUDFhp',$,$,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-an_entity_not_matching_the_specified_class_should_fail.ids) - [Sample IFC: 1](testcases/fail-an_entity_not_matching_the_specified_class_should_fail.ifc) + +## [FAIL] Subclasses are not considered as matching + +~~~xml + + + IFCWALL + + +~~~ + +~~~lua +#1=IFCWALLSTANDARDCASE('1lg8oDVpf0KuarRewjGUIv',$,$,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-subclasses_are_not_considered_as_matching.ids) - [Sample IFC: 1](testcases/fail-subclasses_are_not_considered_as_matching.ifc) + +## [FAIL] Entities must be specified as uppercase strings + +~~~xml + + + IfcWall + + +~~~ + +~~~lua +#1=IFCWALL('0gnz5aO8rBXOI8Da3mwJ9Z',$,$,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-entities_must_be_specified_as_uppercase_strings.ids) - [Sample IFC: 1](testcases/fail-entities_must_be_specified_as_uppercase_strings.ifc) + +## [PASS] A matching predefined type should pass + +~~~xml + + + IFCWALL + + + SOLIDWALL + + +~~~ + +~~~lua +#1=IFCWALL('3QxiEep1970RjLzhHenAlw',$,$,$,$,$,$,$,.SOLIDWALL.); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-a_matching_predefined_type_should_pass.ids) - [Sample IFC: 1](testcases/pass-a_matching_predefined_type_should_pass.ifc) + +## [FAIL] A null predefined type should always fail a specified predefined types + +~~~xml + + + IFCWALL + + + SOLIDWALL + + +~~~ + +~~~lua +#1=IFCWALL('3hX7Q2CMrA89UgAc0HAauJ',$,$,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-a_null_predefined_type_should_always_fail_a_specified_predefined_types.ids) - [Sample IFC: 1](testcases/fail-a_null_predefined_type_should_always_fail_a_specified_predefined_types.ifc) + +## [FAIL] An entity not matching a specified predefined type will fail + +~~~xml + + + IFCWALL + + + SOLIDWALL + + +~~~ + +~~~lua +#1=IFCWALL('3lMFFm9kP03PH$35Barisc',$,$,$,$,$,$,$,.PARTITIONING.); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-an_entity_not_matching_a_specified_predefined_type_will_fail.ids) - [Sample IFC: 1](testcases/fail-an_entity_not_matching_a_specified_predefined_type_will_fail.ifc) + +## [FAIL] A predefined type from an enumeration must be uppercase + +~~~xml + + + IFCWALL + + + solidwall + + +~~~ + +~~~lua +#1=IFCWALL('2lFXfmA6z508OXyTOybtpc',$,$,$,$,$,$,$,.SOLIDWALL.); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-a_predefined_type_from_an_enumeration_must_be_uppercase.ids) - [Sample IFC: 1](testcases/fail-a_predefined_type_from_an_enumeration_must_be_uppercase.ifc) + +## [PASS] A predefined type may specify a user-defined object type + +~~~xml + + + IFCWALL + + + WALDO + + +~~~ + +~~~lua +#1=IFCWALL('1IayCfZI12fvRCC4G1j36c',$,$,$,'WALDO',$,$,$,.USERDEFINED.); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-a_predefined_type_may_specify_a_user_defined_object_type.ids) - [Sample IFC: 1](testcases/pass-a_predefined_type_may_specify_a_user_defined_object_type.ifc) + +## [FAIL] User-defined types are checked case sensitively + +~~~xml + + + IFCWALL + + + WALDO + + +~~~ + +~~~lua +#1=IFCWALL('2ecfUPMe1BN87v6P0rBzjT',$,$,$,'waldo',$,$,$,.USERDEFINED.); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-user_defined_types_are_checked_case_sensitively.ids) - [Sample IFC: 1](testcases/fail-user_defined_types_are_checked_case_sensitively.ifc) + +## [PASS] A predefined type may specify a user-defined element type + +~~~xml + + + IFCWALLTYPE + + + WALDO + + +~~~ + +~~~lua +#1=IFCWALLTYPE('3FSPLBZF93nAHg4xE3mSNS',$,$,$,$,$,$,$,'WALDO',.USERDEFINED.); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-a_predefined_type_may_specify_a_user_defined_element_type.ids) - [Sample IFC: 1](testcases/pass-a_predefined_type_may_specify_a_user_defined_element_type.ifc) + +## [PASS] A predefined type may specify a user-defined process type + +~~~xml + + + IFCTASKTYPE + + + TASKY + + +~~~ + +~~~lua +#1=IFCTASKTYPE('180B8D4KbFXfFN35aUwF0v',$,$,$,$,$,$,$,'TASKY',.USERDEFINED.,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-a_predefined_type_may_specify_a_user_defined_process_type.ids) - [Sample IFC: 1](testcases/pass-a_predefined_type_may_specify_a_user_defined_process_type.ifc) + +## [FAIL] A predefined type must always specify a meaningful type, not USERDEFINED itself + +~~~xml + + + IFCWALL + + + USERDEFINED + + +~~~ + +~~~lua +#1=IFCWALL('2emAGFrs5DGu$vYROns4EL',$,$,$,'WALDO',$,$,$,.USERDEFINED.); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-a_predefined_type_must_always_specify_a_meaningful_type__not_userdefined_itself.ids) - [Sample IFC: 1](testcases/fail-a_predefined_type_must_always_specify_a_meaningful_type__not_userdefined_itself.ifc) + +## [PASS] Inherited predefined types should pass + +~~~xml + + + IFCWALL + + + X + + +~~~ + +~~~lua +#1=IFCWALL('3uBNXcbZfEER4V5ISZHxa4',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCWALLTYPE('1b4wJS_5XEuOEm$Fy$d05j',$,$,$,$,$,$,$,'X',.USERDEFINED.); +#3=IFCRELDEFINESBYTYPE('2PevMQbNn6IQrnTn6mr9mY',$,$,$,(#1),#2); +~~~ + +[Sample IDS](testcases/pass-inherited_predefined_types_should_pass.ids) - [Sample IFC: 1](testcases/pass-inherited_predefined_types_should_pass.ifc) + +## [PASS] Overridden predefined types should pass + +~~~xml + + + IFCWALL + + + X + + +~~~ + +~~~lua +#1=IFCWALL('1OMDXrLg52tvgkWQWnN9Kk',$,$,$,'X',$,$,$,.USERDEFINED.); /* Testcase */ +#2=IFCWALLTYPE('24kVNldTr5fvFVXxP6ljxr',$,$,$,$,$,$,$,$,.NOTDEFINED.); +#3=IFCRELDEFINESBYTYPE('3nCzJtVmj68Op7z5jlRk8h',$,$,$,(#1),#2); +~~~ + +[Sample IDS](testcases/pass-overridden_predefined_types_should_pass.ids) - [Sample IFC: 1](testcases/pass-overridden_predefined_types_should_pass.ifc) + +## [PASS] Entities can be specified as an enumeration 1/3 + +~~~xml + + + + + + + + +~~~ + +~~~lua +#1=IFCWALL('1Qay_22En1le9QrVmHaBQl',$,$,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-entities_can_be_specified_as_an_enumeration_1_3.ids) - [Sample IFC: 1](testcases/pass-entities_can_be_specified_as_an_enumeration_1_3.ifc) + +## [PASS] Entities can be specified as an enumeration 2/3 + +~~~xml + + + + + + + + +~~~ + +~~~lua +#1=IFCSLAB('2lzg5zcdb8DvONp3SyU6uf',$,$,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-entities_can_be_specified_as_an_enumeration_2_3.ids) - [Sample IFC: 1](testcases/pass-entities_can_be_specified_as_an_enumeration_2_3.ifc) + +## [FAIL] Entities can be specified as an enumeration 3/3 + +~~~xml + + + + + + + + +~~~ + +~~~lua +#1=IFCBEAM('3VC5ta4az6afdtXVldU1Ur',$,$,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-entities_can_be_specified_as_an_enumeration_3_3.ids) - [Sample IFC: 1](testcases/fail-entities_can_be_specified_as_an_enumeration_3_3.ifc) + +## [FAIL] Entities can be specified as a XSD regex pattern 1/2 + +~~~xml + + + + + + + +~~~ + +~~~lua +#1=IFCWALL('1mRO0SerX5Yh1Fyt53ZEG$',$,$,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-entities_can_be_specified_as_a_xsd_regex_pattern_1_2.ids) - [Sample IFC: 1](testcases/fail-entities_can_be_specified_as_a_xsd_regex_pattern_1_2.ifc) + +## [PASS] Entities can be specified as a XSD regex pattern 2/2 + +~~~xml + + + + + + + +~~~ + +~~~lua +#1=IFCWALLTYPE('1os_WLhsPCnxUxc$pshDKq',$,$,$,$,$,$,$,$,.ELEMENTEDWALL.); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-entities_can_be_specified_as_a_xsd_regex_pattern_2_2.ids) - [Sample IFC: 1](testcases/pass-entities_can_be_specified_as_a_xsd_regex_pattern_2_2.ifc) + +## [PASS] Restrictions an be specified for the predefined type 1/3 + +~~~xml + + + IFCWALL + + + + + + + +~~~ + +~~~lua +#1=IFCWALL('1z1B8SO$LAovq6YP4X_x9n',$,$,$,'FOOBAR',$,$,$,.USERDEFINED.); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-restrictions_an_be_specified_for_the_predefined_type_1_3.ids) - [Sample IFC: 1](testcases/pass-restrictions_an_be_specified_for_the_predefined_type_1_3.ifc) + +## [PASS] Restrictions an be specified for the predefined type 2/3 + +~~~xml + + + IFCWALL + + + + + + + +~~~ + +~~~lua +#1=IFCWALL('3vCKrTy4b71P$m1jP1z6Vv',$,$,$,'FOOBAZ',$,$,$,.USERDEFINED.); /* Testcase */ +~~~ + +[Sample IDS](testcases/pass-restrictions_an_be_specified_for_the_predefined_type_2_3.ids) - [Sample IFC: 1](testcases/pass-restrictions_an_be_specified_for_the_predefined_type_2_3.ifc) + +## [FAIL] Restrictions an be specified for the predefined type 3/3 + +~~~xml + + + IFCWALL + + + + + + + +~~~ + +~~~lua +#1=IFCWALL('0hsNJQacT3iwFeJmHBH_XL',$,$,$,'BAZFOO',$,$,$,.USERDEFINED.); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-restrictions_an_be_specified_for_the_predefined_type_3_3.ids) - [Sample IFC: 1](testcases/fail-restrictions_an_be_specified_for_the_predefined_type_3_3.ifc) + diff --git a/Documentation/testcases-material.md b/Documentation/testcases-material.md new file mode 100644 index 0000000..db994b4 --- /dev/null +++ b/Documentation/testcases-material.md @@ -0,0 +1,447 @@ +# Material testcases + +These testcases are designed to help describe behaviour in edge cases and ambiguities. All valid IDS implementations must demonstrate identical behaviour to these test cases. + +## [FAIL] Elements without a material always fail + +~~~xml + +~~~ + +~~~lua +#1=IFCWALL('3b4N11kzL6dQYj15tcJ4Ck',$,$,$,$,$,$,$,$); /* Testcase */ +~~~ + +[Sample IDS](testcases/fail-elements_without_a_material_always_fail.ids) - [Sample IFC: 1](testcases/fail-elements_without_a_material_always_fail.ifc) + +## [PASS] Elements with any material will pass an empty material facet + +~~~xml + +~~~ + +~~~lua +#1=IFCWALL('3b4N11kzL6dQYj15tcJ4Ck',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIAL('Unnamed',$,$); +#3=IFCRELASSOCIATESMATERIAL('3LAP7vmC1FyRerfvSIsiOH',$,$,$,(#1),#2); +~~~ + +[Sample IDS](testcases/pass-elements_with_any_material_will_pass_an_empty_material_facet.ids) - [Sample IFC: 1](testcases/pass-elements_with_any_material_will_pass_an_empty_material_facet.ifc) + +## [FAIL] Material with no data will fail a value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('1em2VWxjf4zxD7PPG$LyES',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIAL('Unnamed',$,$); +#3=IFCRELASSOCIATESMATERIAL('3lmYeYTFLCJwGVRHp8NAr9',$,$,$,(#1),#2); +~~~ + +[Sample IDS](testcases/fail-material_with_no_data_will_fail_a_value_check.ids) - [Sample IFC: 1](testcases/fail-material_with_no_data_will_fail_a_value_check.ifc) + +## [PASS] A material name may pass the value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('1em2VWxjf4zxD7PPG$LyES',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIAL('Foo',$,$); +#3=IFCRELASSOCIATESMATERIAL('3lmYeYTFLCJwGVRHp8NAr9',$,$,$,(#1),#2); +~~~ + +[Sample IDS](testcases/pass-a_material_name_may_pass_the_value_check.ids) - [Sample IFC: 1](testcases/pass-a_material_name_may_pass_the_value_check.ifc) + +## [PASS] A material category may pass the value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('1em2VWxjf4zxD7PPG$LyES',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIAL('Bar',$,'Foo'); +#3=IFCRELASSOCIATESMATERIAL('3lmYeYTFLCJwGVRHp8NAr9',$,$,$,(#1),#2); +~~~ + +[Sample IDS](testcases/pass-a_material_category_may_pass_the_value_check.ids) - [Sample IFC: 1](testcases/pass-a_material_category_may_pass_the_value_check.ifc) + +## [FAIL] A material list with no data will fail a value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('1dqvUEztf3jhc6fvY3AFcb',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIALLIST((#4)); +#3=IFCRELASSOCIATESMATERIAL('3_4Xvwfsf06hLK3HtrNnQu',$,$,$,(#1),#2); +#4=IFCMATERIAL('Concrete',$,'CONCRETE'); +~~~ + +[Sample IDS](testcases/fail-a_material_list_with_no_data_will_fail_a_value_check.ids) - [Sample IFC: 1](testcases/fail-a_material_list_with_no_data_will_fail_a_value_check.ifc) + +## [PASS] Any material Name in a list will pass a value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('1dqvUEztf3jhc6fvY3AFcb',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIALLIST((#4,#5)); +#3=IFCRELASSOCIATESMATERIAL('3_4Xvwfsf06hLK3HtrNnQu',$,$,$,(#1),#2); +#4=IFCMATERIAL('Concrete',$,'CONCRETE'); +#5=IFCMATERIAL('Foo',$,$); +~~~ + +[Sample IDS](testcases/pass-any_material_name_in_a_list_will_pass_a_value_check.ids) - [Sample IFC: 1](testcases/pass-any_material_name_in_a_list_will_pass_a_value_check.ifc) + +## [PASS] Any material Category in a list will pass a value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('1dqvUEztf3jhc6fvY3AFcb',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIALLIST((#4,#5)); +#3=IFCRELASSOCIATESMATERIAL('3_4Xvwfsf06hLK3HtrNnQu',$,$,$,(#1),#2); +#4=IFCMATERIAL('Concrete',$,'CONCRETE'); +#5=IFCMATERIAL('Bar',$,'Foo'); +~~~ + +[Sample IDS](testcases/pass-any_material_category_in_a_list_will_pass_a_value_check.ids) - [Sample IFC: 1](testcases/pass-any_material_category_in_a_list_will_pass_a_value_check.ifc) + +## [PASS] Any layer Name in a layer set will pass a value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('2quRyIlUb0fPcaBukBmxJl',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIALLAYERSET((#5),'Unnamed',$); +#3=IFCRELASSOCIATESMATERIAL('0aqphv5nX4RPnWE0EEcl3_',$,$,$,(#1),#2); +#4=IFCMATERIAL('Unnamed',$,$); +#5=IFCMATERIALLAYER(#4,1.,$,'Foo',$,$,$); +~~~ + +[Sample IDS](testcases/pass-any_layer_name_in_a_layer_set_will_pass_a_value_check.ids) - [Sample IFC: 1](testcases/pass-any_layer_name_in_a_layer_set_will_pass_a_value_check.ifc) + +## [PASS] Any layer Category in a layer set will pass a value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('2quRyIlUb0fPcaBukBmxJl',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIALLAYERSET((#5),'Unnamed',$); +#3=IFCRELASSOCIATESMATERIAL('0aqphv5nX4RPnWE0EEcl3_',$,$,$,(#1),#2); +#4=IFCMATERIAL('Unnamed',$,$); +#5=IFCMATERIALLAYER(#4,1.,$,'Bar',$,'Foo',$); +~~~ + +[Sample IDS](testcases/pass-any_layer_category_in_a_layer_set_will_pass_a_value_check.ids) - [Sample IFC: 1](testcases/pass-any_layer_category_in_a_layer_set_will_pass_a_value_check.ifc) + +## [PASS] Any material Name in a layer set will pass a value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('2quRyIlUb0fPcaBukBmxJl',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIALLAYERSET((#5),'Unnamed',$); +#3=IFCRELASSOCIATESMATERIAL('0aqphv5nX4RPnWE0EEcl3_',$,$,$,(#1),#2); +#4=IFCMATERIAL('Foo',$,$); +#5=IFCMATERIALLAYER(#4,1.,$,'Bar',$,'Bar',$); +~~~ + +[Sample IDS](testcases/pass-any_material_name_in_a_layer_set_will_pass_a_value_check.ids) - [Sample IFC: 1](testcases/pass-any_material_name_in_a_layer_set_will_pass_a_value_check.ifc) + +## [PASS] Any material Category in a layer set will pass a value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('2quRyIlUb0fPcaBukBmxJl',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIALLAYERSET((#5),'Unnamed',$); +#3=IFCRELASSOCIATESMATERIAL('0aqphv5nX4RPnWE0EEcl3_',$,$,$,(#1),#2); +#4=IFCMATERIAL('Bar',$,'Foo'); +#5=IFCMATERIALLAYER(#4,1.,$,'Bar',$,'Bar',$); +~~~ + +[Sample IDS](testcases/pass-any_material_category_in_a_layer_set_will_pass_a_value_check.ids) - [Sample IFC: 1](testcases/pass-any_material_category_in_a_layer_set_will_pass_a_value_check.ifc) + +## [PASS] Any profile Name in a profile set will pass a value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('1CZWmiPG95i8AwlC2QL1ZA',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIALPROFILESET('Unnamed',$,(#5),$); +#3=IFCRELASSOCIATESMATERIAL('3KD8$objHEmOWreIypgbxE',$,$,$,(#1),#2); +#4=IFCMATERIAL('Unnamed',$,$); +#5=IFCMATERIALPROFILE('Foo',$,#4,#6,$,$); +#6=IFCCIRCLEPROFILEDEF(.AREA.,$,$,1.); +~~~ + +[Sample IDS](testcases/pass-any_profile_name_in_a_profile_set_will_pass_a_value_check.ids) - [Sample IFC: 1](testcases/pass-any_profile_name_in_a_profile_set_will_pass_a_value_check.ifc) + +## [PASS] Any profile Category in a profile set will pass a value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('1CZWmiPG95i8AwlC2QL1ZA',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIALPROFILESET('Unnamed',$,(#5),$); +#3=IFCRELASSOCIATESMATERIAL('3KD8$objHEmOWreIypgbxE',$,$,$,(#1),#2); +#4=IFCMATERIAL('Unnamed',$,$); +#5=IFCMATERIALPROFILE('Bar',$,#4,#6,$,'Foo'); +#6=IFCCIRCLEPROFILEDEF(.AREA.,$,$,1.); +~~~ + +[Sample IDS](testcases/pass-any_profile_category_in_a_profile_set_will_pass_a_value_check.ids) - [Sample IFC: 1](testcases/pass-any_profile_category_in_a_profile_set_will_pass_a_value_check.ifc) + +## [PASS] Any material Name in a profile set will pass a value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('1CZWmiPG95i8AwlC2QL1ZA',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIALPROFILESET('Unnamed',$,(#5),$); +#3=IFCRELASSOCIATESMATERIAL('3KD8$objHEmOWreIypgbxE',$,$,$,(#1),#2); +#4=IFCMATERIAL('Foo',$,$); +#5=IFCMATERIALPROFILE('Bar',$,#4,#6,$,'Bar'); +#6=IFCCIRCLEPROFILEDEF(.AREA.,$,$,1.); +~~~ + +[Sample IDS](testcases/pass-any_material_name_in_a_profile_set_will_pass_a_value_check.ids) - [Sample IFC: 1](testcases/pass-any_material_name_in_a_profile_set_will_pass_a_value_check.ifc) + +## [PASS] Any material category in a profile set will pass a value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('1CZWmiPG95i8AwlC2QL1ZA',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIALPROFILESET('Unnamed',$,(#5),$); +#3=IFCRELASSOCIATESMATERIAL('3KD8$objHEmOWreIypgbxE',$,$,$,(#1),#2); +#4=IFCMATERIAL('Bar',$,'Foo'); +#5=IFCMATERIALPROFILE('Bar',$,#4,#6,$,'Bar'); +#6=IFCCIRCLEPROFILEDEF(.AREA.,$,$,1.); +~~~ + +[Sample IDS](testcases/pass-any_material_category_in_a_profile_set_will_pass_a_value_check.ids) - [Sample IFC: 1](testcases/pass-any_material_category_in_a_profile_set_will_pass_a_value_check.ifc) + +## [FAIL] A constituent set with no data will fail a value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('2oqKSSmgb4CeCgipXo778i',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIALCONSTITUENTSET('Unnamed',$,$); +#3=IFCRELASSOCIATESMATERIAL('2bvf5Lr5r1hewzJePZxXYH',$,$,$,(#1),#2); +~~~ + +[Sample IDS](testcases/fail-a_constituent_set_with_no_data_will_fail_a_value_check.ids) - [Sample IFC: 1](testcases/fail-a_constituent_set_with_no_data_will_fail_a_value_check.ifc) + +## [PASS] Any constituent Name in a constituent set will pass a value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('2oqKSSmgb4CeCgipXo778i',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIALCONSTITUENTSET('Unnamed',$,(#5)); +#3=IFCRELASSOCIATESMATERIAL('2bvf5Lr5r1hewzJePZxXYH',$,$,$,(#1),#2); +#4=IFCMATERIAL('Unnamed',$,$); +#5=IFCMATERIALCONSTITUENT('Foo',$,#4,$,$); +~~~ + +[Sample IDS](testcases/pass-any_constituent_name_in_a_constituent_set_will_pass_a_value_check.ids) - [Sample IFC: 1](testcases/pass-any_constituent_name_in_a_constituent_set_will_pass_a_value_check.ifc) + +## [PASS] Any constituent Category in a constituent set will pass a value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('2oqKSSmgb4CeCgipXo778i',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIALCONSTITUENTSET('Unnamed',$,(#5)); +#3=IFCRELASSOCIATESMATERIAL('2bvf5Lr5r1hewzJePZxXYH',$,$,$,(#1),#2); +#4=IFCMATERIAL('Unnamed',$,$); +#5=IFCMATERIALCONSTITUENT('Bar',$,#4,$,'Foo'); +~~~ + +[Sample IDS](testcases/pass-any_constituent_category_in_a_constituent_set_will_pass_a_value_check.ids) - [Sample IFC: 1](testcases/pass-any_constituent_category_in_a_constituent_set_will_pass_a_value_check.ifc) + +## [PASS] Any material Name in a constituent set will pass a value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('2oqKSSmgb4CeCgipXo778i',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIALCONSTITUENTSET('Unnamed',$,(#5)); +#3=IFCRELASSOCIATESMATERIAL('2bvf5Lr5r1hewzJePZxXYH',$,$,$,(#1),#2); +#4=IFCMATERIAL('Foo',$,$); +#5=IFCMATERIALCONSTITUENT('Bar',$,#4,$,'Bar'); +~~~ + +[Sample IDS](testcases/pass-any_material_name_in_a_constituent_set_will_pass_a_value_check.ids) - [Sample IFC: 1](testcases/pass-any_material_name_in_a_constituent_set_will_pass_a_value_check.ifc) + +## [PASS] Any material Category in a constituent set will pass a value check + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('2oqKSSmgb4CeCgipXo778i',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCMATERIALCONSTITUENTSET('Unnamed',$,(#5)); +#3=IFCRELASSOCIATESMATERIAL('2bvf5Lr5r1hewzJePZxXYH',$,$,$,(#1),#2); +#4=IFCMATERIAL('Bar',$,'Foo'); +#5=IFCMATERIALCONSTITUENT('Bar',$,#4,$,'Bar'); +~~~ + +[Sample IDS](testcases/pass-any_material_category_in_a_constituent_set_will_pass_a_value_check.ids) - [Sample IFC: 1](testcases/pass-any_material_category_in_a_constituent_set_will_pass_a_value_check.ifc) + +## [PASS] Occurrences can inherit materials from their types + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('3vFMA9TM13SPLINaj5vzD2',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCWALLTYPE('3gYiUqnY96pAouuoWc42nv',$,$,$,$,$,$,$,$,.ELEMENTEDWALL.); +#3=IFCRELDEFINESBYTYPE('1L0PkvDRj9EvK7$HLTfQRq',$,$,$,(#1),#2); +#4=IFCMATERIAL('Foo',$,$); +#5=IFCRELASSOCIATESMATERIAL('0YDKatTqT7qRtZwgR0VIqA',$,$,$,(#2),#4); +~~~ + +[Sample IDS](testcases/pass-occurrences_can_inherit_materials_from_their_types.ids) - [Sample IFC: 1](testcases/pass-occurrences_can_inherit_materials_from_their_types.ifc) + +## [PASS] Occurrences can override materials from their types + +~~~xml + + + Foo + + +~~~ + +~~~lua +#1=IFCWALL('2FMdrmuwH0CflUc2A1JDgV',$,$,$,$,$,$,$,$); /* Testcase */ +#2=IFCWALLTYPE('2W6woWPnT8lBDxasNC4MLO',$,$,$,$,$,$,$,$,.ELEMENTEDWALL.); +#3=IFCRELDEFINESBYTYPE('0TpnC9_T5CauN7RO_D3M8Z',$,$,$,(#1),#2); +#4=IFCMATERIAL('Bar',$,$); +#5=IFCRELASSOCIATESMATERIAL('1uEdcqQ4bB6vFqQ7ESQ8Ys',$,$,$,(#2),#4); +#6=IFCMATERIAL('Foo',$,$); +#7=IFCRELASSOCIATESMATERIAL('0hiZvcQtb8dOB1cXGdOvST',$,$,$,(#1),#6); +~~~ + +[Sample IDS](testcases/pass-occurrences_can_override_materials_from_their_types.ids) - [Sample IFC: 1](testcases/pass-occurrences_can_override_materials_from_their_types.ifc) + diff --git a/Documentation/testcases/fail-a_classification_facet_with_no_data_matches_any_classification_1_2.ids b/Documentation/testcases/fail-a_classification_facet_with_no_data_matches_any_classification_1_2.ids new file mode 100644 index 0000000..616a86a --- /dev/null +++ b/Documentation/testcases/fail-a_classification_facet_with_no_data_matches_any_classification_1_2.ids @@ -0,0 +1,19 @@ + + + A classification facet with no data matches any classification 1/2 + + + + + + + IfcWall + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-a_classification_facet_with_no_data_matches_any_classification_1_2.ifc b/Documentation/testcases/fail-a_classification_facet_with_no_data_matches_any_classification_1_2.ifc new file mode 100644 index 0000000..6cfdd0f --- /dev/null +++ b/Documentation/testcases/fail-a_classification_facet_with_no_data_matches_any_classification_1_2.ifc @@ -0,0 +1,23 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-a_constituent_set_with_no_data_will_fail_a_value_check.ids b/Documentation/testcases/fail-a_constituent_set_with_no_data_will_fail_a_value_check.ids new file mode 100644 index 0000000..ad50790 --- /dev/null +++ b/Documentation/testcases/fail-a_constituent_set_with_no_data_will_fail_a_value_check.ids @@ -0,0 +1,23 @@ + + + A constituent set with no data will fail a value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-a_constituent_set_with_no_data_will_fail_a_value_check.ifc b/Documentation/testcases/fail-a_constituent_set_with_no_data_will_fail_a_value_check.ifc new file mode 100644 index 0000000..be07d09 --- /dev/null +++ b/Documentation/testcases/fail-a_constituent_set_with_no_data_will_fail_a_value_check.ifc @@ -0,0 +1,12 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('2oqKSSmgb4CeCgipXo778i',$,$,$,$,$,$,$,$); +#2=IFCMATERIALCONSTITUENTSET('Unnamed',$,$); +#3=IFCRELASSOCIATESMATERIAL('2bvf5Lr5r1hewzJePZxXYH',$,$,$,(#1),#2); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-a_material_list_with_no_data_will_fail_a_value_check.ids b/Documentation/testcases/fail-a_material_list_with_no_data_will_fail_a_value_check.ids new file mode 100644 index 0000000..93fe147 --- /dev/null +++ b/Documentation/testcases/fail-a_material_list_with_no_data_will_fail_a_value_check.ids @@ -0,0 +1,23 @@ + + + A material list with no data will fail a value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-a_material_list_with_no_data_will_fail_a_value_check.ifc b/Documentation/testcases/fail-a_material_list_with_no_data_will_fail_a_value_check.ifc new file mode 100644 index 0000000..3c447f3 --- /dev/null +++ b/Documentation/testcases/fail-a_material_list_with_no_data_will_fail_a_value_check.ifc @@ -0,0 +1,13 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1dqvUEztf3jhc6fvY3AFcb',$,$,$,$,$,$,$,$); +#2=IFCMATERIALLIST((#4)); +#3=IFCRELASSOCIATESMATERIAL('3_4Xvwfsf06hLK3HtrNnQu',$,$,$,(#1),#2); +#4=IFCMATERIAL('Concrete',$,'CONCRETE'); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-a_null_predefined_type_should_always_fail_a_specified_predefined_types.ids b/Documentation/testcases/fail-a_null_predefined_type_should_always_fail_a_specified_predefined_types.ids new file mode 100644 index 0000000..2471eff --- /dev/null +++ b/Documentation/testcases/fail-a_null_predefined_type_should_always_fail_a_specified_predefined_types.ids @@ -0,0 +1,26 @@ + + + A null predefined type should always fail a specified predefined types + + + + + + + IfcWall + + + + + + + IFCWALL + + + SOLIDWALL + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-a_null_predefined_type_should_always_fail_a_specified_predefined_types.ifc b/Documentation/testcases/fail-a_null_predefined_type_should_always_fail_a_specified_predefined_types.ifc new file mode 100644 index 0000000..24a8304 --- /dev/null +++ b/Documentation/testcases/fail-a_null_predefined_type_should_always_fail_a_specified_predefined_types.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('3hX7Q2CMrA89UgAc0HAauJ',$,$,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-a_predefined_type_from_an_enumeration_must_be_uppercase.ids b/Documentation/testcases/fail-a_predefined_type_from_an_enumeration_must_be_uppercase.ids new file mode 100644 index 0000000..3a5f683 --- /dev/null +++ b/Documentation/testcases/fail-a_predefined_type_from_an_enumeration_must_be_uppercase.ids @@ -0,0 +1,26 @@ + + + A predefined type from an enumeration must be uppercase + + + + + + + IfcWall + + + + + + + IFCWALL + + + solidwall + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-a_predefined_type_from_an_enumeration_must_be_uppercase.ifc b/Documentation/testcases/fail-a_predefined_type_from_an_enumeration_must_be_uppercase.ifc new file mode 100644 index 0000000..6bf99a4 --- /dev/null +++ b/Documentation/testcases/fail-a_predefined_type_from_an_enumeration_must_be_uppercase.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('2lFXfmA6z508OXyTOybtpc',$,$,$,$,$,$,$,.SOLIDWALL.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-a_predefined_type_must_always_specify_a_meaningful_type__not_userdefined_itself.ids b/Documentation/testcases/fail-a_predefined_type_must_always_specify_a_meaningful_type__not_userdefined_itself.ids new file mode 100644 index 0000000..8c185c0 --- /dev/null +++ b/Documentation/testcases/fail-a_predefined_type_must_always_specify_a_meaningful_type__not_userdefined_itself.ids @@ -0,0 +1,26 @@ + + + A predefined type must always specify a meaningful type, not USERDEFINED itself + + + + + + + IfcWall + + + + + + + IFCWALL + + + USERDEFINED + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-a_predefined_type_must_always_specify_a_meaningful_type__not_userdefined_itself.ifc b/Documentation/testcases/fail-a_predefined_type_must_always_specify_a_meaningful_type__not_userdefined_itself.ifc new file mode 100644 index 0000000..91db17b --- /dev/null +++ b/Documentation/testcases/fail-a_predefined_type_must_always_specify_a_meaningful_type__not_userdefined_itself.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('2emAGFrs5DGu$vYROns4EL',$,$,$,'WALDO',$,$,$,.USERDEFINED.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-an_entity_not_matching_a_specified_predefined_type_will_fail.ids b/Documentation/testcases/fail-an_entity_not_matching_a_specified_predefined_type_will_fail.ids new file mode 100644 index 0000000..95ec0fe --- /dev/null +++ b/Documentation/testcases/fail-an_entity_not_matching_a_specified_predefined_type_will_fail.ids @@ -0,0 +1,26 @@ + + + An entity not matching a specified predefined type will fail + + + + + + + IfcWall + + + + + + + IFCWALL + + + SOLIDWALL + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-an_entity_not_matching_a_specified_predefined_type_will_fail.ifc b/Documentation/testcases/fail-an_entity_not_matching_a_specified_predefined_type_will_fail.ifc new file mode 100644 index 0000000..8a9a5fa --- /dev/null +++ b/Documentation/testcases/fail-an_entity_not_matching_a_specified_predefined_type_will_fail.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('3lMFFm9kP03PH$35Barisc',$,$,$,$,$,$,$,.PARTITIONING.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-an_entity_not_matching_the_specified_class_should_fail.ids b/Documentation/testcases/fail-an_entity_not_matching_the_specified_class_should_fail.ids new file mode 100644 index 0000000..f591c52 --- /dev/null +++ b/Documentation/testcases/fail-an_entity_not_matching_the_specified_class_should_fail.ids @@ -0,0 +1,23 @@ + + + An entity not matching the specified class should fail + + + + + + + IfcSlab + + + + + + + IFCWALL + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-an_entity_not_matching_the_specified_class_should_fail.ifc b/Documentation/testcases/fail-an_entity_not_matching_the_specified_class_should_fail.ifc new file mode 100644 index 0000000..d708406 --- /dev/null +++ b/Documentation/testcases/fail-an_entity_not_matching_the_specified_class_should_fail.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCSLAB('0lyDsfhm15IfI0WHEUDFhp',$,$,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-attributes_are_not_inherited_by_the_occurrence.ids b/Documentation/testcases/fail-attributes_are_not_inherited_by_the_occurrence.ids new file mode 100644 index 0000000..7dd7683 --- /dev/null +++ b/Documentation/testcases/fail-attributes_are_not_inherited_by_the_occurrence.ids @@ -0,0 +1,29 @@ + + + Attributes are not inherited by the occurrence + + + + + + + IfcWall + + + + + + + Name + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-attributes_are_not_inherited_by_the_occurrence.ifc b/Documentation/testcases/fail-attributes_are_not_inherited_by_the_occurrence.ifc new file mode 100644 index 0000000..c4111e5 --- /dev/null +++ b/Documentation/testcases/fail-attributes_are_not_inherited_by_the_occurrence.ifc @@ -0,0 +1,12 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('0y2FiE76f9BQiJ5jrpELFo',$,$,$,$,$,$,$,$); +#2=IFCWALLTYPE('35Sc4Leab3$vdTXdBsrq3i',$,$,'Foobar',$,$,$,$,$,.ELEMENTEDWALL.); +#3=IFCRELDEFINESBYTYPE('2w2JAq$NT8v9osGH38S_9p',$,$,$,(#1),#2); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-attributes_should_check_strings_case_sensitively_2_2.ids b/Documentation/testcases/fail-attributes_should_check_strings_case_sensitively_2_2.ids new file mode 100644 index 0000000..8179381 --- /dev/null +++ b/Documentation/testcases/fail-attributes_should_check_strings_case_sensitively_2_2.ids @@ -0,0 +1,26 @@ + + + Attributes should check strings case sensitively 2/2 + + + + + + + IfcWall + + + + + + + Name + + + Foobar + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-attributes_should_check_strings_case_sensitively_2_2.ifc b/Documentation/testcases/fail-attributes_should_check_strings_case_sensitively_2_2.ifc new file mode 100644 index 0000000..2aa1310 --- /dev/null +++ b/Documentation/testcases/fail-attributes_should_check_strings_case_sensitively_2_2.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('0ZCjZxCFH378tguwvO12cq',$,'foobar',$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-attributes_with_a_logical_unknown_always_fail.ids b/Documentation/testcases/fail-attributes_with_a_logical_unknown_always_fail.ids new file mode 100644 index 0000000..9eda20e --- /dev/null +++ b/Documentation/testcases/fail-attributes_with_a_logical_unknown_always_fail.ids @@ -0,0 +1,23 @@ + + + Attributes with a logical unknown always fail + + + + + + + IfcPresentationLayerWithStyle + + + + + + + LayerOn + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-attributes_with_a_logical_unknown_always_fail.ifc b/Documentation/testcases/fail-attributes_with_a_logical_unknown_always_fail.ifc new file mode 100644 index 0000000..d8d0940 --- /dev/null +++ b/Documentation/testcases/fail-attributes_with_a_logical_unknown_always_fail.ifc @@ -0,0 +1,11 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCCARTESIANPOINT((0.,0.,0.)); +#2=IFCPRESENTATIONLAYERWITHSTYLE('Foo',$,(#1),$,.U.,.F.,.F.,()); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-attributes_with_an_empty_list_always_fail.ids b/Documentation/testcases/fail-attributes_with_an_empty_list_always_fail.ids new file mode 100644 index 0000000..5bf9674 --- /dev/null +++ b/Documentation/testcases/fail-attributes_with_an_empty_list_always_fail.ids @@ -0,0 +1,23 @@ + + + Attributes with an empty list always fail + + + + + + + IfcRelConnectsPathElements + + + + + + + RelatingPriorities + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-attributes_with_an_empty_list_always_fail.ifc b/Documentation/testcases/fail-attributes_with_an_empty_list_always_fail.ifc new file mode 100644 index 0000000..a3646e2 --- /dev/null +++ b/Documentation/testcases/fail-attributes_with_an_empty_list_always_fail.ifc @@ -0,0 +1,12 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('2ZiHw1N2v8L9lnEFBqdGtC',$,$,$,$,$,$,$,$); +#2=IFCWALL('1ZhzAkRRr4Ouo4LjkDOmHK',$,$,$,$,$,$,$,$); +#3=IFCRELCONNECTSPATHELEMENTS('2Wui1$py55WvX5BykmDWCz',$,$,$,$,#1,#2,(),(),.ATSTART.,.ATEND.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-attributes_with_an_empty_set_always_fail.ids b/Documentation/testcases/fail-attributes_with_an_empty_set_always_fail.ids new file mode 100644 index 0000000..a4be130 --- /dev/null +++ b/Documentation/testcases/fail-attributes_with_an_empty_set_always_fail.ids @@ -0,0 +1,23 @@ + + + Attributes with an empty set always fail + + + + + + + IfcPresentationLayerWithStyle + + + + + + + LayerStyles + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-attributes_with_an_empty_set_always_fail.ifc b/Documentation/testcases/fail-attributes_with_an_empty_set_always_fail.ifc new file mode 100644 index 0000000..5bbafce --- /dev/null +++ b/Documentation/testcases/fail-attributes_with_an_empty_set_always_fail.ifc @@ -0,0 +1,11 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCCARTESIANPOINT((0.,0.,0.)); +#2=IFCPRESENTATIONLAYERWITHSTYLE('Foo',$,(#1),$,.T.,.F.,.F.,()); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-attributes_with_empty_strings_always_fail.ids b/Documentation/testcases/fail-attributes_with_empty_strings_always_fail.ids new file mode 100644 index 0000000..690091c --- /dev/null +++ b/Documentation/testcases/fail-attributes_with_empty_strings_always_fail.ids @@ -0,0 +1,23 @@ + + + Attributes with empty strings always fail + + + + + + + IfcWall + + + + + + + Name + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-attributes_with_empty_strings_always_fail.ifc b/Documentation/testcases/fail-attributes_with_empty_strings_always_fail.ifc new file mode 100644 index 0000000..b5fff14 --- /dev/null +++ b/Documentation/testcases/fail-attributes_with_empty_strings_always_fail.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('2uH0ikuhn0p8H7VeUvNKzc',$,'',$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-attributes_with_null_values_always_fail.ids b/Documentation/testcases/fail-attributes_with_null_values_always_fail.ids new file mode 100644 index 0000000..a3c9881 --- /dev/null +++ b/Documentation/testcases/fail-attributes_with_null_values_always_fail.ids @@ -0,0 +1,23 @@ + + + Attributes with null values always fail + + + + + + + IfcWall + + + + + + + Name + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-attributes_with_null_values_always_fail.ifc b/Documentation/testcases/fail-attributes_with_null_values_always_fail.ifc new file mode 100644 index 0000000..b448010 --- /dev/null +++ b/Documentation/testcases/fail-attributes_with_null_values_always_fail.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('3$UvNnnuP2GRvi9gizh$8r',$,$,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-booleans_must_be_specified_as_uppercase_strings_1_3.ids b/Documentation/testcases/fail-booleans_must_be_specified_as_uppercase_strings_1_3.ids new file mode 100644 index 0000000..a886ddf --- /dev/null +++ b/Documentation/testcases/fail-booleans_must_be_specified_as_uppercase_strings_1_3.ids @@ -0,0 +1,26 @@ + + + Booleans must be specified as uppercase strings 1/3 + + + + + + + IfcTask + + + + + + + IsMilestone + + + TRUE + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-booleans_must_be_specified_as_uppercase_strings_1_3.ifc b/Documentation/testcases/fail-booleans_must_be_specified_as_uppercase_strings_1_3.ifc new file mode 100644 index 0000000..baf0ad9 --- /dev/null +++ b/Documentation/testcases/fail-booleans_must_be_specified_as_uppercase_strings_1_3.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCTASK('32q2Fff9fDS8yRQuEpEgTs',$,$,$,$,$,$,$,$,.F.,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-booleans_must_be_specified_as_uppercase_strings_2_3.ids b/Documentation/testcases/fail-booleans_must_be_specified_as_uppercase_strings_2_3.ids new file mode 100644 index 0000000..e4dcdc5 --- /dev/null +++ b/Documentation/testcases/fail-booleans_must_be_specified_as_uppercase_strings_2_3.ids @@ -0,0 +1,26 @@ + + + Booleans must be specified as uppercase strings 2/3 + + + + + + + IfcTask + + + + + + + IsMilestone + + + False + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-booleans_must_be_specified_as_uppercase_strings_2_3.ifc b/Documentation/testcases/fail-booleans_must_be_specified_as_uppercase_strings_2_3.ifc new file mode 100644 index 0000000..baf0ad9 --- /dev/null +++ b/Documentation/testcases/fail-booleans_must_be_specified_as_uppercase_strings_2_3.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCTASK('32q2Fff9fDS8yRQuEpEgTs',$,$,$,$,$,$,$,$,.F.,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-both_system_and_value_must_match__all__not_any__if_specified_2_2.ids b/Documentation/testcases/fail-both_system_and_value_must_match__all__not_any__if_specified_2_2.ids new file mode 100644 index 0000000..8f87560 --- /dev/null +++ b/Documentation/testcases/fail-both_system_and_value_must_match__all__not_any__if_specified_2_2.ids @@ -0,0 +1,26 @@ + + + Both system and value must match (all, not any) if specified 2/2 + + + + + + + IfcWall + + + + + + + 1 + + + Foobar + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-both_system_and_value_must_match__all__not_any__if_specified_2_2.ifc b/Documentation/testcases/fail-both_system_and_value_must_match__all__not_any__if_specified_2_2.ifc new file mode 100644 index 0000000..6cfdd0f --- /dev/null +++ b/Documentation/testcases/fail-both_system_and_value_must_match__all__not_any__if_specified_2_2.ifc @@ -0,0 +1,23 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-dates_are_treated_as_strings_1_2.ids b/Documentation/testcases/fail-dates_are_treated_as_strings_1_2.ids new file mode 100644 index 0000000..c9216e8 --- /dev/null +++ b/Documentation/testcases/fail-dates_are_treated_as_strings_1_2.ids @@ -0,0 +1,26 @@ + + + Dates are treated as strings 1/2 + + + + + + + IfcClassification + + + + + + + EditionDate + + + 2022-01-01 + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-dates_are_treated_as_strings_1_2.ifc b/Documentation/testcases/fail-dates_are_treated_as_strings_1_2.ifc new file mode 100644 index 0000000..d32f558 --- /dev/null +++ b/Documentation/testcases/fail-dates_are_treated_as_strings_1_2.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCCLASSIFICATION($,$,'2022-01-01+00:00','Name',$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-derived_attributes_cannot_be_checked_and_always_fail.ids b/Documentation/testcases/fail-derived_attributes_cannot_be_checked_and_always_fail.ids new file mode 100644 index 0000000..064a756 --- /dev/null +++ b/Documentation/testcases/fail-derived_attributes_cannot_be_checked_and_always_fail.ids @@ -0,0 +1,23 @@ + + + Derived attributes cannot be checked and always fail + + + + + + + IfcCartesianPoint + + + + + + + Dim + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-derived_attributes_cannot_be_checked_and_always_fail.ifc b/Documentation/testcases/fail-derived_attributes_cannot_be_checked_and_always_fail.ifc new file mode 100644 index 0000000..031622f --- /dev/null +++ b/Documentation/testcases/fail-derived_attributes_cannot_be_checked_and_always_fail.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCCARTESIANPOINT((0.,0.,0.)); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-durations_are_treated_as_strings_1_2.ids b/Documentation/testcases/fail-durations_are_treated_as_strings_1_2.ids new file mode 100644 index 0000000..2043acb --- /dev/null +++ b/Documentation/testcases/fail-durations_are_treated_as_strings_1_2.ids @@ -0,0 +1,26 @@ + + + Durations are treated as strings 1/2 + + + + + + + IfcClassification + + + + + + + ScheduleDuration + + + PT16H + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-durations_are_treated_as_strings_1_2.ifc b/Documentation/testcases/fail-durations_are_treated_as_strings_1_2.ifc new file mode 100644 index 0000000..4d8108f --- /dev/null +++ b/Documentation/testcases/fail-durations_are_treated_as_strings_1_2.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCCLASSIFICATION($,$,'PT16H','Name',$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-durations_are_treated_as_strings_2_2.ids b/Documentation/testcases/fail-durations_are_treated_as_strings_2_2.ids new file mode 100644 index 0000000..b226b8b --- /dev/null +++ b/Documentation/testcases/fail-durations_are_treated_as_strings_2_2.ids @@ -0,0 +1,26 @@ + + + Durations are treated as strings 2/2 + + + + + + + IfcClassification + + + + + + + ScheduleDuration + + + PT16H + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-durations_are_treated_as_strings_2_2.ifc b/Documentation/testcases/fail-durations_are_treated_as_strings_2_2.ifc new file mode 100644 index 0000000..550f542 --- /dev/null +++ b/Documentation/testcases/fail-durations_are_treated_as_strings_2_2.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCCLASSIFICATION($,$,'P2D','Name',$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-elements_without_a_material_always_fail.ids b/Documentation/testcases/fail-elements_without_a_material_always_fail.ids new file mode 100644 index 0000000..9c8cf71 --- /dev/null +++ b/Documentation/testcases/fail-elements_without_a_material_always_fail.ids @@ -0,0 +1,19 @@ + + + Elements without a material always fail + + + + + + + IfcWall + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-elements_without_a_material_always_fail.ifc b/Documentation/testcases/fail-elements_without_a_material_always_fail.ifc new file mode 100644 index 0000000..0d3f62c --- /dev/null +++ b/Documentation/testcases/fail-elements_without_a_material_always_fail.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('3b4N11kzL6dQYj15tcJ4Ck',$,$,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-entities_can_be_specified_as_a_xsd_regex_pattern_1_2.ids b/Documentation/testcases/fail-entities_can_be_specified_as_a_xsd_regex_pattern_1_2.ids new file mode 100644 index 0000000..6ac24ae --- /dev/null +++ b/Documentation/testcases/fail-entities_can_be_specified_as_a_xsd_regex_pattern_1_2.ids @@ -0,0 +1,25 @@ + + + Entities can be specified as a XSD regex pattern 1/2 + + + + + + + IfcWall + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-entities_can_be_specified_as_a_xsd_regex_pattern_1_2.ifc b/Documentation/testcases/fail-entities_can_be_specified_as_a_xsd_regex_pattern_1_2.ifc new file mode 100644 index 0000000..f525f42 --- /dev/null +++ b/Documentation/testcases/fail-entities_can_be_specified_as_a_xsd_regex_pattern_1_2.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1mRO0SerX5Yh1Fyt53ZEG$',$,$,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-entities_can_be_specified_as_an_enumeration_3_3.ids b/Documentation/testcases/fail-entities_can_be_specified_as_an_enumeration_3_3.ids new file mode 100644 index 0000000..70b35ff --- /dev/null +++ b/Documentation/testcases/fail-entities_can_be_specified_as_an_enumeration_3_3.ids @@ -0,0 +1,26 @@ + + + Entities can be specified as an enumeration 3/3 + + + + + + + IfcBeam + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-entities_can_be_specified_as_an_enumeration_3_3.ifc b/Documentation/testcases/fail-entities_can_be_specified_as_an_enumeration_3_3.ifc new file mode 100644 index 0000000..dffb571 --- /dev/null +++ b/Documentation/testcases/fail-entities_can_be_specified_as_an_enumeration_3_3.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCBEAM('3VC5ta4az6afdtXVldU1Ur',$,$,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-entities_must_be_specified_as_uppercase_strings.ids b/Documentation/testcases/fail-entities_must_be_specified_as_uppercase_strings.ids new file mode 100644 index 0000000..8f44e49 --- /dev/null +++ b/Documentation/testcases/fail-entities_must_be_specified_as_uppercase_strings.ids @@ -0,0 +1,23 @@ + + + Entities must be specified as uppercase strings + + + + + + + IfcWall + + + + + + + IfcWall + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-entities_must_be_specified_as_uppercase_strings.ifc b/Documentation/testcases/fail-entities_must_be_specified_as_uppercase_strings.ifc new file mode 100644 index 0000000..f793a3d --- /dev/null +++ b/Documentation/testcases/fail-entities_must_be_specified_as_uppercase_strings.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('0gnz5aO8rBXOI8Da3mwJ9Z',$,$,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-ids_does_not_handle_string_truncation_such_as_for_identifiers.ids b/Documentation/testcases/fail-ids_does_not_handle_string_truncation_such_as_for_identifiers.ids new file mode 100644 index 0000000..c8cb62d --- /dev/null +++ b/Documentation/testcases/fail-ids_does_not_handle_string_truncation_such_as_for_identifiers.ids @@ -0,0 +1,26 @@ + + + IDS does not handle string truncation such as for identifiers + + + + + + + IfcPerson + + + + + + + Identification + + + 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345_extra_characters + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-ids_does_not_handle_string_truncation_such_as_for_identifiers.ifc b/Documentation/testcases/fail-ids_does_not_handle_string_truncation_such_as_for_identifiers.ifc new file mode 100644 index 0000000..184f7c6 --- /dev/null +++ b/Documentation/testcases/fail-ids_does_not_handle_string_truncation_such_as_for_identifiers.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPERSON('123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345',$,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-invalid_attribute_names_always_fail.ids b/Documentation/testcases/fail-invalid_attribute_names_always_fail.ids new file mode 100644 index 0000000..0abc675 --- /dev/null +++ b/Documentation/testcases/fail-invalid_attribute_names_always_fail.ids @@ -0,0 +1,23 @@ + + + Invalid attribute names always fail + + + + + + + IfcWall + + + + + + + Foobar + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-invalid_attribute_names_always_fail.ifc b/Documentation/testcases/fail-invalid_attribute_names_always_fail.ifc new file mode 100644 index 0000000..705a877 --- /dev/null +++ b/Documentation/testcases/fail-invalid_attribute_names_always_fail.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('0wS_mjksj9$xYDTmr2m3AZ',$,$,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-invalid_entities_always_fail.ids b/Documentation/testcases/fail-invalid_entities_always_fail.ids new file mode 100644 index 0000000..bd7806c --- /dev/null +++ b/Documentation/testcases/fail-invalid_entities_always_fail.ids @@ -0,0 +1,23 @@ + + + Invalid entities always fail + + + + + + + IfcWall + + + + + + + IFCRABBIT + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-invalid_entities_always_fail.ifc b/Documentation/testcases/fail-invalid_entities_always_fail.ifc new file mode 100644 index 0000000..a3fe811 --- /dev/null +++ b/Documentation/testcases/fail-invalid_entities_always_fail.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('0bziUpHHb538fov9u7Lsl9',$,$,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-inverse_attributes_cannot_be_checked_and_always_fail.ids b/Documentation/testcases/fail-inverse_attributes_cannot_be_checked_and_always_fail.ids new file mode 100644 index 0000000..9ff9cc1 --- /dev/null +++ b/Documentation/testcases/fail-inverse_attributes_cannot_be_checked_and_always_fail.ids @@ -0,0 +1,23 @@ + + + Inverse attributes cannot be checked and always fail + + + + + + + IfcPerson + + + + + + + EngagedIn + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-inverse_attributes_cannot_be_checked_and_always_fail.ifc b/Documentation/testcases/fail-inverse_attributes_cannot_be_checked_and_always_fail.ifc new file mode 100644 index 0000000..7241e81 --- /dev/null +++ b/Documentation/testcases/fail-inverse_attributes_cannot_be_checked_and_always_fail.ifc @@ -0,0 +1,12 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPERSON($,$,$,$,$,$,$,$); +#2=IFCORGANIZATION($,'Foo',$,$,$); +#3=IFCPERSONANDORGANIZATION(#1,#2,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-material_with_no_data_will_fail_a_value_check.ids b/Documentation/testcases/fail-material_with_no_data_will_fail_a_value_check.ids new file mode 100644 index 0000000..baa8e95 --- /dev/null +++ b/Documentation/testcases/fail-material_with_no_data_will_fail_a_value_check.ids @@ -0,0 +1,23 @@ + + + Material with no data will fail a value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-material_with_no_data_will_fail_a_value_check.ifc b/Documentation/testcases/fail-material_with_no_data_will_fail_a_value_check.ifc new file mode 100644 index 0000000..5b1809b --- /dev/null +++ b/Documentation/testcases/fail-material_with_no_data_will_fail_a_value_check.ifc @@ -0,0 +1,12 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1em2VWxjf4zxD7PPG$LyES',$,$,$,$,$,$,$,$); +#2=IFCMATERIAL('Unnamed',$,$); +#3=IFCRELASSOCIATESMATERIAL('3lmYeYTFLCJwGVRHp8NAr9',$,$,$,(#1),#2); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-name_restrictions_may_be_used_3_4.ids b/Documentation/testcases/fail-name_restrictions_may_be_used_3_4.ids new file mode 100644 index 0000000..7c6d74a --- /dev/null +++ b/Documentation/testcases/fail-name_restrictions_may_be_used_3_4.ids @@ -0,0 +1,26 @@ + + + Name restrictions may be used 3/4 + + + + + + + IfcWall + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-name_restrictions_may_be_used_3_4.ifc b/Documentation/testcases/fail-name_restrictions_may_be_used_3_4.ifc new file mode 100644 index 0000000..ad3a0b0 --- /dev/null +++ b/Documentation/testcases/fail-name_restrictions_may_be_used_3_4.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1_45dk5EDC1uDhBp4esDk1',$,'Foo',$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-numeric_values_are_checked_using_type_casting_4_4.ids b/Documentation/testcases/fail-numeric_values_are_checked_using_type_casting_4_4.ids new file mode 100644 index 0000000..cb61dc5 --- /dev/null +++ b/Documentation/testcases/fail-numeric_values_are_checked_using_type_casting_4_4.ids @@ -0,0 +1,26 @@ + + + Numeric values are checked using type casting 4/4 + + + + + + + IfcSurfaceStyleRefraction + + + + + + + RefractionIndex + + + 42 + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-numeric_values_are_checked_using_type_casting_4_4.ifc b/Documentation/testcases/fail-numeric_values_are_checked_using_type_casting_4_4.ifc new file mode 100644 index 0000000..fabbece --- /dev/null +++ b/Documentation/testcases/fail-numeric_values_are_checked_using_type_casting_4_4.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCSURFACESTYLEREFRACTION(42.3,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-occurrences_override_the_type_classification_per_system_2_3.ids b/Documentation/testcases/fail-occurrences_override_the_type_classification_per_system_2_3.ids new file mode 100644 index 0000000..9532d78 --- /dev/null +++ b/Documentation/testcases/fail-occurrences_override_the_type_classification_per_system_2_3.ids @@ -0,0 +1,23 @@ + + + Occurrences override the type classification per system 2/3 + + + + + + + IfcWall + + + + + + + 22 + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-occurrences_override_the_type_classification_per_system_2_3.ifc b/Documentation/testcases/fail-occurrences_override_the_type_classification_per_system_2_3.ifc new file mode 100644 index 0000000..fa3917d --- /dev/null +++ b/Documentation/testcases/fail-occurrences_override_the_type_classification_per_system_2_3.ifc @@ -0,0 +1,30 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#16,#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11,#17),#12); +#16=IFCWALL('3gjhpoGY54T8ZY2eLSU6Mj',$,$,$,$,$,$,$,$); +#17=IFCWALLTYPE('3bLBNhMpT68fl5VCu2b9fk',$,$,$,$,$,$,$,$,.ELEMENTEDWALL.); +#18=IFCRELDEFINESBYTYPE('3iDG_WdzrCCeybZ$O3bcLV',$,$,$,(#16),#17); +#19=IFCCLASSIFICATION($,$,$,'Foobaz',$,$,$); +#20=IFCRELASSOCIATESCLASSIFICATION('3mVzrKNQHEsQ3do0idBpgM',$,$,$,(#1),#19); +#21=IFCCLASSIFICATIONREFERENCE($,'X',$,#19,$,$); +#22=IFCRELASSOCIATESCLASSIFICATION('1$lAD_gez30QRAVfOBq0DZ',$,$,$,(#17),#21); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-only_specifically_formatted_numbers_are_allowed_1_4.ids b/Documentation/testcases/fail-only_specifically_formatted_numbers_are_allowed_1_4.ids new file mode 100644 index 0000000..9fa3d53 --- /dev/null +++ b/Documentation/testcases/fail-only_specifically_formatted_numbers_are_allowed_1_4.ids @@ -0,0 +1,26 @@ + + + Only specifically formatted numbers are allowed 1/4 + + + + + + + IfcSurfaceStyleRefraction + + + + + + + RefractionIndex + + + 42,3 + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-only_specifically_formatted_numbers_are_allowed_1_4.ifc b/Documentation/testcases/fail-only_specifically_formatted_numbers_are_allowed_1_4.ifc new file mode 100644 index 0000000..fabbece --- /dev/null +++ b/Documentation/testcases/fail-only_specifically_formatted_numbers_are_allowed_1_4.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCSURFACESTYLEREFRACTION(42.3,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-only_specifically_formatted_numbers_are_allowed_2_4.ids b/Documentation/testcases/fail-only_specifically_formatted_numbers_are_allowed_2_4.ids new file mode 100644 index 0000000..1ecb623 --- /dev/null +++ b/Documentation/testcases/fail-only_specifically_formatted_numbers_are_allowed_2_4.ids @@ -0,0 +1,26 @@ + + + Only specifically formatted numbers are allowed 2/4 + + + + + + + IfcSurfaceStyleRefraction + + + + + + + RefractionIndex + + + 123,4.5 + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-only_specifically_formatted_numbers_are_allowed_2_4.ifc b/Documentation/testcases/fail-only_specifically_formatted_numbers_are_allowed_2_4.ifc new file mode 100644 index 0000000..26751b5 --- /dev/null +++ b/Documentation/testcases/fail-only_specifically_formatted_numbers_are_allowed_2_4.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCSURFACESTYLEREFRACTION(1234.5,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-restrictions_an_be_specified_for_the_predefined_type_3_3.ids b/Documentation/testcases/fail-restrictions_an_be_specified_for_the_predefined_type_3_3.ids new file mode 100644 index 0000000..a8bbf55 --- /dev/null +++ b/Documentation/testcases/fail-restrictions_an_be_specified_for_the_predefined_type_3_3.ids @@ -0,0 +1,28 @@ + + + Restrictions an be specified for the predefined type 3/3 + + + + + + + IfcWall + + + + + + + IFCWALL + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-restrictions_an_be_specified_for_the_predefined_type_3_3.ifc b/Documentation/testcases/fail-restrictions_an_be_specified_for_the_predefined_type_3_3.ifc new file mode 100644 index 0000000..2af8875 --- /dev/null +++ b/Documentation/testcases/fail-restrictions_an_be_specified_for_the_predefined_type_3_3.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('0hsNJQacT3iwFeJmHBH_XL',$,$,$,'BAZFOO',$,$,$,.USERDEFINED.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-restrictions_can_be_used_for_systems_1_2.ids b/Documentation/testcases/fail-restrictions_can_be_used_for_systems_1_2.ids new file mode 100644 index 0000000..9b353ef --- /dev/null +++ b/Documentation/testcases/fail-restrictions_can_be_used_for_systems_1_2.ids @@ -0,0 +1,25 @@ + + + Restrictions can be used for systems 1/2 + + + + + + + IfcWall + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-restrictions_can_be_used_for_systems_1_2.ifc b/Documentation/testcases/fail-restrictions_can_be_used_for_systems_1_2.ifc new file mode 100644 index 0000000..6cfdd0f --- /dev/null +++ b/Documentation/testcases/fail-restrictions_can_be_used_for_systems_1_2.ifc @@ -0,0 +1,23 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-restrictions_can_be_used_for_values_3_3.ids b/Documentation/testcases/fail-restrictions_can_be_used_for_values_3_3.ids new file mode 100644 index 0000000..8d72100 --- /dev/null +++ b/Documentation/testcases/fail-restrictions_can_be_used_for_values_3_3.ids @@ -0,0 +1,25 @@ + + + Restrictions can be used for values 3/3 + + + + + + + IfcWall + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-restrictions_can_be_used_for_values_3_3.ifc b/Documentation/testcases/fail-restrictions_can_be_used_for_values_3_3.ifc new file mode 100644 index 0000000..6cfdd0f --- /dev/null +++ b/Documentation/testcases/fail-restrictions_can_be_used_for_values_3_3.ifc @@ -0,0 +1,23 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-subclasses_are_not_considered_as_matching.ids b/Documentation/testcases/fail-subclasses_are_not_considered_as_matching.ids new file mode 100644 index 0000000..1810f18 --- /dev/null +++ b/Documentation/testcases/fail-subclasses_are_not_considered_as_matching.ids @@ -0,0 +1,23 @@ + + + Subclasses are not considered as matching + + + + + + + IfcWallStandardCase + + + + + + + IFCWALL + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-subclasses_are_not_considered_as_matching.ifc b/Documentation/testcases/fail-subclasses_are_not_considered_as_matching.ifc new file mode 100644 index 0000000..1c28b22 --- /dev/null +++ b/Documentation/testcases/fail-subclasses_are_not_considered_as_matching.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALLSTANDARDCASE('1lg8oDVpf0KuarRewjGUIv',$,$,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-systems_should_match_exactly_2_5.ids b/Documentation/testcases/fail-systems_should_match_exactly_2_5.ids new file mode 100644 index 0000000..bbee093 --- /dev/null +++ b/Documentation/testcases/fail-systems_should_match_exactly_2_5.ids @@ -0,0 +1,23 @@ + + + Systems should match exactly 2/5 + + + + + + + IfcWall + + + + + + + Foobar + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-systems_should_match_exactly_2_5.ifc b/Documentation/testcases/fail-systems_should_match_exactly_2_5.ifc new file mode 100644 index 0000000..6cfdd0f --- /dev/null +++ b/Documentation/testcases/fail-systems_should_match_exactly_2_5.ifc @@ -0,0 +1,23 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-user_defined_types_are_checked_case_sensitively.ids b/Documentation/testcases/fail-user_defined_types_are_checked_case_sensitively.ids new file mode 100644 index 0000000..76812a3 --- /dev/null +++ b/Documentation/testcases/fail-user_defined_types_are_checked_case_sensitively.ids @@ -0,0 +1,26 @@ + + + User-defined types are checked case sensitively + + + + + + + IfcWall + + + + + + + IFCWALL + + + WALDO + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-user_defined_types_are_checked_case_sensitively.ifc b/Documentation/testcases/fail-user_defined_types_are_checked_case_sensitively.ifc new file mode 100644 index 0000000..f00df76 --- /dev/null +++ b/Documentation/testcases/fail-user_defined_types_are_checked_case_sensitively.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('2ecfUPMe1BN87v6P0rBzjT',$,$,$,'waldo',$,$,$,.USERDEFINED.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-value_checks_always_fail_for_lists.ids b/Documentation/testcases/fail-value_checks_always_fail_for_lists.ids new file mode 100644 index 0000000..7cc86a2 --- /dev/null +++ b/Documentation/testcases/fail-value_checks_always_fail_for_lists.ids @@ -0,0 +1,26 @@ + + + Value checks always fail for lists + + + + + + + IfcCartesianPoint + + + + + + + Coordinates + + + Foobar + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-value_checks_always_fail_for_lists.ifc b/Documentation/testcases/fail-value_checks_always_fail_for_lists.ifc new file mode 100644 index 0000000..031622f --- /dev/null +++ b/Documentation/testcases/fail-value_checks_always_fail_for_lists.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCCARTESIANPOINT((0.,0.,0.)); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-value_checks_always_fail_for_objects.ids b/Documentation/testcases/fail-value_checks_always_fail_for_objects.ids new file mode 100644 index 0000000..45fe240 --- /dev/null +++ b/Documentation/testcases/fail-value_checks_always_fail_for_objects.ids @@ -0,0 +1,26 @@ + + + Value checks always fail for objects + + + + + + + IfcTask + + + + + + + TaskTime + + + Foobar + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-value_checks_always_fail_for_objects.ifc b/Documentation/testcases/fail-value_checks_always_fail_for_objects.ifc new file mode 100644 index 0000000..a417796 --- /dev/null +++ b/Documentation/testcases/fail-value_checks_always_fail_for_objects.ifc @@ -0,0 +1,11 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCTASKTIME($,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$); +#2=IFCTASK('1Lr183iRb6ERi3XZOe1UNs',$,$,$,$,$,$,$,$,.F.,$,#1,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-value_checks_always_fail_for_selects.ids b/Documentation/testcases/fail-value_checks_always_fail_for_selects.ids new file mode 100644 index 0000000..a9d34eb --- /dev/null +++ b/Documentation/testcases/fail-value_checks_always_fail_for_selects.ids @@ -0,0 +1,26 @@ + + + Value checks always fail for selects + + + + + + + IfcSurfaceStyleRendering + + + + + + + DiffuseColour + + + Foobar + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-value_checks_always_fail_for_selects.ifc b/Documentation/testcases/fail-value_checks_always_fail_for_selects.ifc new file mode 100644 index 0000000..7e64f06 --- /dev/null +++ b/Documentation/testcases/fail-value_checks_always_fail_for_selects.ifc @@ -0,0 +1,11 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCCOLOURRGB($,1.,1.,1.); +#2=IFCSURFACESTYLERENDERING(#1,$,IFCNORMALISEDRATIOMEASURE(0.5),$,$,$,$,$,.FLAT.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/fail-value_restrictions_may_be_used_3_3.ids b/Documentation/testcases/fail-value_restrictions_may_be_used_3_3.ids new file mode 100644 index 0000000..9e2ee3a --- /dev/null +++ b/Documentation/testcases/fail-value_restrictions_may_be_used_3_3.ids @@ -0,0 +1,29 @@ + + + Value restrictions may be used 3/3 + + + + + + + IfcWall + + + + + + + Name + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/fail-value_restrictions_may_be_used_3_3.ifc b/Documentation/testcases/fail-value_restrictions_may_be_used_3_3.ifc new file mode 100644 index 0000000..19fade4 --- /dev/null +++ b/Documentation/testcases/fail-value_restrictions_may_be_used_3_3.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('3X4IAIg1b0ew5qfS4Nyd$9',$,'Foobar',$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-a_classification_facet_with_no_data_matches_any_classification_2_2.ids b/Documentation/testcases/pass-a_classification_facet_with_no_data_matches_any_classification_2_2.ids new file mode 100644 index 0000000..a0735ea --- /dev/null +++ b/Documentation/testcases/pass-a_classification_facet_with_no_data_matches_any_classification_2_2.ids @@ -0,0 +1,19 @@ + + + A classification facet with no data matches any classification 2/2 + + + + + + + IfcWall + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-a_classification_facet_with_no_data_matches_any_classification_2_2.ifc b/Documentation/testcases/pass-a_classification_facet_with_no_data_matches_any_classification_2_2.ifc new file mode 100644 index 0000000..6cfdd0f --- /dev/null +++ b/Documentation/testcases/pass-a_classification_facet_with_no_data_matches_any_classification_2_2.ifc @@ -0,0 +1,23 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-a_matching_entity_should_pass.ids b/Documentation/testcases/pass-a_matching_entity_should_pass.ids new file mode 100644 index 0000000..2fd6548 --- /dev/null +++ b/Documentation/testcases/pass-a_matching_entity_should_pass.ids @@ -0,0 +1,23 @@ + + + A matching entity should pass + + + + + + + IfcWall + + + + + + + IFCWALL + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-a_matching_entity_should_pass.ifc b/Documentation/testcases/pass-a_matching_entity_should_pass.ifc new file mode 100644 index 0000000..5f9cec2 --- /dev/null +++ b/Documentation/testcases/pass-a_matching_entity_should_pass.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1yTM9eiGX5jx7gpHqwcmKe',$,$,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-a_matching_predefined_type_should_pass.ids b/Documentation/testcases/pass-a_matching_predefined_type_should_pass.ids new file mode 100644 index 0000000..c41d111 --- /dev/null +++ b/Documentation/testcases/pass-a_matching_predefined_type_should_pass.ids @@ -0,0 +1,26 @@ + + + A matching predefined type should pass + + + + + + + IfcWall + + + + + + + IFCWALL + + + SOLIDWALL + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-a_matching_predefined_type_should_pass.ifc b/Documentation/testcases/pass-a_matching_predefined_type_should_pass.ifc new file mode 100644 index 0000000..22bc8f8 --- /dev/null +++ b/Documentation/testcases/pass-a_matching_predefined_type_should_pass.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('3QxiEep1970RjLzhHenAlw',$,$,$,$,$,$,$,.SOLIDWALL.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-a_material_category_may_pass_the_value_check.ids b/Documentation/testcases/pass-a_material_category_may_pass_the_value_check.ids new file mode 100644 index 0000000..697d8dd --- /dev/null +++ b/Documentation/testcases/pass-a_material_category_may_pass_the_value_check.ids @@ -0,0 +1,23 @@ + + + A material category may pass the value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-a_material_category_may_pass_the_value_check.ifc b/Documentation/testcases/pass-a_material_category_may_pass_the_value_check.ifc new file mode 100644 index 0000000..12b0f24 --- /dev/null +++ b/Documentation/testcases/pass-a_material_category_may_pass_the_value_check.ifc @@ -0,0 +1,12 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1em2VWxjf4zxD7PPG$LyES',$,$,$,$,$,$,$,$); +#2=IFCMATERIAL('Bar',$,'Foo'); +#3=IFCRELASSOCIATESMATERIAL('3lmYeYTFLCJwGVRHp8NAr9',$,$,$,(#1),#2); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-a_material_name_may_pass_the_value_check.ids b/Documentation/testcases/pass-a_material_name_may_pass_the_value_check.ids new file mode 100644 index 0000000..72cd346 --- /dev/null +++ b/Documentation/testcases/pass-a_material_name_may_pass_the_value_check.ids @@ -0,0 +1,23 @@ + + + A material name may pass the value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-a_material_name_may_pass_the_value_check.ifc b/Documentation/testcases/pass-a_material_name_may_pass_the_value_check.ifc new file mode 100644 index 0000000..60fa2d4 --- /dev/null +++ b/Documentation/testcases/pass-a_material_name_may_pass_the_value_check.ifc @@ -0,0 +1,12 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1em2VWxjf4zxD7PPG$LyES',$,$,$,$,$,$,$,$); +#2=IFCMATERIAL('Foo',$,$); +#3=IFCRELASSOCIATESMATERIAL('3lmYeYTFLCJwGVRHp8NAr9',$,$,$,(#1),#2); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_element_type.ids b/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_element_type.ids new file mode 100644 index 0000000..e489803 --- /dev/null +++ b/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_element_type.ids @@ -0,0 +1,26 @@ + + + A predefined type may specify a user-defined element type + + + + + + + IfcWallType + + + + + + + IFCWALLTYPE + + + WALDO + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_element_type.ifc b/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_element_type.ifc new file mode 100644 index 0000000..6a8c8c5 --- /dev/null +++ b/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_element_type.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALLTYPE('3FSPLBZF93nAHg4xE3mSNS',$,$,$,$,$,$,$,'WALDO',.USERDEFINED.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_object_type.ids b/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_object_type.ids new file mode 100644 index 0000000..86fb311 --- /dev/null +++ b/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_object_type.ids @@ -0,0 +1,26 @@ + + + A predefined type may specify a user-defined object type + + + + + + + IfcWall + + + + + + + IFCWALL + + + WALDO + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_object_type.ifc b/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_object_type.ifc new file mode 100644 index 0000000..c73e2c8 --- /dev/null +++ b/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_object_type.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1IayCfZI12fvRCC4G1j36c',$,$,$,'WALDO',$,$,$,.USERDEFINED.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_process_type.ids b/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_process_type.ids new file mode 100644 index 0000000..318e0d3 --- /dev/null +++ b/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_process_type.ids @@ -0,0 +1,26 @@ + + + A predefined type may specify a user-defined process type + + + + + + + IfcTaskType + + + + + + + IFCTASKTYPE + + + TASKY + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_process_type.ifc b/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_process_type.ifc new file mode 100644 index 0000000..e50e781 --- /dev/null +++ b/Documentation/testcases/pass-a_predefined_type_may_specify_a_user_defined_process_type.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCTASKTYPE('180B8D4KbFXfFN35aUwF0v',$,$,$,$,$,$,$,'TASKY',.USERDEFINED.,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-an_matching_entity_should_pass_regardless_of_predefined_type.ids b/Documentation/testcases/pass-an_matching_entity_should_pass_regardless_of_predefined_type.ids new file mode 100644 index 0000000..9cacb76 --- /dev/null +++ b/Documentation/testcases/pass-an_matching_entity_should_pass_regardless_of_predefined_type.ids @@ -0,0 +1,23 @@ + + + An matching entity should pass regardless of predefined type + + + + + + + IfcWall + + + + + + + IFCWALL + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-an_matching_entity_should_pass_regardless_of_predefined_type.ifc b/Documentation/testcases/pass-an_matching_entity_should_pass_regardless_of_predefined_type.ifc new file mode 100644 index 0000000..9b41b1f --- /dev/null +++ b/Documentation/testcases/pass-an_matching_entity_should_pass_regardless_of_predefined_type.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('0DPnCjnmD6_AfI6sLoNhus',$,$,$,$,$,$,$,.SOLIDWALL.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-any_constituent_category_in_a_constituent_set_will_pass_a_value_check.ids b/Documentation/testcases/pass-any_constituent_category_in_a_constituent_set_will_pass_a_value_check.ids new file mode 100644 index 0000000..6a82039 --- /dev/null +++ b/Documentation/testcases/pass-any_constituent_category_in_a_constituent_set_will_pass_a_value_check.ids @@ -0,0 +1,23 @@ + + + Any constituent Category in a constituent set will pass a value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-any_constituent_category_in_a_constituent_set_will_pass_a_value_check.ifc b/Documentation/testcases/pass-any_constituent_category_in_a_constituent_set_will_pass_a_value_check.ifc new file mode 100644 index 0000000..c04716c --- /dev/null +++ b/Documentation/testcases/pass-any_constituent_category_in_a_constituent_set_will_pass_a_value_check.ifc @@ -0,0 +1,14 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('2oqKSSmgb4CeCgipXo778i',$,$,$,$,$,$,$,$); +#2=IFCMATERIALCONSTITUENTSET('Unnamed',$,(#5)); +#3=IFCRELASSOCIATESMATERIAL('2bvf5Lr5r1hewzJePZxXYH',$,$,$,(#1),#2); +#4=IFCMATERIAL('Unnamed',$,$); +#5=IFCMATERIALCONSTITUENT('Bar',$,#4,$,'Foo'); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-any_constituent_name_in_a_constituent_set_will_pass_a_value_check.ids b/Documentation/testcases/pass-any_constituent_name_in_a_constituent_set_will_pass_a_value_check.ids new file mode 100644 index 0000000..883659c --- /dev/null +++ b/Documentation/testcases/pass-any_constituent_name_in_a_constituent_set_will_pass_a_value_check.ids @@ -0,0 +1,23 @@ + + + Any constituent Name in a constituent set will pass a value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-any_constituent_name_in_a_constituent_set_will_pass_a_value_check.ifc b/Documentation/testcases/pass-any_constituent_name_in_a_constituent_set_will_pass_a_value_check.ifc new file mode 100644 index 0000000..cbae5b5 --- /dev/null +++ b/Documentation/testcases/pass-any_constituent_name_in_a_constituent_set_will_pass_a_value_check.ifc @@ -0,0 +1,14 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('2oqKSSmgb4CeCgipXo778i',$,$,$,$,$,$,$,$); +#2=IFCMATERIALCONSTITUENTSET('Unnamed',$,(#5)); +#3=IFCRELASSOCIATESMATERIAL('2bvf5Lr5r1hewzJePZxXYH',$,$,$,(#1),#2); +#4=IFCMATERIAL('Unnamed',$,$); +#5=IFCMATERIALCONSTITUENT('Foo',$,#4,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-any_layer_category_in_a_layer_set_will_pass_a_value_check.ids b/Documentation/testcases/pass-any_layer_category_in_a_layer_set_will_pass_a_value_check.ids new file mode 100644 index 0000000..582c234 --- /dev/null +++ b/Documentation/testcases/pass-any_layer_category_in_a_layer_set_will_pass_a_value_check.ids @@ -0,0 +1,23 @@ + + + Any layer Category in a layer set will pass a value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-any_layer_category_in_a_layer_set_will_pass_a_value_check.ifc b/Documentation/testcases/pass-any_layer_category_in_a_layer_set_will_pass_a_value_check.ifc new file mode 100644 index 0000000..5d1a9da --- /dev/null +++ b/Documentation/testcases/pass-any_layer_category_in_a_layer_set_will_pass_a_value_check.ifc @@ -0,0 +1,14 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('2quRyIlUb0fPcaBukBmxJl',$,$,$,$,$,$,$,$); +#2=IFCMATERIALLAYERSET((#5),'Unnamed',$); +#3=IFCRELASSOCIATESMATERIAL('0aqphv5nX4RPnWE0EEcl3_',$,$,$,(#1),#2); +#4=IFCMATERIAL('Unnamed',$,$); +#5=IFCMATERIALLAYER(#4,1.,$,'Bar',$,'Foo',$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-any_layer_name_in_a_layer_set_will_pass_a_value_check.ids b/Documentation/testcases/pass-any_layer_name_in_a_layer_set_will_pass_a_value_check.ids new file mode 100644 index 0000000..25ee348 --- /dev/null +++ b/Documentation/testcases/pass-any_layer_name_in_a_layer_set_will_pass_a_value_check.ids @@ -0,0 +1,23 @@ + + + Any layer Name in a layer set will pass a value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-any_layer_name_in_a_layer_set_will_pass_a_value_check.ifc b/Documentation/testcases/pass-any_layer_name_in_a_layer_set_will_pass_a_value_check.ifc new file mode 100644 index 0000000..09af423 --- /dev/null +++ b/Documentation/testcases/pass-any_layer_name_in_a_layer_set_will_pass_a_value_check.ifc @@ -0,0 +1,14 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('2quRyIlUb0fPcaBukBmxJl',$,$,$,$,$,$,$,$); +#2=IFCMATERIALLAYERSET((#5),'Unnamed',$); +#3=IFCRELASSOCIATESMATERIAL('0aqphv5nX4RPnWE0EEcl3_',$,$,$,(#1),#2); +#4=IFCMATERIAL('Unnamed',$,$); +#5=IFCMATERIALLAYER(#4,1.,$,'Foo',$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-any_material_category_in_a_constituent_set_will_pass_a_value_check.ids b/Documentation/testcases/pass-any_material_category_in_a_constituent_set_will_pass_a_value_check.ids new file mode 100644 index 0000000..8004f4f --- /dev/null +++ b/Documentation/testcases/pass-any_material_category_in_a_constituent_set_will_pass_a_value_check.ids @@ -0,0 +1,23 @@ + + + Any material Category in a constituent set will pass a value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-any_material_category_in_a_constituent_set_will_pass_a_value_check.ifc b/Documentation/testcases/pass-any_material_category_in_a_constituent_set_will_pass_a_value_check.ifc new file mode 100644 index 0000000..ef0a122 --- /dev/null +++ b/Documentation/testcases/pass-any_material_category_in_a_constituent_set_will_pass_a_value_check.ifc @@ -0,0 +1,14 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('2oqKSSmgb4CeCgipXo778i',$,$,$,$,$,$,$,$); +#2=IFCMATERIALCONSTITUENTSET('Unnamed',$,(#5)); +#3=IFCRELASSOCIATESMATERIAL('2bvf5Lr5r1hewzJePZxXYH',$,$,$,(#1),#2); +#4=IFCMATERIAL('Bar',$,'Foo'); +#5=IFCMATERIALCONSTITUENT('Bar',$,#4,$,'Bar'); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-any_material_category_in_a_layer_set_will_pass_a_value_check.ids b/Documentation/testcases/pass-any_material_category_in_a_layer_set_will_pass_a_value_check.ids new file mode 100644 index 0000000..c280716 --- /dev/null +++ b/Documentation/testcases/pass-any_material_category_in_a_layer_set_will_pass_a_value_check.ids @@ -0,0 +1,23 @@ + + + Any material Category in a layer set will pass a value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-any_material_category_in_a_layer_set_will_pass_a_value_check.ifc b/Documentation/testcases/pass-any_material_category_in_a_layer_set_will_pass_a_value_check.ifc new file mode 100644 index 0000000..3449e44 --- /dev/null +++ b/Documentation/testcases/pass-any_material_category_in_a_layer_set_will_pass_a_value_check.ifc @@ -0,0 +1,14 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('2quRyIlUb0fPcaBukBmxJl',$,$,$,$,$,$,$,$); +#2=IFCMATERIALLAYERSET((#5),'Unnamed',$); +#3=IFCRELASSOCIATESMATERIAL('0aqphv5nX4RPnWE0EEcl3_',$,$,$,(#1),#2); +#4=IFCMATERIAL('Bar',$,'Foo'); +#5=IFCMATERIALLAYER(#4,1.,$,'Bar',$,'Bar',$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-any_material_category_in_a_list_will_pass_a_value_check.ids b/Documentation/testcases/pass-any_material_category_in_a_list_will_pass_a_value_check.ids new file mode 100644 index 0000000..4a7be94 --- /dev/null +++ b/Documentation/testcases/pass-any_material_category_in_a_list_will_pass_a_value_check.ids @@ -0,0 +1,23 @@ + + + Any material Category in a list will pass a value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-any_material_category_in_a_list_will_pass_a_value_check.ifc b/Documentation/testcases/pass-any_material_category_in_a_list_will_pass_a_value_check.ifc new file mode 100644 index 0000000..7f5aaf9 --- /dev/null +++ b/Documentation/testcases/pass-any_material_category_in_a_list_will_pass_a_value_check.ifc @@ -0,0 +1,14 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1dqvUEztf3jhc6fvY3AFcb',$,$,$,$,$,$,$,$); +#2=IFCMATERIALLIST((#4,#5)); +#3=IFCRELASSOCIATESMATERIAL('3_4Xvwfsf06hLK3HtrNnQu',$,$,$,(#1),#2); +#4=IFCMATERIAL('Concrete',$,'CONCRETE'); +#5=IFCMATERIAL('Bar',$,'Foo'); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-any_material_category_in_a_profile_set_will_pass_a_value_check.ids b/Documentation/testcases/pass-any_material_category_in_a_profile_set_will_pass_a_value_check.ids new file mode 100644 index 0000000..4ddf947 --- /dev/null +++ b/Documentation/testcases/pass-any_material_category_in_a_profile_set_will_pass_a_value_check.ids @@ -0,0 +1,23 @@ + + + Any material category in a profile set will pass a value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-any_material_category_in_a_profile_set_will_pass_a_value_check.ifc b/Documentation/testcases/pass-any_material_category_in_a_profile_set_will_pass_a_value_check.ifc new file mode 100644 index 0000000..ff8dfd5 --- /dev/null +++ b/Documentation/testcases/pass-any_material_category_in_a_profile_set_will_pass_a_value_check.ifc @@ -0,0 +1,15 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1CZWmiPG95i8AwlC2QL1ZA',$,$,$,$,$,$,$,$); +#2=IFCMATERIALPROFILESET('Unnamed',$,(#5),$); +#3=IFCRELASSOCIATESMATERIAL('3KD8$objHEmOWreIypgbxE',$,$,$,(#1),#2); +#4=IFCMATERIAL('Bar',$,'Foo'); +#5=IFCMATERIALPROFILE('Bar',$,#4,#6,$,'Bar'); +#6=IFCCIRCLEPROFILEDEF(.AREA.,$,$,1.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-any_material_name_in_a_constituent_set_will_pass_a_value_check.ids b/Documentation/testcases/pass-any_material_name_in_a_constituent_set_will_pass_a_value_check.ids new file mode 100644 index 0000000..ef304e7 --- /dev/null +++ b/Documentation/testcases/pass-any_material_name_in_a_constituent_set_will_pass_a_value_check.ids @@ -0,0 +1,23 @@ + + + Any material Name in a constituent set will pass a value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-any_material_name_in_a_constituent_set_will_pass_a_value_check.ifc b/Documentation/testcases/pass-any_material_name_in_a_constituent_set_will_pass_a_value_check.ifc new file mode 100644 index 0000000..f0258a3 --- /dev/null +++ b/Documentation/testcases/pass-any_material_name_in_a_constituent_set_will_pass_a_value_check.ifc @@ -0,0 +1,14 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('2oqKSSmgb4CeCgipXo778i',$,$,$,$,$,$,$,$); +#2=IFCMATERIALCONSTITUENTSET('Unnamed',$,(#5)); +#3=IFCRELASSOCIATESMATERIAL('2bvf5Lr5r1hewzJePZxXYH',$,$,$,(#1),#2); +#4=IFCMATERIAL('Foo',$,$); +#5=IFCMATERIALCONSTITUENT('Bar',$,#4,$,'Bar'); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-any_material_name_in_a_layer_set_will_pass_a_value_check.ids b/Documentation/testcases/pass-any_material_name_in_a_layer_set_will_pass_a_value_check.ids new file mode 100644 index 0000000..87bbcd1 --- /dev/null +++ b/Documentation/testcases/pass-any_material_name_in_a_layer_set_will_pass_a_value_check.ids @@ -0,0 +1,23 @@ + + + Any material Name in a layer set will pass a value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-any_material_name_in_a_layer_set_will_pass_a_value_check.ifc b/Documentation/testcases/pass-any_material_name_in_a_layer_set_will_pass_a_value_check.ifc new file mode 100644 index 0000000..18cea13 --- /dev/null +++ b/Documentation/testcases/pass-any_material_name_in_a_layer_set_will_pass_a_value_check.ifc @@ -0,0 +1,14 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('2quRyIlUb0fPcaBukBmxJl',$,$,$,$,$,$,$,$); +#2=IFCMATERIALLAYERSET((#5),'Unnamed',$); +#3=IFCRELASSOCIATESMATERIAL('0aqphv5nX4RPnWE0EEcl3_',$,$,$,(#1),#2); +#4=IFCMATERIAL('Foo',$,$); +#5=IFCMATERIALLAYER(#4,1.,$,'Bar',$,'Bar',$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-any_material_name_in_a_list_will_pass_a_value_check.ids b/Documentation/testcases/pass-any_material_name_in_a_list_will_pass_a_value_check.ids new file mode 100644 index 0000000..d69c1b0 --- /dev/null +++ b/Documentation/testcases/pass-any_material_name_in_a_list_will_pass_a_value_check.ids @@ -0,0 +1,23 @@ + + + Any material Name in a list will pass a value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-any_material_name_in_a_list_will_pass_a_value_check.ifc b/Documentation/testcases/pass-any_material_name_in_a_list_will_pass_a_value_check.ifc new file mode 100644 index 0000000..f8fa4e0 --- /dev/null +++ b/Documentation/testcases/pass-any_material_name_in_a_list_will_pass_a_value_check.ifc @@ -0,0 +1,14 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1dqvUEztf3jhc6fvY3AFcb',$,$,$,$,$,$,$,$); +#2=IFCMATERIALLIST((#4,#5)); +#3=IFCRELASSOCIATESMATERIAL('3_4Xvwfsf06hLK3HtrNnQu',$,$,$,(#1),#2); +#4=IFCMATERIAL('Concrete',$,'CONCRETE'); +#5=IFCMATERIAL('Foo',$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-any_material_name_in_a_profile_set_will_pass_a_value_check.ids b/Documentation/testcases/pass-any_material_name_in_a_profile_set_will_pass_a_value_check.ids new file mode 100644 index 0000000..9364cd9 --- /dev/null +++ b/Documentation/testcases/pass-any_material_name_in_a_profile_set_will_pass_a_value_check.ids @@ -0,0 +1,23 @@ + + + Any material Name in a profile set will pass a value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-any_material_name_in_a_profile_set_will_pass_a_value_check.ifc b/Documentation/testcases/pass-any_material_name_in_a_profile_set_will_pass_a_value_check.ifc new file mode 100644 index 0000000..daf84e3 --- /dev/null +++ b/Documentation/testcases/pass-any_material_name_in_a_profile_set_will_pass_a_value_check.ifc @@ -0,0 +1,15 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1CZWmiPG95i8AwlC2QL1ZA',$,$,$,$,$,$,$,$); +#2=IFCMATERIALPROFILESET('Unnamed',$,(#5),$); +#3=IFCRELASSOCIATESMATERIAL('3KD8$objHEmOWreIypgbxE',$,$,$,(#1),#2); +#4=IFCMATERIAL('Foo',$,$); +#5=IFCMATERIALPROFILE('Bar',$,#4,#6,$,'Bar'); +#6=IFCCIRCLEPROFILEDEF(.AREA.,$,$,1.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-any_profile_category_in_a_profile_set_will_pass_a_value_check.ids b/Documentation/testcases/pass-any_profile_category_in_a_profile_set_will_pass_a_value_check.ids new file mode 100644 index 0000000..8e572cf --- /dev/null +++ b/Documentation/testcases/pass-any_profile_category_in_a_profile_set_will_pass_a_value_check.ids @@ -0,0 +1,23 @@ + + + Any profile Category in a profile set will pass a value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-any_profile_category_in_a_profile_set_will_pass_a_value_check.ifc b/Documentation/testcases/pass-any_profile_category_in_a_profile_set_will_pass_a_value_check.ifc new file mode 100644 index 0000000..38accba --- /dev/null +++ b/Documentation/testcases/pass-any_profile_category_in_a_profile_set_will_pass_a_value_check.ifc @@ -0,0 +1,15 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1CZWmiPG95i8AwlC2QL1ZA',$,$,$,$,$,$,$,$); +#2=IFCMATERIALPROFILESET('Unnamed',$,(#5),$); +#3=IFCRELASSOCIATESMATERIAL('3KD8$objHEmOWreIypgbxE',$,$,$,(#1),#2); +#4=IFCMATERIAL('Unnamed',$,$); +#5=IFCMATERIALPROFILE('Bar',$,#4,#6,$,'Foo'); +#6=IFCCIRCLEPROFILEDEF(.AREA.,$,$,1.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-any_profile_name_in_a_profile_set_will_pass_a_value_check.ids b/Documentation/testcases/pass-any_profile_name_in_a_profile_set_will_pass_a_value_check.ids new file mode 100644 index 0000000..5ada4e0 --- /dev/null +++ b/Documentation/testcases/pass-any_profile_name_in_a_profile_set_will_pass_a_value_check.ids @@ -0,0 +1,23 @@ + + + Any profile Name in a profile set will pass a value check + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-any_profile_name_in_a_profile_set_will_pass_a_value_check.ifc b/Documentation/testcases/pass-any_profile_name_in_a_profile_set_will_pass_a_value_check.ifc new file mode 100644 index 0000000..03e039e --- /dev/null +++ b/Documentation/testcases/pass-any_profile_name_in_a_profile_set_will_pass_a_value_check.ifc @@ -0,0 +1,15 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1CZWmiPG95i8AwlC2QL1ZA',$,$,$,$,$,$,$,$); +#2=IFCMATERIALPROFILESET('Unnamed',$,(#5),$); +#3=IFCRELASSOCIATESMATERIAL('3KD8$objHEmOWreIypgbxE',$,$,$,(#1),#2); +#4=IFCMATERIAL('Unnamed',$,$); +#5=IFCMATERIALPROFILE('Foo',$,#4,#6,$,$); +#6=IFCCIRCLEPROFILEDEF(.AREA.,$,$,1.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-attributes_referencing_an_object_should_pass.ids b/Documentation/testcases/pass-attributes_referencing_an_object_should_pass.ids new file mode 100644 index 0000000..e043b23 --- /dev/null +++ b/Documentation/testcases/pass-attributes_referencing_an_object_should_pass.ids @@ -0,0 +1,23 @@ + + + Attributes referencing an object should pass + + + + + + + IfcTask + + + + + + + TaskTime + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-attributes_referencing_an_object_should_pass.ifc b/Documentation/testcases/pass-attributes_referencing_an_object_should_pass.ifc new file mode 100644 index 0000000..0986f35 --- /dev/null +++ b/Documentation/testcases/pass-attributes_referencing_an_object_should_pass.ifc @@ -0,0 +1,11 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCTASKTIME($,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$); +#2=IFCTASK('00d1dXChr3j9_KEFWuoBWP',$,$,$,$,$,$,$,$,.T.,$,#1,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-attributes_should_check_strings_case_sensitively_1_2.ids b/Documentation/testcases/pass-attributes_should_check_strings_case_sensitively_1_2.ids new file mode 100644 index 0000000..13cfea1 --- /dev/null +++ b/Documentation/testcases/pass-attributes_should_check_strings_case_sensitively_1_2.ids @@ -0,0 +1,26 @@ + + + Attributes should check strings case sensitively 1/2 + + + + + + + IfcWall + + + + + + + Name + + + Foobar + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-attributes_should_check_strings_case_sensitively_1_2.ifc b/Documentation/testcases/pass-attributes_should_check_strings_case_sensitively_1_2.ifc new file mode 100644 index 0000000..961a017 --- /dev/null +++ b/Documentation/testcases/pass-attributes_should_check_strings_case_sensitively_1_2.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('09XSeyWSD1gfgYNYWfWOT7',$,'Foobar',$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-attributes_with_a_boolean_false_should_pass.ids b/Documentation/testcases/pass-attributes_with_a_boolean_false_should_pass.ids new file mode 100644 index 0000000..324dc10 --- /dev/null +++ b/Documentation/testcases/pass-attributes_with_a_boolean_false_should_pass.ids @@ -0,0 +1,23 @@ + + + Attributes with a boolean false should pass + + + + + + + IfcTaskTime + + + + + + + IsCritical + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-attributes_with_a_boolean_false_should_pass.ifc b/Documentation/testcases/pass-attributes_with_a_boolean_false_should_pass.ifc new file mode 100644 index 0000000..bd6916a --- /dev/null +++ b/Documentation/testcases/pass-attributes_with_a_boolean_false_should_pass.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCTASKTIME($,$,$,$,$,$,$,$,$,$,$,$,$,.F.,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-attributes_with_a_boolean_true_should_pass.ids b/Documentation/testcases/pass-attributes_with_a_boolean_true_should_pass.ids new file mode 100644 index 0000000..1227a87 --- /dev/null +++ b/Documentation/testcases/pass-attributes_with_a_boolean_true_should_pass.ids @@ -0,0 +1,23 @@ + + + Attributes with a boolean true should pass + + + + + + + IfcTaskTime + + + + + + + IsCritical + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-attributes_with_a_boolean_true_should_pass.ifc b/Documentation/testcases/pass-attributes_with_a_boolean_true_should_pass.ifc new file mode 100644 index 0000000..df13a4b --- /dev/null +++ b/Documentation/testcases/pass-attributes_with_a_boolean_true_should_pass.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCTASKTIME($,$,$,$,$,$,$,$,$,$,$,$,$,.T.,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-attributes_with_a_select_referencing_a_primitive_should_pass.ids b/Documentation/testcases/pass-attributes_with_a_select_referencing_a_primitive_should_pass.ids new file mode 100644 index 0000000..1876dce --- /dev/null +++ b/Documentation/testcases/pass-attributes_with_a_select_referencing_a_primitive_should_pass.ids @@ -0,0 +1,23 @@ + + + Attributes with a select referencing a primitive should pass + + + + + + + IfcSurfaceStyleRendering + + + + + + + DiffuseColour + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-attributes_with_a_select_referencing_a_primitive_should_pass.ifc b/Documentation/testcases/pass-attributes_with_a_select_referencing_a_primitive_should_pass.ifc new file mode 100644 index 0000000..7e64f06 --- /dev/null +++ b/Documentation/testcases/pass-attributes_with_a_select_referencing_a_primitive_should_pass.ifc @@ -0,0 +1,11 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCCOLOURRGB($,1.,1.,1.); +#2=IFCSURFACESTYLERENDERING(#1,$,IFCNORMALISEDRATIOMEASURE(0.5),$,$,$,$,$,.FLAT.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-attributes_with_a_select_referencing_an_object_should_pass.ids b/Documentation/testcases/pass-attributes_with_a_select_referencing_an_object_should_pass.ids new file mode 100644 index 0000000..d5509e9 --- /dev/null +++ b/Documentation/testcases/pass-attributes_with_a_select_referencing_an_object_should_pass.ids @@ -0,0 +1,23 @@ + + + Attributes with a select referencing an object should pass + + + + + + + IfcSurfaceStyleRendering + + + + + + + DiffuseColour + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-attributes_with_a_select_referencing_an_object_should_pass.ifc b/Documentation/testcases/pass-attributes_with_a_select_referencing_an_object_should_pass.ifc new file mode 100644 index 0000000..4c66e2c --- /dev/null +++ b/Documentation/testcases/pass-attributes_with_a_select_referencing_an_object_should_pass.ifc @@ -0,0 +1,12 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCCOLOURRGB($,1.,1.,1.); +#2=IFCCOLOURRGB($,1.,1.,1.); +#3=IFCSURFACESTYLERENDERING(#1,$,#2,$,$,$,$,$,.FLAT.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-attributes_with_a_string_value_should_pass.ids b/Documentation/testcases/pass-attributes_with_a_string_value_should_pass.ids new file mode 100644 index 0000000..5f839c4 --- /dev/null +++ b/Documentation/testcases/pass-attributes_with_a_string_value_should_pass.ids @@ -0,0 +1,23 @@ + + + Attributes with a string value should pass + + + + + + + IfcWall + + + + + + + Name + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-attributes_with_a_string_value_should_pass.ifc b/Documentation/testcases/pass-attributes_with_a_string_value_should_pass.ifc new file mode 100644 index 0000000..2f52fe9 --- /dev/null +++ b/Documentation/testcases/pass-attributes_with_a_string_value_should_pass.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('3I4qOL0ab8_fP9MBGvLeIC',$,'Foobar',$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-attributes_with_a_zero_duration_should_pass.ids b/Documentation/testcases/pass-attributes_with_a_zero_duration_should_pass.ids new file mode 100644 index 0000000..68f0670 --- /dev/null +++ b/Documentation/testcases/pass-attributes_with_a_zero_duration_should_pass.ids @@ -0,0 +1,23 @@ + + + Attributes with a zero duration should pass + + + + + + + IfcTaskTime + + + + + + + ScheduleDuration + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-attributes_with_a_zero_duration_should_pass.ifc b/Documentation/testcases/pass-attributes_with_a_zero_duration_should_pass.ifc new file mode 100644 index 0000000..ea70aa7 --- /dev/null +++ b/Documentation/testcases/pass-attributes_with_a_zero_duration_should_pass.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCTASKTIME($,$,$,$,'P0D',$,$,$,$,$,$,$,$,$,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-attributes_with_a_zero_number_have_meaning_and_should_pass.ids b/Documentation/testcases/pass-attributes_with_a_zero_number_have_meaning_and_should_pass.ids new file mode 100644 index 0000000..2897e58 --- /dev/null +++ b/Documentation/testcases/pass-attributes_with_a_zero_number_have_meaning_and_should_pass.ids @@ -0,0 +1,23 @@ + + + Attributes with a zero number have meaning and should pass + + + + + + + IfcQuantityCount + + + + + + + CountValue + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-attributes_with_a_zero_number_have_meaning_and_should_pass.ifc b/Documentation/testcases/pass-attributes_with_a_zero_number_have_meaning_and_should_pass.ifc new file mode 100644 index 0000000..bcccfb0 --- /dev/null +++ b/Documentation/testcases/pass-attributes_with_a_zero_number_have_meaning_and_should_pass.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCQUANTITYCOUNT('Foobar',$,$,0.,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-booleans_must_be_specified_as_uppercase_strings_2_3.ids b/Documentation/testcases/pass-booleans_must_be_specified_as_uppercase_strings_2_3.ids new file mode 100644 index 0000000..39f288a --- /dev/null +++ b/Documentation/testcases/pass-booleans_must_be_specified_as_uppercase_strings_2_3.ids @@ -0,0 +1,26 @@ + + + Booleans must be specified as uppercase strings 2/3 + + + + + + + IfcTask + + + + + + + IsMilestone + + + FALSE + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-booleans_must_be_specified_as_uppercase_strings_2_3.ifc b/Documentation/testcases/pass-booleans_must_be_specified_as_uppercase_strings_2_3.ifc new file mode 100644 index 0000000..baf0ad9 --- /dev/null +++ b/Documentation/testcases/pass-booleans_must_be_specified_as_uppercase_strings_2_3.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCTASK('32q2Fff9fDS8yRQuEpEgTs',$,$,$,$,$,$,$,$,.F.,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-both_system_and_value_must_match__all__not_any__if_specified_1_2.ids b/Documentation/testcases/pass-both_system_and_value_must_match__all__not_any__if_specified_1_2.ids new file mode 100644 index 0000000..4ebe7c0 --- /dev/null +++ b/Documentation/testcases/pass-both_system_and_value_must_match__all__not_any__if_specified_1_2.ids @@ -0,0 +1,26 @@ + + + Both system and value must match (all, not any) if specified 1/2 + + + + + + + IfcWall + + + + + + + 1 + + + Foobar + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-both_system_and_value_must_match__all__not_any__if_specified_1_2.ifc b/Documentation/testcases/pass-both_system_and_value_must_match__all__not_any__if_specified_1_2.ifc new file mode 100644 index 0000000..6cfdd0f --- /dev/null +++ b/Documentation/testcases/pass-both_system_and_value_must_match__all__not_any__if_specified_1_2.ifc @@ -0,0 +1,23 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-dates_are_treated_as_strings_1_2.ids b/Documentation/testcases/pass-dates_are_treated_as_strings_1_2.ids new file mode 100644 index 0000000..c9216e8 --- /dev/null +++ b/Documentation/testcases/pass-dates_are_treated_as_strings_1_2.ids @@ -0,0 +1,26 @@ + + + Dates are treated as strings 1/2 + + + + + + + IfcClassification + + + + + + + EditionDate + + + 2022-01-01 + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-dates_are_treated_as_strings_1_2.ifc b/Documentation/testcases/pass-dates_are_treated_as_strings_1_2.ifc new file mode 100644 index 0000000..27b2eaa --- /dev/null +++ b/Documentation/testcases/pass-dates_are_treated_as_strings_1_2.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCCLASSIFICATION($,$,'2022-01-01','Name',$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-elements_with_any_material_will_pass_an_empty_material_facet.ids b/Documentation/testcases/pass-elements_with_any_material_will_pass_an_empty_material_facet.ids new file mode 100644 index 0000000..1751708 --- /dev/null +++ b/Documentation/testcases/pass-elements_with_any_material_will_pass_an_empty_material_facet.ids @@ -0,0 +1,19 @@ + + + Elements with any material will pass an empty material facet + + + + + + + IfcWall + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-elements_with_any_material_will_pass_an_empty_material_facet.ifc b/Documentation/testcases/pass-elements_with_any_material_will_pass_an_empty_material_facet.ifc new file mode 100644 index 0000000..658927e --- /dev/null +++ b/Documentation/testcases/pass-elements_with_any_material_will_pass_an_empty_material_facet.ifc @@ -0,0 +1,12 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('3b4N11kzL6dQYj15tcJ4Ck',$,$,$,$,$,$,$,$); +#2=IFCMATERIAL('Unnamed',$,$); +#3=IFCRELASSOCIATESMATERIAL('3LAP7vmC1FyRerfvSIsiOH',$,$,$,(#1),#2); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-entities_can_be_specified_as_a_xsd_regex_pattern_2_2.ids b/Documentation/testcases/pass-entities_can_be_specified_as_a_xsd_regex_pattern_2_2.ids new file mode 100644 index 0000000..f395c39 --- /dev/null +++ b/Documentation/testcases/pass-entities_can_be_specified_as_a_xsd_regex_pattern_2_2.ids @@ -0,0 +1,25 @@ + + + Entities can be specified as a XSD regex pattern 2/2 + + + + + + + IfcWallType + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-entities_can_be_specified_as_a_xsd_regex_pattern_2_2.ifc b/Documentation/testcases/pass-entities_can_be_specified_as_a_xsd_regex_pattern_2_2.ifc new file mode 100644 index 0000000..d5fc46d --- /dev/null +++ b/Documentation/testcases/pass-entities_can_be_specified_as_a_xsd_regex_pattern_2_2.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALLTYPE('1os_WLhsPCnxUxc$pshDKq',$,$,$,$,$,$,$,$,.ELEMENTEDWALL.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-entities_can_be_specified_as_an_enumeration_1_3.ids b/Documentation/testcases/pass-entities_can_be_specified_as_an_enumeration_1_3.ids new file mode 100644 index 0000000..2909921 --- /dev/null +++ b/Documentation/testcases/pass-entities_can_be_specified_as_an_enumeration_1_3.ids @@ -0,0 +1,26 @@ + + + Entities can be specified as an enumeration 1/3 + + + + + + + IfcWall + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-entities_can_be_specified_as_an_enumeration_1_3.ifc b/Documentation/testcases/pass-entities_can_be_specified_as_an_enumeration_1_3.ifc new file mode 100644 index 0000000..61e2f25 --- /dev/null +++ b/Documentation/testcases/pass-entities_can_be_specified_as_an_enumeration_1_3.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1Qay_22En1le9QrVmHaBQl',$,$,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-entities_can_be_specified_as_an_enumeration_2_3.ids b/Documentation/testcases/pass-entities_can_be_specified_as_an_enumeration_2_3.ids new file mode 100644 index 0000000..b2ffee6 --- /dev/null +++ b/Documentation/testcases/pass-entities_can_be_specified_as_an_enumeration_2_3.ids @@ -0,0 +1,26 @@ + + + Entities can be specified as an enumeration 2/3 + + + + + + + IfcSlab + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-entities_can_be_specified_as_an_enumeration_2_3.ifc b/Documentation/testcases/pass-entities_can_be_specified_as_an_enumeration_2_3.ifc new file mode 100644 index 0000000..5ee2e47 --- /dev/null +++ b/Documentation/testcases/pass-entities_can_be_specified_as_an_enumeration_2_3.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCSLAB('2lzg5zcdb8DvONp3SyU6uf',$,$,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-globalids_are_treated_as_strings_and_not_expanded.ids b/Documentation/testcases/pass-globalids_are_treated_as_strings_and_not_expanded.ids new file mode 100644 index 0000000..da598c3 --- /dev/null +++ b/Documentation/testcases/pass-globalids_are_treated_as_strings_and_not_expanded.ids @@ -0,0 +1,26 @@ + + + GlobalIds are treated as strings and not expanded + + + + + + + IfcWall + + + + + + + GlobalId + + + 1LS4c2G4HBSu6ckm_j_Zla + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-globalids_are_treated_as_strings_and_not_expanded.ifc b/Documentation/testcases/pass-globalids_are_treated_as_strings_and_not_expanded.ifc new file mode 100644 index 0000000..46e86eb --- /dev/null +++ b/Documentation/testcases/pass-globalids_are_treated_as_strings_and_not_expanded.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1LS4c2G4HBSu6ckm_j_Zla',$,$,$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-inherited_predefined_types_should_pass.ids b/Documentation/testcases/pass-inherited_predefined_types_should_pass.ids new file mode 100644 index 0000000..6810673 --- /dev/null +++ b/Documentation/testcases/pass-inherited_predefined_types_should_pass.ids @@ -0,0 +1,26 @@ + + + Inherited predefined types should pass + + + + + + + IfcWall + + + + + + + IFCWALL + + + X + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-inherited_predefined_types_should_pass.ifc b/Documentation/testcases/pass-inherited_predefined_types_should_pass.ifc new file mode 100644 index 0000000..404767e --- /dev/null +++ b/Documentation/testcases/pass-inherited_predefined_types_should_pass.ifc @@ -0,0 +1,12 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('3uBNXcbZfEER4V5ISZHxa4',$,$,$,$,$,$,$,$); +#2=IFCWALLTYPE('1b4wJS_5XEuOEm$Fy$d05j',$,$,$,$,$,$,$,'X',.USERDEFINED.); +#3=IFCRELDEFINESBYTYPE('2PevMQbNn6IQrnTn6mr9mY',$,$,$,(#1),#2); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-integers_are_always_floored_when_cast_1_2.ids b/Documentation/testcases/pass-integers_are_always_floored_when_cast_1_2.ids new file mode 100644 index 0000000..a0ef1ad --- /dev/null +++ b/Documentation/testcases/pass-integers_are_always_floored_when_cast_1_2.ids @@ -0,0 +1,26 @@ + + + Integers are always floored when cast 1/2 + + + + + + + IfcStairFlight + + + + + + + NumberOfRisers + + + 42.3 + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-integers_are_always_floored_when_cast_1_2.ifc b/Documentation/testcases/pass-integers_are_always_floored_when_cast_1_2.ifc new file mode 100644 index 0000000..06a7cb5 --- /dev/null +++ b/Documentation/testcases/pass-integers_are_always_floored_when_cast_1_2.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCSTAIRFLIGHT('373vYC8I5D8wbbpPnPVdJB',$,$,$,$,$,$,$,42,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-integers_are_always_floored_when_cast_2_2.ids b/Documentation/testcases/pass-integers_are_always_floored_when_cast_2_2.ids new file mode 100644 index 0000000..ae6cd96 --- /dev/null +++ b/Documentation/testcases/pass-integers_are_always_floored_when_cast_2_2.ids @@ -0,0 +1,26 @@ + + + Integers are always floored when cast 2/2 + + + + + + + IfcStairFlight + + + + + + + NumberOfRisers + + + 42.7 + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-integers_are_always_floored_when_cast_2_2.ifc b/Documentation/testcases/pass-integers_are_always_floored_when_cast_2_2.ifc new file mode 100644 index 0000000..32cdb33 --- /dev/null +++ b/Documentation/testcases/pass-integers_are_always_floored_when_cast_2_2.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCSTAIRFLIGHT('34KULR3$n6cwAB1EauoIii',$,$,$,$,$,$,$,42,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-integers_follow_the_same_rules_as_numbers.ids b/Documentation/testcases/pass-integers_follow_the_same_rules_as_numbers.ids new file mode 100644 index 0000000..1f9d010 --- /dev/null +++ b/Documentation/testcases/pass-integers_follow_the_same_rules_as_numbers.ids @@ -0,0 +1,26 @@ + + + Integers follow the same rules as numbers + + + + + + + IfcStairFlight + + + + + + + NumberOfRisers + + + 42 + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-integers_follow_the_same_rules_as_numbers.ifc b/Documentation/testcases/pass-integers_follow_the_same_rules_as_numbers.ifc new file mode 100644 index 0000000..dab5964 --- /dev/null +++ b/Documentation/testcases/pass-integers_follow_the_same_rules_as_numbers.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCSTAIRFLIGHT('1y_N0u9FnFOgV7ozZePqWN',$,$,$,$,$,$,$,42,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-integers_follow_the_same_rules_as_numbers_2_2.ids b/Documentation/testcases/pass-integers_follow_the_same_rules_as_numbers_2_2.ids new file mode 100644 index 0000000..29d8a10 --- /dev/null +++ b/Documentation/testcases/pass-integers_follow_the_same_rules_as_numbers_2_2.ids @@ -0,0 +1,26 @@ + + + Integers follow the same rules as numbers 2/2 + + + + + + + IfcStairFlight + + + + + + + NumberOfRisers + + + 42.0 + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-integers_follow_the_same_rules_as_numbers_2_2.ifc b/Documentation/testcases/pass-integers_follow_the_same_rules_as_numbers_2_2.ifc new file mode 100644 index 0000000..2f8ddb1 --- /dev/null +++ b/Documentation/testcases/pass-integers_follow_the_same_rules_as_numbers_2_2.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCSTAIRFLIGHT('00zuLIKi14ieT_PlwSgmMT',$,$,$,$,$,$,$,42,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-name_restrictions_may_be_used_1_4.ids b/Documentation/testcases/pass-name_restrictions_may_be_used_1_4.ids new file mode 100644 index 0000000..25f4737 --- /dev/null +++ b/Documentation/testcases/pass-name_restrictions_may_be_used_1_4.ids @@ -0,0 +1,25 @@ + + + Name restrictions may be used 1/4 + + + + + + + IfcMaterialLayerSet + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-name_restrictions_may_be_used_1_4.ifc b/Documentation/testcases/pass-name_restrictions_may_be_used_1_4.ifc new file mode 100644 index 0000000..fb4f121 --- /dev/null +++ b/Documentation/testcases/pass-name_restrictions_may_be_used_1_4.ifc @@ -0,0 +1,11 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCMATERIALLAYER($,1.,$,$,$,$,$); +#2=IFCMATERIALLAYERSET((#1),'Foo',$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-name_restrictions_may_be_used_2_4.ids b/Documentation/testcases/pass-name_restrictions_may_be_used_2_4.ids new file mode 100644 index 0000000..f16249a --- /dev/null +++ b/Documentation/testcases/pass-name_restrictions_may_be_used_2_4.ids @@ -0,0 +1,25 @@ + + + Name restrictions may be used 2/4 + + + + + + + IfcMaterialConstituentSet + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-name_restrictions_may_be_used_2_4.ifc b/Documentation/testcases/pass-name_restrictions_may_be_used_2_4.ifc new file mode 100644 index 0000000..94309c0 --- /dev/null +++ b/Documentation/testcases/pass-name_restrictions_may_be_used_2_4.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCMATERIALCONSTITUENTSET('Foo',$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-name_restrictions_may_be_used_4_4.ids b/Documentation/testcases/pass-name_restrictions_may_be_used_4_4.ids new file mode 100644 index 0000000..ed4357e --- /dev/null +++ b/Documentation/testcases/pass-name_restrictions_may_be_used_4_4.ids @@ -0,0 +1,26 @@ + + + Name restrictions may be used 4/4 + + + + + + + IfcWall + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-name_restrictions_may_be_used_4_4.ifc b/Documentation/testcases/pass-name_restrictions_may_be_used_4_4.ifc new file mode 100644 index 0000000..4dbd15d --- /dev/null +++ b/Documentation/testcases/pass-name_restrictions_may_be_used_4_4.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('20nTyphwfAbO$97tj6Himb',$,'Foo','Bar',$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-non_ascii_characters_are_treated_without_encoding.ids b/Documentation/testcases/pass-non_ascii_characters_are_treated_without_encoding.ids new file mode 100644 index 0000000..f5d26c6 --- /dev/null +++ b/Documentation/testcases/pass-non_ascii_characters_are_treated_without_encoding.ids @@ -0,0 +1,26 @@ + + + Non-ascii characters are treated without encoding + + + + + + + IfcWall + + + + + + + Name + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-non_ascii_characters_are_treated_without_encoding.ifc b/Documentation/testcases/pass-non_ascii_characters_are_treated_without_encoding.ifc new file mode 100644 index 0000000..4a76127 --- /dev/null +++ b/Documentation/testcases/pass-non_ascii_characters_are_treated_without_encoding.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('3cAdSfdcrCBOkMB4iVIIvW',$,'\X2\266B\X0\',$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_1_4.ids b/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_1_4.ids new file mode 100644 index 0000000..44af360 --- /dev/null +++ b/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_1_4.ids @@ -0,0 +1,26 @@ + + + Numeric values are checked using type casting 1/4 + + + + + + + IfcSurfaceStyleRefraction + + + + + + + RefractionIndex + + + 42 + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_1_4.ifc b/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_1_4.ifc new file mode 100644 index 0000000..b15fe4f --- /dev/null +++ b/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_1_4.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCSURFACESTYLEREFRACTION(42.,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_2_4.ids b/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_2_4.ids new file mode 100644 index 0000000..7b189f9 --- /dev/null +++ b/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_2_4.ids @@ -0,0 +1,26 @@ + + + Numeric values are checked using type casting 2/4 + + + + + + + IfcSurfaceStyleRefraction + + + + + + + RefractionIndex + + + 42. + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_2_4.ifc b/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_2_4.ifc new file mode 100644 index 0000000..ab5e58e --- /dev/null +++ b/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_2_4.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCSURFACESTYLEREFRACTION(42.,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_3_4.ids b/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_3_4.ids new file mode 100644 index 0000000..336c7e5 --- /dev/null +++ b/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_3_4.ids @@ -0,0 +1,26 @@ + + + Numeric values are checked using type casting 3/4 + + + + + + + IfcSurfaceStyleRefraction + + + + + + + RefractionIndex + + + 42.0 + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_3_4.ifc b/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_3_4.ifc new file mode 100644 index 0000000..ab5e58e --- /dev/null +++ b/Documentation/testcases/pass-numeric_values_are_checked_using_type_casting_3_4.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCSURFACESTYLEREFRACTION(42.,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-occurrences_can_inherit_materials_from_their_types.ids b/Documentation/testcases/pass-occurrences_can_inherit_materials_from_their_types.ids new file mode 100644 index 0000000..ff8a405 --- /dev/null +++ b/Documentation/testcases/pass-occurrences_can_inherit_materials_from_their_types.ids @@ -0,0 +1,23 @@ + + + Occurrences can inherit materials from their types + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-occurrences_can_inherit_materials_from_their_types.ifc b/Documentation/testcases/pass-occurrences_can_inherit_materials_from_their_types.ifc new file mode 100644 index 0000000..cc595de --- /dev/null +++ b/Documentation/testcases/pass-occurrences_can_inherit_materials_from_their_types.ifc @@ -0,0 +1,14 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('3vFMA9TM13SPLINaj5vzD2',$,$,$,$,$,$,$,$); +#2=IFCWALLTYPE('3gYiUqnY96pAouuoWc42nv',$,$,$,$,$,$,$,$,.ELEMENTEDWALL.); +#3=IFCRELDEFINESBYTYPE('1L0PkvDRj9EvK7$HLTfQRq',$,$,$,(#1),#2); +#4=IFCMATERIAL('Foo',$,$); +#5=IFCRELASSOCIATESMATERIAL('0YDKatTqT7qRtZwgR0VIqA',$,$,$,(#2),#4); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-occurrences_can_override_materials_from_their_types.ids b/Documentation/testcases/pass-occurrences_can_override_materials_from_their_types.ids new file mode 100644 index 0000000..a77ad88 --- /dev/null +++ b/Documentation/testcases/pass-occurrences_can_override_materials_from_their_types.ids @@ -0,0 +1,23 @@ + + + Occurrences can override materials from their types + + + + + + + IfcWall + + + + + + + Foo + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-occurrences_can_override_materials_from_their_types.ifc b/Documentation/testcases/pass-occurrences_can_override_materials_from_their_types.ifc new file mode 100644 index 0000000..e113e09 --- /dev/null +++ b/Documentation/testcases/pass-occurrences_can_override_materials_from_their_types.ifc @@ -0,0 +1,16 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('2FMdrmuwH0CflUc2A1JDgV',$,$,$,$,$,$,$,$); +#2=IFCWALLTYPE('2W6woWPnT8lBDxasNC4MLO',$,$,$,$,$,$,$,$,.ELEMENTEDWALL.); +#3=IFCRELDEFINESBYTYPE('0TpnC9_T5CauN7RO_D3M8Z',$,$,$,(#1),#2); +#4=IFCMATERIAL('Bar',$,$); +#5=IFCRELASSOCIATESMATERIAL('1uEdcqQ4bB6vFqQ7ESQ8Ys',$,$,$,(#2),#4); +#6=IFCMATERIAL('Foo',$,$); +#7=IFCRELASSOCIATESMATERIAL('0hiZvcQtb8dOB1cXGdOvST',$,$,$,(#1),#6); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-occurrences_override_the_type_classification_per_system_1_3.ids b/Documentation/testcases/pass-occurrences_override_the_type_classification_per_system_1_3.ids new file mode 100644 index 0000000..39931ef --- /dev/null +++ b/Documentation/testcases/pass-occurrences_override_the_type_classification_per_system_1_3.ids @@ -0,0 +1,23 @@ + + + Occurrences override the type classification per system 1/3 + + + + + + + IfcWall + + + + + + + 11 + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-occurrences_override_the_type_classification_per_system_1_3.ifc b/Documentation/testcases/pass-occurrences_override_the_type_classification_per_system_1_3.ifc new file mode 100644 index 0000000..fa3917d --- /dev/null +++ b/Documentation/testcases/pass-occurrences_override_the_type_classification_per_system_1_3.ifc @@ -0,0 +1,30 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#16,#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11,#17),#12); +#16=IFCWALL('3gjhpoGY54T8ZY2eLSU6Mj',$,$,$,$,$,$,$,$); +#17=IFCWALLTYPE('3bLBNhMpT68fl5VCu2b9fk',$,$,$,$,$,$,$,$,.ELEMENTEDWALL.); +#18=IFCRELDEFINESBYTYPE('3iDG_WdzrCCeybZ$O3bcLV',$,$,$,(#16),#17); +#19=IFCCLASSIFICATION($,$,$,'Foobaz',$,$,$); +#20=IFCRELASSOCIATESCLASSIFICATION('3mVzrKNQHEsQ3do0idBpgM',$,$,$,(#1),#19); +#21=IFCCLASSIFICATIONREFERENCE($,'X',$,#19,$,$); +#22=IFCRELASSOCIATESCLASSIFICATION('1$lAD_gez30QRAVfOBq0DZ',$,$,$,(#17),#21); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-occurrences_override_the_type_classification_per_system_3_3.ids b/Documentation/testcases/pass-occurrences_override_the_type_classification_per_system_3_3.ids new file mode 100644 index 0000000..a99cf03 --- /dev/null +++ b/Documentation/testcases/pass-occurrences_override_the_type_classification_per_system_3_3.ids @@ -0,0 +1,23 @@ + + + Occurrences override the type classification per system 3/3 + + + + + + + IfcWall + + + + + + + X + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-occurrences_override_the_type_classification_per_system_3_3.ifc b/Documentation/testcases/pass-occurrences_override_the_type_classification_per_system_3_3.ifc new file mode 100644 index 0000000..fa3917d --- /dev/null +++ b/Documentation/testcases/pass-occurrences_override_the_type_classification_per_system_3_3.ifc @@ -0,0 +1,30 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#16,#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11,#17),#12); +#16=IFCWALL('3gjhpoGY54T8ZY2eLSU6Mj',$,$,$,$,$,$,$,$); +#17=IFCWALLTYPE('3bLBNhMpT68fl5VCu2b9fk',$,$,$,$,$,$,$,$,.ELEMENTEDWALL.); +#18=IFCRELDEFINESBYTYPE('3iDG_WdzrCCeybZ$O3bcLV',$,$,$,(#16),#17); +#19=IFCCLASSIFICATION($,$,$,'Foobaz',$,$,$); +#20=IFCRELASSOCIATESCLASSIFICATION('3mVzrKNQHEsQ3do0idBpgM',$,$,$,(#1),#19); +#21=IFCCLASSIFICATIONREFERENCE($,'X',$,#19,$,$); +#22=IFCRELASSOCIATESCLASSIFICATION('1$lAD_gez30QRAVfOBq0DZ',$,$,$,(#17),#21); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-only_specifically_formatted_numbers_are_allowed_3_4.ids b/Documentation/testcases/pass-only_specifically_formatted_numbers_are_allowed_3_4.ids new file mode 100644 index 0000000..6f15e53 --- /dev/null +++ b/Documentation/testcases/pass-only_specifically_formatted_numbers_are_allowed_3_4.ids @@ -0,0 +1,26 @@ + + + Only specifically formatted numbers are allowed 3/4 + + + + + + + IfcSurfaceStyleRefraction + + + + + + + RefractionIndex + + + 1.2345e3 + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-only_specifically_formatted_numbers_are_allowed_3_4.ifc b/Documentation/testcases/pass-only_specifically_formatted_numbers_are_allowed_3_4.ifc new file mode 100644 index 0000000..26751b5 --- /dev/null +++ b/Documentation/testcases/pass-only_specifically_formatted_numbers_are_allowed_3_4.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCSURFACESTYLEREFRACTION(1234.5,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-only_specifically_formatted_numbers_are_allowed_4_4.ids b/Documentation/testcases/pass-only_specifically_formatted_numbers_are_allowed_4_4.ids new file mode 100644 index 0000000..e9d0db8 --- /dev/null +++ b/Documentation/testcases/pass-only_specifically_formatted_numbers_are_allowed_4_4.ids @@ -0,0 +1,26 @@ + + + Only specifically formatted numbers are allowed 4/4 + + + + + + + IfcSurfaceStyleRefraction + + + + + + + RefractionIndex + + + 1.2345E3 + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-only_specifically_formatted_numbers_are_allowed_4_4.ifc b/Documentation/testcases/pass-only_specifically_formatted_numbers_are_allowed_4_4.ifc new file mode 100644 index 0000000..26751b5 --- /dev/null +++ b/Documentation/testcases/pass-only_specifically_formatted_numbers_are_allowed_4_4.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCSURFACESTYLEREFRACTION(1234.5,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-overridden_predefined_types_should_pass.ids b/Documentation/testcases/pass-overridden_predefined_types_should_pass.ids new file mode 100644 index 0000000..8deec84 --- /dev/null +++ b/Documentation/testcases/pass-overridden_predefined_types_should_pass.ids @@ -0,0 +1,26 @@ + + + Overridden predefined types should pass + + + + + + + IfcWall + + + + + + + IFCWALL + + + X + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-overridden_predefined_types_should_pass.ifc b/Documentation/testcases/pass-overridden_predefined_types_should_pass.ifc new file mode 100644 index 0000000..2955ce9 --- /dev/null +++ b/Documentation/testcases/pass-overridden_predefined_types_should_pass.ifc @@ -0,0 +1,12 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1OMDXrLg52tvgkWQWnN9Kk',$,$,$,'X',$,$,$,.USERDEFINED.); +#2=IFCWALLTYPE('24kVNldTr5fvFVXxP6ljxr',$,$,$,$,$,$,$,$,.NOTDEFINED.); +#3=IFCRELDEFINESBYTYPE('3nCzJtVmj68Op7z5jlRk8h',$,$,$,(#1),#2); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-restrictions_an_be_specified_for_the_predefined_type_1_3.ids b/Documentation/testcases/pass-restrictions_an_be_specified_for_the_predefined_type_1_3.ids new file mode 100644 index 0000000..fbd2855 --- /dev/null +++ b/Documentation/testcases/pass-restrictions_an_be_specified_for_the_predefined_type_1_3.ids @@ -0,0 +1,28 @@ + + + Restrictions an be specified for the predefined type 1/3 + + + + + + + IfcWall + + + + + + + IFCWALL + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-restrictions_an_be_specified_for_the_predefined_type_1_3.ifc b/Documentation/testcases/pass-restrictions_an_be_specified_for_the_predefined_type_1_3.ifc new file mode 100644 index 0000000..5909631 --- /dev/null +++ b/Documentation/testcases/pass-restrictions_an_be_specified_for_the_predefined_type_1_3.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1z1B8SO$LAovq6YP4X_x9n',$,$,$,'FOOBAR',$,$,$,.USERDEFINED.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-restrictions_an_be_specified_for_the_predefined_type_2_3.ids b/Documentation/testcases/pass-restrictions_an_be_specified_for_the_predefined_type_2_3.ids new file mode 100644 index 0000000..1e0a207 --- /dev/null +++ b/Documentation/testcases/pass-restrictions_an_be_specified_for_the_predefined_type_2_3.ids @@ -0,0 +1,28 @@ + + + Restrictions an be specified for the predefined type 2/3 + + + + + + + IfcWall + + + + + + + IFCWALL + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-restrictions_an_be_specified_for_the_predefined_type_2_3.ifc b/Documentation/testcases/pass-restrictions_an_be_specified_for_the_predefined_type_2_3.ifc new file mode 100644 index 0000000..5fbe216 --- /dev/null +++ b/Documentation/testcases/pass-restrictions_an_be_specified_for_the_predefined_type_2_3.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:02',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('3vCKrTy4b71P$m1jP1z6Vv',$,$,$,'FOOBAZ',$,$,$,.USERDEFINED.); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-restrictions_can_be_used_for_systems_2_2.ids b/Documentation/testcases/pass-restrictions_can_be_used_for_systems_2_2.ids new file mode 100644 index 0000000..8639299 --- /dev/null +++ b/Documentation/testcases/pass-restrictions_can_be_used_for_systems_2_2.ids @@ -0,0 +1,25 @@ + + + Restrictions can be used for systems 2/2 + + + + + + + IfcWall + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-restrictions_can_be_used_for_systems_2_2.ifc b/Documentation/testcases/pass-restrictions_can_be_used_for_systems_2_2.ifc new file mode 100644 index 0000000..6cfdd0f --- /dev/null +++ b/Documentation/testcases/pass-restrictions_can_be_used_for_systems_2_2.ifc @@ -0,0 +1,23 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-restrictions_can_be_used_for_values_1_3.ids b/Documentation/testcases/pass-restrictions_can_be_used_for_values_1_3.ids new file mode 100644 index 0000000..7019b3b --- /dev/null +++ b/Documentation/testcases/pass-restrictions_can_be_used_for_values_1_3.ids @@ -0,0 +1,25 @@ + + + Restrictions can be used for values 1/3 + + + + + + + IfcWall + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-restrictions_can_be_used_for_values_1_3.ifc b/Documentation/testcases/pass-restrictions_can_be_used_for_values_1_3.ifc new file mode 100644 index 0000000..6cfdd0f --- /dev/null +++ b/Documentation/testcases/pass-restrictions_can_be_used_for_values_1_3.ifc @@ -0,0 +1,23 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-restrictions_can_be_used_for_values_2_3.ids b/Documentation/testcases/pass-restrictions_can_be_used_for_values_2_3.ids new file mode 100644 index 0000000..1392082 --- /dev/null +++ b/Documentation/testcases/pass-restrictions_can_be_used_for_values_2_3.ids @@ -0,0 +1,25 @@ + + + Restrictions can be used for values 2/3 + + + + + + + IfcWall + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-restrictions_can_be_used_for_values_2_3.ifc b/Documentation/testcases/pass-restrictions_can_be_used_for_values_2_3.ifc new file mode 100644 index 0000000..6cfdd0f --- /dev/null +++ b/Documentation/testcases/pass-restrictions_can_be_used_for_values_2_3.ifc @@ -0,0 +1,23 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-strict_numeric_checking_may_be_done_with_a_bounds_restriction.ids b/Documentation/testcases/pass-strict_numeric_checking_may_be_done_with_a_bounds_restriction.ids new file mode 100644 index 0000000..86bca21 --- /dev/null +++ b/Documentation/testcases/pass-strict_numeric_checking_may_be_done_with_a_bounds_restriction.ids @@ -0,0 +1,29 @@ + + + Strict numeric checking may be done with a bounds restriction + + + + + + + IfcSurfaceStyleRefraction + + + + + + + RefractionIndex + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-strict_numeric_checking_may_be_done_with_a_bounds_restriction.ifc b/Documentation/testcases/pass-strict_numeric_checking_may_be_done_with_a_bounds_restriction.ifc new file mode 100644 index 0000000..ab5e58e --- /dev/null +++ b/Documentation/testcases/pass-strict_numeric_checking_may_be_done_with_a_bounds_restriction.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCSURFACESTYLEREFRACTION(42.,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-systems_should_match_exactly_1_5.ids b/Documentation/testcases/pass-systems_should_match_exactly_1_5.ids new file mode 100644 index 0000000..374d3ad --- /dev/null +++ b/Documentation/testcases/pass-systems_should_match_exactly_1_5.ids @@ -0,0 +1,23 @@ + + + Systems should match exactly 1/5 + + + + + + + IfcProject + + + + + + + Foobar + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-systems_should_match_exactly_1_5.ifc b/Documentation/testcases/pass-systems_should_match_exactly_1_5.ifc new file mode 100644 index 0000000..6cfdd0f --- /dev/null +++ b/Documentation/testcases/pass-systems_should_match_exactly_1_5.ifc @@ -0,0 +1,23 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-systems_should_match_exactly_3_5.ids b/Documentation/testcases/pass-systems_should_match_exactly_3_5.ids new file mode 100644 index 0000000..1c596a2 --- /dev/null +++ b/Documentation/testcases/pass-systems_should_match_exactly_3_5.ids @@ -0,0 +1,23 @@ + + + Systems should match exactly 3/5 + + + + + + + IfcWall + + + + + + + Foobar + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-systems_should_match_exactly_3_5.ifc b/Documentation/testcases/pass-systems_should_match_exactly_3_5.ifc new file mode 100644 index 0000000..6cfdd0f --- /dev/null +++ b/Documentation/testcases/pass-systems_should_match_exactly_3_5.ifc @@ -0,0 +1,23 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-systems_should_match_exactly_4_5.ids b/Documentation/testcases/pass-systems_should_match_exactly_4_5.ids new file mode 100644 index 0000000..eaf1037 --- /dev/null +++ b/Documentation/testcases/pass-systems_should_match_exactly_4_5.ids @@ -0,0 +1,23 @@ + + + Systems should match exactly 4/5 + + + + + + + IfcWall + + + + + + + Foobar + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-systems_should_match_exactly_4_5.ifc b/Documentation/testcases/pass-systems_should_match_exactly_4_5.ifc new file mode 100644 index 0000000..6cfdd0f --- /dev/null +++ b/Documentation/testcases/pass-systems_should_match_exactly_4_5.ifc @@ -0,0 +1,23 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-systems_should_match_exactly_5_5.ids b/Documentation/testcases/pass-systems_should_match_exactly_5_5.ids new file mode 100644 index 0000000..3bef143 --- /dev/null +++ b/Documentation/testcases/pass-systems_should_match_exactly_5_5.ids @@ -0,0 +1,23 @@ + + + Systems should match exactly 5/5 + + + + + + + IfcWall + + + + + + + Foobar + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-systems_should_match_exactly_5_5.ifc b/Documentation/testcases/pass-systems_should_match_exactly_5_5.ifc new file mode 100644 index 0000000..6cfdd0f --- /dev/null +++ b/Documentation/testcases/pass-systems_should_match_exactly_5_5.ifc @@ -0,0 +1,23 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-typecast_checking_may_also_occur_within_enumeration_restrictions.ids b/Documentation/testcases/pass-typecast_checking_may_also_occur_within_enumeration_restrictions.ids new file mode 100644 index 0000000..a57fb9c --- /dev/null +++ b/Documentation/testcases/pass-typecast_checking_may_also_occur_within_enumeration_restrictions.ids @@ -0,0 +1,28 @@ + + + Typecast checking may also occur within enumeration restrictions + + + + + + + IfcSurfaceStyleRefraction + + + + + + + RefractionIndex + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-typecast_checking_may_also_occur_within_enumeration_restrictions.ifc b/Documentation/testcases/pass-typecast_checking_may_also_occur_within_enumeration_restrictions.ifc new file mode 100644 index 0000000..ab5e58e --- /dev/null +++ b/Documentation/testcases/pass-typecast_checking_may_also_occur_within_enumeration_restrictions.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCSURFACESTYLEREFRACTION(42.,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-value_restrictions_may_be_used_1_3.ids b/Documentation/testcases/pass-value_restrictions_may_be_used_1_3.ids new file mode 100644 index 0000000..360c49b --- /dev/null +++ b/Documentation/testcases/pass-value_restrictions_may_be_used_1_3.ids @@ -0,0 +1,29 @@ + + + Value restrictions may be used 1/3 + + + + + + + IfcWall + + + + + + + Name + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-value_restrictions_may_be_used_1_3.ifc b/Documentation/testcases/pass-value_restrictions_may_be_used_1_3.ifc new file mode 100644 index 0000000..b392560 --- /dev/null +++ b/Documentation/testcases/pass-value_restrictions_may_be_used_1_3.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('3JAYRWK7XDc9aJuPa2vHoH',$,'Foo',$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-value_restrictions_may_be_used_2_3.ids b/Documentation/testcases/pass-value_restrictions_may_be_used_2_3.ids new file mode 100644 index 0000000..f83f250 --- /dev/null +++ b/Documentation/testcases/pass-value_restrictions_may_be_used_2_3.ids @@ -0,0 +1,29 @@ + + + Value restrictions may be used 2/3 + + + + + + + IfcWall + + + + + + + Name + + + + + + + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-value_restrictions_may_be_used_2_3.ifc b/Documentation/testcases/pass-value_restrictions_may_be_used_2_3.ifc new file mode 100644 index 0000000..aaec6d9 --- /dev/null +++ b/Documentation/testcases/pass-value_restrictions_may_be_used_2_3.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCWALL('1$ZyzRE5D1HhVh8ORnjJVe',$,'Bar',$,$,$,$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-values_match_subreferences_if_full_classifications_are_used__e_g__ef_25_10_should_match_ef_25_10_25__ef_25_10_30__etc_.ids b/Documentation/testcases/pass-values_match_subreferences_if_full_classifications_are_used__e_g__ef_25_10_should_match_ef_25_10_25__ef_25_10_30__etc_.ids new file mode 100644 index 0000000..cd08b44 --- /dev/null +++ b/Documentation/testcases/pass-values_match_subreferences_if_full_classifications_are_used__e_g__ef_25_10_should_match_ef_25_10_25__ef_25_10_30__etc_.ids @@ -0,0 +1,23 @@ + + + Values match subreferences if full classifications are used (e.g. EF_25_10 should match EF_25_10_25, EF_25_10_30, etc) + + + + + + + IfcWall + + + + + + + 2 + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-values_match_subreferences_if_full_classifications_are_used__e_g__ef_25_10_should_match_ef_25_10_25__ef_25_10_30__etc_.ifc b/Documentation/testcases/pass-values_match_subreferences_if_full_classifications_are_used__e_g__ef_25_10_should_match_ef_25_10_25__ef_25_10_30__etc_.ifc new file mode 100644 index 0000000..6cfdd0f --- /dev/null +++ b/Documentation/testcases/pass-values_match_subreferences_if_full_classifications_are_used__e_g__ef_25_10_should_match_ef_25_10_25__ef_25_10_30__etc_.ifc @@ -0,0 +1,23 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/testcases/pass-values_should_match_exactly_if_lightweight_classifications_are_used.ids b/Documentation/testcases/pass-values_should_match_exactly_if_lightweight_classifications_are_used.ids new file mode 100644 index 0000000..0a3ee41 --- /dev/null +++ b/Documentation/testcases/pass-values_should_match_exactly_if_lightweight_classifications_are_used.ids @@ -0,0 +1,23 @@ + + + Values should match exactly if lightweight classifications are used + + + + + + + IfcWall + + + + + + + 1 + + + + + + \ No newline at end of file diff --git a/Documentation/testcases/pass-values_should_match_exactly_if_lightweight_classifications_are_used.ifc b/Documentation/testcases/pass-values_should_match_exactly_if_lightweight_classifications_are_used.ifc new file mode 100644 index 0000000..6cfdd0f --- /dev/null +++ b/Documentation/testcases/pass-values_should_match_exactly_if_lightweight_classifications_are_used.ifc @@ -0,0 +1,23 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2022-09-03T10:32:03',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1YKJbs5jj6dh3MtS0j2OK2',$,$,$,$,$,$,$,$); +#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$); +#3=IFCRELASSOCIATESCLASSIFICATION('00BJZTWcfFCg0RbkiKv1fM',$,$,$,(#1),#2); +#4=IFCWALL('2UleVhRgnCfgW5SttZE_7y',$,$,$,$,$,$,$,$); +#5=IFCWALL('2W7F_ccg94rwa1nsWn0b0j',$,$,$,$,$,$,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$); +#7=IFCRELASSOCIATESCLASSIFICATION('3jbMAz3Of0M9$GsA4vnQIB',$,$,$,(#5),#6); +#8=IFCWALL('2jD97aGmz9kQB0ecAchgic',$,$,$,$,$,$,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$); +#10=IFCRELASSOCIATESCLASSIFICATION('2cx4Wu97n869Aqk3DiPKpW',$,$,$,(#8),#9); +#11=IFCWALL('3O2yN0uPz5l8zU4bMKTOyE',$,$,$,$,$,$,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$); +#15=IFCRELASSOCIATESCLASSIFICATION('3OTcVvSHf7RvGHzaEB8x6S',$,$,$,(#11),#12); +ENDSEC; +END-ISO-10303-21; diff --git a/Documentation/Physical_Quantities_and_Units.md b/Documentation/units.md similarity index 100% rename from Documentation/Physical_Quantities_and_Units.md rename to Documentation/units.md