buildingSMART Forums

Property Set Template Applicable Entities by External Classification

#1

Hi,

I’d like feedback and suggestions on how to nominate applicable entities to PropertySetTemplates using an external classification system.

The class has an attribute ApplicableEntity defined as a string nominating an Ifc Class convention, but if the governing criteria was a classification such as Uniclass, how could we nominate this? I note that there is an inverse relationship HasAssociations and a classification can be associated this way, but this doesn’t seem to be the intended use of this relationship.

Could we introduce another convention that is acceptable to this attribute?

Thanks in advance,

Jon

#2

Could we introduce another convention that is acceptable to this
[/quote]

Hi Jon, I have done this through a connection from the classification item (e.g. Omniclass) to the PropertySetTemplate. Look here:

Looking forward to you feedback.

1 Like
#3

HI Klaus,

Thanks for replying. Can you clarify a bit more about where in the github repo I find reference to this?

At present, I’m using a bespoke convention such as
IfcPropertySetTemplate GlobalId=“12aLVZVcv5rgaTnLltBLnd” Name=“MyPset_Location” ApplicableEntity=“Uniclass2015Code:CO;EN;SL”

A specific reference would look like this:
ApplicableEntity=“Uniclass2015Code:SL_80_50_64”
If this was useful to the wider industry would be great to have a consensus on this though.

Cheers,

Jon

#4

Hi Jon,

the ApplicableEntity should IMHO always go to an IFC-Entity or type, like IfcWall, or IfcWall/USERDEFINED.

On this page I documented some day the file sructure, but it is not ready yet:

Look at this file:
https://raw.githubusercontent.com/CAFM-Connect/BIM-Profiles/master/BimProfil.CC3.0.V1.0/Templates.ifcXML

Search for : IfcClassificationReference id=“i30948”

This is an element, based on a local german classification system. Could be Omniclass or Uniclass instead.

The related PropertySetTemplate is reference like with

IfcRelAssociatesClassification id=“i30950”

to

IfcPropertySetTemplate id=“i30896”

#5

Thanks for clarifying. This is certainly the obvious approach that I mentioned in the original post, I was just seeking clarification if there was interest in adding an alternative convention. I’d personally add a description to the IfcRelAssociatesClassification attribute description so that it is noted the purpose of the association, as I’d argue that the reference should actually classifiy the property set itself (if this is possible). Just seems a lot more verbose when there is already an ApplicableEntity attribute explicitly provided. The explicit attribute also permits much easier inspection and editing for humans.

<IfcPropertySetTemplate GlobalId="1fH$fLNAT8QRhTQyP9Ms3t" Name="MyPset_Arbitrary">
        <HasAssociations>
          <IfcRelAssociatesClassification GlobalId="23Z3uTntLC3O09Euyd$yIh" Description="ApplicableEntity" id="i14">
            <RelatingClassification Identification="CO" Name="Complexes" Description="" Sort="" xsi:type="IfcClassificationReference">
              <HasExternalReferences />
              <ReferencedSource xsi:type="IfcClassification" id="i1" />
            </RelatingClassification>
          </IfcRelAssociatesClassification>
          <IfcRelAssociatesClassification GlobalId="3WQhpuOWf5FxMl9m_AKYiW" Description="ApplicableEntity" id="i15">
            <RelatingClassification Identification="EF" Name="Elements/ functions" Description="" Sort="" xsi:type="IfcClassificationReference">
              <HasExternalReferences />
              <ReferencedSource xsi:nil="true" href="i1" />
            </RelatingClassification>
          </IfcRelAssociatesClassification>
          <IfcRelAssociatesClassification GlobalId="3LiX03iFL2NAd6uI075mSx" Description="ApplicableEntity" id="i16">
            <RelatingClassification Identification="EN" Name="Entities" Description="" Sort="" xsi:type="IfcClassificationReference">
              <HasExternalReferences />
              <ReferencedSource xsi:nil="true" href="i1" />
            </RelatingClassification>
          </IfcRelAssociatesClassification>
          <IfcRelAssociatesClassification GlobalId="13YZ2FSSP2Pg3x4o5YyCpa" Description="ApplicableEntity" id="i17">
            <RelatingClassification Identification="Pr" Name="Products" Description="" Sort="" xsi:type="IfcClassificationReference">
              <HasExternalReferences />
              <ReferencedSource xsi:nil="true" href="i1" />
            </RelatingClassification>
          </IfcRelAssociatesClassification>
          <IfcRelAssociatesClassification GlobalId="1AhXaq2zL06wo$XUJSkEEJ" Description="ApplicableEntity" id="i18">
            <RelatingClassification Identification="SL" Name="Spaces/Locations" Description="" Sort="" xsi:type="IfcClassificationReference">
              <HasExternalReferences />
              <ReferencedSource xsi:nil="true" href="i1" />
            </RelatingClassification>
          </IfcRelAssociatesClassification>
          <IfcRelAssociatesClassification GlobalId="1pNRirp0TBpPHCsBGQb1Vv" Description="ApplicableEntity" id="i19">
            <RelatingClassification Identification="Ss" Name="Systems" Description="" Sort="" xsi:type="IfcClassificationReference">
              <HasExternalReferences />
              <ReferencedSource xsi:nil="true" href="i1" />
            </RelatingClassification>
          </IfcRelAssociatesClassification>
        </HasAssociations>
#6

Ah, I understand.

I do not find the inverse relationship “PropertySetTemplates/HasAssociations” in the schema. How can you use it?

I have to use the explicit IfcRelAssociatesClassification, which brings a lot of clutter, but it brings also the openess to be able to use it from both sides (ClassificationItem or PropertySetTemplate)

And yes, we some times describe the relationship in the attribute description.

#7

The HasAssociations in inherited from IfcPropertyDefinition

http://www.buildingsmart-tech.org/ifc/IFC4/Add2/html/link/ifcpropertysettemplate.htm

I do use the inverse relations a lot so I don’t have flat xml files, and can exchange/store snippets of objects. It’s still an IfcRelAssociatesClassification

1 Like
#8

Not all relations from the Express schema do apply in IfcXML files. The inverse relationship in IfcPropertySetTemplate is not part of the XSD and therefore the files are not valid, when you use it in IfcXML.

1 Like
#9

…so the question is: is this intended or unintended?

If the inverse relationship should also be a available in IfcXML, what’s the “workflow/path/process” to get it into the XSD ?!