buildingSMART Forums

How is a IfcPropertySet related to its IfcPropertySetTemplate?

Not sure, if i should open this topic here or over at https://github.com/buildingSMART/IfcDoc. I start here.

An IfcPropertySet can be related to its IfcPropertySetTemplate through the IfcRelDefinesByTemplate.

How can the property itself be related to its property template?

E.g. IfcPropertySingleValue => IfcSimplePropertyTemplate

Should it be done by name

IfcPropertySingleValue.Name = IfcSimplePropertyTemplate.name

or by Id

IfcPropertySingleValue.Ref = IfcSimplePropertyTemplate.Id

Thanks for clarification.

1 Like

the question is whether there is a possibility for a “direct” relation (…typo “elated”->“related”;):

The documentation on http://www.buildingsmart-tech.org/ifc/IFC4/Add2/html/link/ifcsimplepropertytemplate.htm has “Figure 131 — Property template relationships”:
grafik

There doesn’t seem to be a “direct relationship” between IfcPropertySingleValue and IfcSimplePropertyTemplate.

A “real life scenario” for this, as I understand it, could be the following:

  • typos in property Name, e.g. if you wanted to fix a type in PropertyTemplate Name “PresureRating” to “Pressure rating”, there’s no “primary key” to do this, because the name is the “primary key”.

  • other changes of property names, for whatever reasons.

(On the other hand: I guess this is intentional, in order to minimize “bloat”?!
If you referenced every property (by ID or GlobalId?!) this would increase file sizes?!)

Klaus seems to be proposing that we add an optional attribute (reference Id) to an ifc property (which could/should be a guid) that would allow identification of the property. I would certainly support this.

2 Likes

Great, - what’d be the right process to get this started?

I am not convinced that adding an optional attribute (reference ID) is the way to go for the following reasons:

  • PDT/PDS is a maschine to maschine communication where we can rely on the “name” of the IfcSimplePropertyTemplate and as the response of the IfcPropertySingleValue, as this “name” should not be edited by an user.

  • “name” is the unique key defined in the specification

  • Adding an additional attribute would cause an IFC4 Schema change because of the Pset_ Properties which have a schema defined list of attributes

1 Like

The IFC scheme, as of today, uses the name as the key for the relation between the property templates and the instances of the templates (the properties) within one file.

To find the template for a property, you have to “jump” over the property set to the related property set template and then to the property template, that has the exact same name as the property itself.

That is ok, though it would be better, if the IfcRelDefinesByTemplate could be used also on the property level. The property template has then the guid that related it possibly to an external dictionary.

So, the proposal for a future version of IFC would be:

“Allow the usage of the IfcRelDefinesByTemplate to relate the IfcProperty and the IfcPropertyTemplate”