# Contradictory rules for Pset prefix usage

**URL:** https://forums.buildingsmart.org/t/contradictory-rules-for-pset-prefix-usage/5949
**Category:** Validation Service
**Created:** [February 19, 2025, 7:50am UTC](https://forums.buildingsmart.org/t/contradictory-rules-for-pset-prefix-usage/5949 "2025-02-19T07:50:59Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![AntonioCWD](https://avatars.discourse-cdn.com/v4/letter/a/958977/32.png) [@AntonioCWD](https://forums.buildingsmart.org/u/AntonioCWD)
#### Post date: [February 19, 2025, 7:50am UTC](https://forums.buildingsmart.org/t/contradictory-rules-for-pset-prefix-usage/5949/1 "2025-02-19T07:50:59Z")

</div>

According to the buildingSMART documentation on [IfcPropertySet for IFC 2x3](https://standards.buildingsmart.org/IFC/RELEASE/IFC2x3/TC1/HTML/ifckernel/lexical/ifcpropertyset.htm)

> In addition any user defined property set can be captured, those property sets shall have a _Name_ value not including the “Pset\_” prefix.

The validator rule [PSE001\_Standard-properties-and-property-sets-validation.feature](https://github.com/buildingSMART/ifc-gherkin-rules/blob/main/features/PSE001_Standard-properties-and-property-sets-validation.feature) on the other side states

> The rule verifies that each IfcPropertySet starting with Pset is defined correctly.

Which is it? Are custom Pset names allowed that start with “Pset-”?  
If yes, then the validator rule has to be corrected.  
If no, then the IFC 2x3 documentation has to be corrected.

---

<div class="post-metadata">

### Author: ![Evandro](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.buildingsmart.org/evandro/32/1908_2.png) [@Evandro](https://forums.buildingsmart.org/u/Evandro)
#### Post date: [February 20, 2025, 9:27am UTC](https://forums.buildingsmart.org/t/contradictory-rules-for-pset-prefix-usage/5949/2 "2025-02-20T09:27:49Z")

</div>

Th `Pset_` prefix is reserved for standard property sets. What the IFC Validation Service does is checking that when a property set starts with `Pset_` it is indeed one of the standard ones.

That rule does more than that, e.g., checking that properties inside a standard property set are the correct one, checking the data type, checking correct assignment to object, etc.

If you check the [scenarios](https://github.com/buildingSMART/ifc-gherkin-rules/blob/main/features/PSE001_Standard-properties-and-property-sets-validation.feature) that compose the rule, you’ll have a complete view.

For this, the description of the rule has been generalised by saying “defined correctly”. However, if you want to suggest a richer, more comprehensive description of the rule feel free to make a suggestion in GitHub directly. Thanks for your contribution.

---

<div class="post-metadata">

### Author: ![AntonioCWD](https://avatars.discourse-cdn.com/v4/letter/a/958977/32.png) [@AntonioCWD](https://forums.buildingsmart.org/u/AntonioCWD)
#### Post date: [February 20, 2025, 2:05pm UTC](https://forums.buildingsmart.org/t/contradictory-rules-for-pset-prefix-usage/5949/3 "2025-02-20T14:05:26Z")

</div>

> [@Evandro](#):
>
> What the IFC Validation Service does is checking that when a property set starts with `Pset_` it is indeed one of the standard ones.

The PSE001 rule actually says `Pset` rather than `Pset_`, while the documentation specifically says `Pset_`.

That’s why my question mentioned a custom Pset starting with `Pset-`.

---

<div class="post-metadata">

### Author: ![Evandro](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.buildingsmart.org/evandro/32/1908_2.png) [@Evandro](https://forums.buildingsmart.org/u/Evandro)
#### Post date: [February 20, 2025, 2:23pm UTC](https://forums.buildingsmart.org/t/contradictory-rules-for-pset-prefix-usage/5949/4 "2025-02-20T14:23:21Z")

</div>

Ok, I see now. We already got a similar feedback.

PSE001 strictly checks what the documentation currently says, hence `Pset_`.

The team is already working on making it explicit in the PSE001 scenario (currently saying just `Pset`). The team is also working on an additional _Industry Best Practice_ rule that checks for the generic case. As in, [pP][sS][eE][tT] with any separator (`_`, `-`, `.`, blank space, etc.)
