Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepared change to allow multiple material facets #213

Merged
merged 1 commit into from
Oct 31, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions Development/IDS_StructuralSafety.ids
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<ids:ids xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://standards.buildingsmart.org/IDS http://standards.buildingsmart.org/IDS/0.9.6/ids.xsd" xmlns:ids="http://standards.buildingsmart.org/IDS">
<ids:info>
<ids:title />
</ids:info>
<ids:specifications>
<ids:specification ifcVersion="IFC4X3" name="Structural safety" instructions="Beams must be assessed for security concerns" minOccurs="1" maxOccurs="unbounded">
<ids:applicability>
<ids:entity>
<ids:name>
<ids:simpleValue>IFCBEAM</ids:simpleValue>
</ids:name>
</ids:entity>
<ids:material>
<ids:value>
<ids:simpleValue>Aerated Concrete</ids:simpleValue>
</ids:value>
</ids:material>
<ids:material>
<ids:value>
<ids:simpleValue>Steel</ids:simpleValue>
</ids:value>
</ids:material>
</ids:applicability>
<ids:requirements>
<ids:property maxOccurs="unbounded" datatype="IFCLABEL">
<ids:propertySet>
<ids:simpleValue>Pset_ConcreteElementGeneral</ids:simpleValue>
</ids:propertySet>
<ids:name>
<ids:simpleValue>ExposureClass</ids:simpleValue>
</ids:name>
</ids:property>
</ids:requirements>
</ids:specification>
</ids:specifications>
</ids:ids>
4 changes: 2 additions & 2 deletions Development/ids.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
<xs:element name="classification" type="ids:classificationType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="attribute" type="ids:attributeType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="property" type="ids:propertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="material" type="ids:materialType" minOccurs="0"/>
<xs:element name="material" type="ids:materialType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="propertyType">
Expand Down Expand Up @@ -164,7 +164,7 @@
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="material" minOccurs="0">
<xs:element name="material" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:complexContent>
<xs:extension base="ids:materialType">
Expand Down
28 changes: 14 additions & 14 deletions Documentation/material-facet.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ In the simplest case, an element may have a single **Material**. For example, a

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)
- **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)

Expand All @@ -18,19 +18,19 @@ Many disciplines, such as costing, scheduling, sustainability analysis, or const

## 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.
**URI** | ❌ | ❌ | A URI identifying the material compliant with ISO 23386 | You may find valid URIs using the [buildingSMART Data Dictionary](https://search.bsdd.buildingsmart.org/). Materials are found in the data dictionary as classifications with the keyword "/mat/" in the URI.
| 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. |
| **URI** | ❌ | ❌ | A URI identifying the material compliant with ISO 23386 | You may find valid URIs using the [buildingSMART Data Dictionary](https://search.bsdd.buildingsmart.org/). Materials are found in the data dictionary as classifications with the keyword "/mat/" in the URI. |

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}"
| Applicability 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}" |