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

Inconsistent PEnums over {Ifc2x3 tc1, Ifc4 add2 tc1, Ifc4x3_dev_13ef480} #614

Open
SebQonic opened this issue Jun 22, 2023 · 0 comments
Open

Comments

@SebQonic
Copy link

For example: PEnum_BathType (Pset_SanitaryTerminalTypeBath)

In the xml Pset specifications (see below):

  • for 2x3, there's only an EnumList defined (set 1).
  • for 4, there's both an EnumList (set 1) and a ConstantList (set 2) defined, which mismatch.
  • for 4x3 dev, there's only an EnumList (set 2) defined.

The html page of 2x3 shows the EnumList (set 1), the html page of 4 shows the ConstantList (set 2), and the html page of 4x3 dev show the EnumList (set 2). Yet, at least one major implementer of 4, @JOuellette-Autodesk , https://github.com/Autodesk/revit-ifc/blob/5551424c86ffc1d693c2d84b33bd5c27986732f8/Source/Revit.IFC.Export/Exporter/PropertySet/ExporterInitializer_PsetDefIFC4Enum.cs#L1637, uses set 1 in ifc4.

Such sources of inconsistencies are quite annoying, since data cannot be easily migrated between versions. What are the 'correct' PEnum enumerations for 4, EnumList or ConstantList?

Also, many PEnum EnumList are missing in the ifc4 add2 tc1 xml pset specifications, some define enums inconsistently over different Psets.

Ifc2x3 tc1 xml:

<PropertyDef>
  <Name>BathType</Name>
  <PropertyType>
  <TypePropertyEnumeratedValue>
  <EnumList name="PEnum_BathType">
    <EnumItem>Domestic</EnumItem>
    <EnumItem>DomesticCorner</EnumItem>
    <EnumItem>Foot</EnumItem>
    <EnumItem>Jacuzzi</EnumItem>
    <EnumItem>Plunge</EnumItem>
    <EnumItem>Sitz</EnumItem>
    <EnumItem>Treatment</EnumItem>
    <EnumItem>Whirlpool</EnumItem>
    <EnumItem>Other</EnumItem>
    <EnumItem>NotKnown</EnumItem>
    <EnumItem>Unset</EnumItem>
  </EnumList>
  </TypePropertyEnumeratedValue>
  </PropertyType>
  <ValueDef><MinValue value=""/><MaxValue value=""/></ValueDef>
  <Definition>The property enumeration defines the types of bath that may be specified within the property set where:

Domestic =	Bath, for one person at a time, into which the whole body can be easily immersed.
DomesticCorner =	Bath, for one person at a time, into which the whole body can be easily immersed and in which the immersion trough is at an angle.
Foot =	Shallow bath for washing the feet.
Jacuzzi =	Whirlpool bath for more than one person
Plunge =	Bath, usually for more than one person at a time, into which the whole body can be easily immersed.
Sitz =	Bath in which a bather sits as in a chair.
Treatment =	Bath used for hydrotherapy purposes.
Whirlpool =	Bath in which an integrated device agitates the water by pumped circulation or induction of water and/or air.
  </Definition>
</PropertyDef>

Ifc4 add2 tc1 xml:

    <PropertyDef ifdguid="d0572d80d20111e1800000215ad4efdf">
      <Name>BathType</Name>
      <Definition>The property enumeration defines the types of bath that may be specified within the property set.</Definition>
      <PropertyType>
        <TypePropertyEnumeratedValue>
          <EnumList name="PEnum_BathType">
            <EnumItem>DOMESTIC</EnumItem>
            <EnumItem>DOMESTICCORNER</EnumItem>
            <EnumItem>FOOT</EnumItem>
            <EnumItem>JACUZZI</EnumItem>
            <EnumItem>PLUNGE</EnumItem>
            <EnumItem>SITZ</EnumItem>
            <EnumItem>TREATMENT</EnumItem>
            <EnumItem>WHIRLPOOL</EnumItem>
            <EnumItem>OTHER</EnumItem>
            <EnumItem>NOTKNOWN</EnumItem>
            <EnumItem>UNSET</EnumItem>
          </EnumList>
          <ConstantList>
            <ConstantDef>
              <Name>DOMESTIC</Name>
              <Definition>Bath, for one person at a time, into which the whole body can be easily immersed.
</Definition>
              <NameAliases>
                <NameAlias lang="en">Domestic</NameAlias>
              </NameAliases>
              <DefinitionAliases>
                <DefinitionAlias lang="en" />
              </DefinitionAliases>
            </ConstantDef>
            <ConstantDef>
              <Name>FOOT</Name>
              <Definition>Shallow bath for washing the feet.</Definition>
              <NameAliases>
                <NameAlias lang="en">Foot</NameAlias>
              </NameAliases>
              <DefinitionAliases>
                <DefinitionAlias lang="en" />
              </DefinitionAliases>
            </ConstantDef>
            <ConstantDef>
              <Name>POOL</Name>
              <Definition>Indoor or outdoor pool.</Definition>
              <NameAliases />
              <DefinitionAliases />
            </ConstantDef>
            <ConstantDef>
              <Name>PLUNGE</Name>
              <Definition>Bath, usually for more than one person at a time, into which the whole body can be easily immersed.</Definition>
              <NameAliases>
                <NameAlias lang="en">Plunge</NameAlias>
              </NameAliases>
              <DefinitionAliases>
                <DefinitionAlias lang="en" />
              </DefinitionAliases>
            </ConstantDef>
            <ConstantDef>
              <Name>SITZ</Name>
              <Definition>Bath in which a bather sits as in a chair.</Definition>
              <NameAliases>
                <NameAlias lang="en">Sitz</NameAlias>
              </NameAliases>
              <DefinitionAliases>
                <DefinitionAlias lang="en" />
              </DefinitionAliases>
            </ConstantDef>
            <ConstantDef>
              <Name>SPA</Name>
              <Definition>Indoor or outdoor pool designed for multiple people in which an integrated device agitates the water by pumped circulation or induction of water and/or air.</Definition>
              <NameAliases>
                <NameAlias lang="en">Whirlpool</NameAlias>
              </NameAliases>
              <DefinitionAliases>
                <DefinitionAlias lang="en" />
              </DefinitionAliases>
            </ConstantDef>
            <ConstantDef>
              <Name>TREATMENT</Name>
              <Definition>Bath used for hydrotherapy purposes.</Definition>
              <NameAliases>
                <NameAlias lang="en">Treatment</NameAlias>
              </NameAliases>
              <DefinitionAliases>
                <DefinitionAlias lang="en" />
              </DefinitionAliases>
            </ConstantDef>
            <ConstantDef>
              <Name>OTHER</Name>
              <NameAliases>
                <NameAlias lang="en">(other)</NameAlias>
              </NameAliases>
              <DefinitionAliases>
                <DefinitionAlias lang="en">Value is not listed.</DefinitionAlias>
              </DefinitionAliases>
            </ConstantDef>
            <ConstantDef>
              <Name>NOTKNOWN</Name>
              <NameAliases>
                <NameAlias lang="en">(unknown)</NameAlias>
              </NameAliases>
              <DefinitionAliases>
                <DefinitionAlias lang="en">Value is unknown.</DefinitionAlias>
              </DefinitionAliases>
            </ConstantDef>
            <ConstantDef>
              <Name>UNSET</Name>
              <NameAliases>
                <NameAlias lang="en">(unset)</NameAlias>
              </NameAliases>
              <DefinitionAliases>
                <DefinitionAlias lang="en">Value has not been specified.</DefinitionAlias>
              </DefinitionAliases>
            </ConstantDef>
          </ConstantList>
        </TypePropertyEnumeratedValue>
      </PropertyType>
      <NameAliases>
        <NameAlias lang="en">Bath Type</NameAlias>
        <NameAlias lang="ja-JP">バスタイプ</NameAlias>
      </NameAliases>
      <DefinitionAliases>
        <DefinitionAlias lang="en" />
        <DefinitionAlias lang="ja-JP">列挙するプロパティは、プロパティセット内で指定することができるバスの種類の定義:

家庭用:全身を簡単に浸漬することができる一度に1人の人間が入るバス。

家庭用Corner:浸漬トラフが傾いていて、全身を簡単に浸漬することができる一度に1人の人間が入るバス。

フットバス:足を洗う浅いバス。

ジャグジー:複数の人のための渦のバス

プランジバス:通常は全身を簡単に浸漬することができまる一度に複数の人の入るバス。

座バス:水浴を椅子のように座って行うバス。

治療バス:水浴セラピーの目的に使用されるバス。

渦バス:ポンプによる水の循環や、水や空気の誘引により水を攪拌する統合された装置としてのバス。</DefinitionAlias>
      </DefinitionAliases>
    </PropertyDef>

Ifc4x3_dev_13ef480 xml:

    <PropertyDef>
      <Name>BathType</Name>
      <Definition>The property enumeration defines the types of bath that may be specified within the property set.</Definition>
      <PropertyType>
        <TypePropertyEnumeratedValue>
          <EnumList name="PEnum_BathType">
            <EnumItem>DOMESTIC</EnumItem>
            <EnumItem>FOOT</EnumItem>
            <EnumItem>PLUNGE</EnumItem>
            <EnumItem>POOL</EnumItem>
            <EnumItem>SITZ</EnumItem>
            <EnumItem>SPA</EnumItem>
            <EnumItem>TREATMENT</EnumItem>
            <EnumItem>OTHER</EnumItem>
            <EnumItem>NOTKNOWN</EnumItem>
            <EnumItem>UNSET</EnumItem>
          </EnumList>
        </TypePropertyEnumeratedValue>
      </PropertyType>
    </PropertyDef>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant