buildingSMART / IFC4.3.x-development

Repository to collect updates to the IFC4.3 Specification
Other
163 stars 83 forks source link

Standardisation of colour properties #453

Open Moult opened 2 years ago

Moult commented 2 years ago

A luminaire control register typically contains the colour of the light fitting. I was looking for the appropriate property to put this in and found a lot of colour properties (but none for IfcLightFixture) that I think could be consolidated.

For example, an IfcAirTerminal has a "FinishColour" which seems similar to what I'm after.

However, an IfcShadingDevice has a "SurfaceColour" which seems suspiciously similar too.

IfcFireSuppressionTerminal/FIREHYDRANT separates BodyColour and CapColour.

IfcCableSegment/FIBERTUBE has FiberTubeColour which is actually an enum of colours.

My gut feel is that similar to how a common element property set can exist for dimensions (length, width, height, diameter) there can also be a similar common property set for all elements for a simple colour label.

This luminaire control register would find a "colour" property useful. Architectural finish schedules would also find it useful.

Then of course there is the debate whether or not it is semantically correct to have a property describing colour (e.g. typically as a schedulable property) which may contradict the surface style. I think that's OK, but others may disagree.

Here is a list of all properties with "Colour" in their name:

Happy to put forward a proposal, but before I do I thought I'd post this summary of the current situation so others can comment.

aothms commented 2 years ago

Also see https://github.com/bSI-InfraRoom/IFC-Specification/issues/326#issuecomment-991872906

I must say, now that we worked out the Material Set material labels, it feels odd to me to continue along this route.

Not all of them, but most of these above are redundant with a Material Set and then either a surface style or a IfcMaterialProperties.

So my proposal would be:

PropName Type
ColourRGBA ListValue<NormalisedRatio>
ColourLabel SingleValue<Label>
ColourEnum (probably not. should be IDS territory) EnumValue
ColourSpectral tbd
Moult commented 2 years ago
  1. Deleting coloured parts sound good
  2. Advising to use material set association of choice sounds good
  3. Sounds good to me :)
  4. I would vote for colour label - the purpose of this is human labeling and scheduling, so rgba will not mean anything to people. Sometimes it'll be things like "Black" and sometimes it'll be fancy branded colour names like "Rose Pink" depending on the manufacturer, and of course in some other cases it'll be a RAL/PANTONE/etc.