buildingSMART / buildingSMART/IDS

Flavour of RegEx allowing negation

Open
#349 8 comments 0 reactions 0 assignees View on GitHub
discuss & decide documentation improvement
Dominant language
C#
Stars
318
Forks
90
PR merge metrics
No merged PRs in 30d

Description

### Discussed in https://github.com/buildingSMART/IDS/discussions/347

Originally posted by **atomczak** September 25, 2024
I want to have a requirement that takes all Walls that don't have the "FireRating" property. In other words, I want an applicability to include IFCWALL entity and a property allowing any name/pset except "FireRating" and "Pset_WallCommon". I thought I could do that with a pattern, but I see that XML flavour doesn't really support a negation lookahead. Has anyone found a way to express it?

Use Case:

> Suppose we have 2 properties, “ID 1” and “ID 2”. BIM team is required to assign either 1 of the 2 properties. Difficult to write the “ids:applicability” section for such cases. E.g.,
>
```

ID 1 property does not exist

ID 2 is mandatory

```
As a solution, I propose to reconsider agreeing on RegEx flavours other than XSD, such as PCRE or JavaScript / Python. We could also agree on explicit IDS flavour, but this will make implementation harder.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the discussion linked from issue 349, especially the examples involving IFCWALL, FireRating, Pset_WallCommon, and alternative property requirements. Review the current XML/XSD regular-expression constraints and compare them with the proposed PCRE, JavaScript, or Python flavours. Done means the supported regex flavour or an explicit IDS flavour is agreed and the use cases can be expressed.

Written by the indexing model from the issue text.

Assessment

Tech stack
xml
Domain
documentation
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.