BrickSchema / Brick

Uniform metadata schema for buildings
http://brickschema.org/
BSD 3-Clause "New" or "Revised" License
285 stars 77 forks source link

Re-investigate fire-related systems #556

Open gtfierro opened 10 months ago

gtfierro commented 10 months ago

There is some ambiguity in our classes around fire control systems. According to https://www.nfpa.org/News-and-Research/Publications-and-media/Blogs-Landing-Page/NFPA-Today/Blog-Posts/2021/03/03/A-Guide-to-Fire-Alarm-Basics we may want to have 3 broad types of equipment: fire control panel, fire alarm initiation systems, and fire alarm notification systems.

ektrah commented 10 months ago

Proposal:

Details (click to expand) | Proposal | EN 54-1 | [ISO 7240-1][1] | Brick 1.3 | |:--------------------------------------|:------------------------------------------|:--------------------------------------|:--------------------------------------------------------------| | Alarm Device | fire alarm device | fire alarm signalling device | `brick:Fire_Alarm` | | Aspirating Smoke Detector | aspirating smoke detector | aspirating smoke detector | | | Audible Alarm Device (AAD) | fire alarm sounder | audible alarm device (AAD) | | | Carbon Monoxide Fire Detector | carbon monoxide fire detector | carbon monoxide gas fire detector | | | Fire Alarm Control Panel | | | `brick:Fire_Control_Panel` / `brick:Fire_Alarm_Control_Panel` | | Fire Detector | fire detector | fire detector | | | Flame Detector | flame detector | flame detector | | | Heat Detector | heat detector | heat detector | `brick:Heat_Detector` | | Line-Type Heat Detector | linear heat detector | line-type heat detector | | | Line-Type Smoke Detector | line smoke detector using an optical beam | line-type smoke detector | | | Manual Call Point (MCP) | manual call point | manual call point | `brick:Fire_Alarm_Manual_Call_Point` | | Manual Alarm Initiating Device | | | `brick:Manual_Fire_Alarm_Activation_Equipment` | | Point-Type Heat Detector | heat detector ∩ point detector | heat detector ∩ point detector | | | Point-Type Smoke Detector | smoke detector ∩ point detector | smoke detector ∩ point detector | | | Pull Station | | | `brick:Fire_Alarm_Pull_Station` | | Smoke Detector | smoke detector | smoke detector | `brick:Smoke_Detector` | | Visual Alarm Device (VAD) | visual alarm device | visual alarm device (VAD) | | [1]: https://www.iso.org/obp/ui/en/#!iso:std:55316:en
jbkoh commented 10 months ago

Would like to add suppressing systems like extinguishers and sprinklers.

jbkoh commented 10 months ago

Also wonder if detectors could be an alarm at the same time in many cases (like home fire alarms)

gtfierro commented 10 months ago

Also wonder if detectors could be an alarm at the same time in many cases (like home fire alarms)

We can probably create an Alarm Point that we associate with the detectors to draw a distinction between the device and the signal

Or are you asking if it is both the "detector" and the "sound emitter"?

jbkoh commented 10 months ago

Or are you asking if it is both the "detector" and the "sound emitter"?

Yes. Those detectors emit sound as well, so either we have to adjust the hierarchy or let users instantiate both at the same time. I 'guess' it's common to have both functions.

gtfierro commented 9 months ago

According to the conversation I'm having on the REC gitter, future versions of DTDL (v3 in particular) will support up to 1024-way multiple inheritance. Azure Digital Twins v3 is still in preview I guess, so we don't know if REC will migrate to DTDLv3 yet. If they do, it will probably be after ADTv3 moves out of preview

ektrah commented 9 months ago

Or are you asking if it is both the "detector" and the "sound emitter"?

Yes. Those detectors emit sound as well, so either we have to adjust the hierarchy or let users instantiate both at the same time. I 'guess' it's common to have both functions.

Yes, I think it's quite common to have devices that combine multiple aspects (e.g., a point detector that detects both heat and smoke).

A sound-emitting fire detector, I think, I would model as a combination of a Fire_Detector and an Audible_Alarm_Device.

According to the conversation I'm having on the REC gitter, future versions of DTDL (v3 in particular) will support up to 1024-way multiple inheritance. Azure Digital Twins v3 is still in preview I guess, so we don't know if REC will migrate to DTDLv3 yet. If they do, it will probably be after ADTv3 moves out of preview

Great, then perhaps we can avoid the combinatorial explosion by using multiple inheritance here.

What would be the most pythonic brickish bricky way of doing this, e.g., for the Fire_Detector? Should there be one subclass for each item along each dimension?

ektrah commented 8 months ago

Relevant past discussion: https://github.com/BrickSchema/Brick/pull/336

ektrah commented 8 months ago

@gtfierro @jbkoh @epaulson I would like to ask for quick feedback as to whether the proposed terms in https://github.com/BrickSchema/Brick/issues/556#issuecomment-1708900836 are OK. If so, I would prepare a pull request so that the new equipment types can become part of Brick 1.4.

jbkoh commented 8 months ago

Though I like the hierarchy, I'm not sure if we have an agreement on the audible fire detector issue. Is the solution to have "Fire_Detector_with_Audible_Alarm"?

jbkoh commented 8 months ago

Btw, I'm looking to define Smoke Zones and Fire Zones too: https://ltc.health.mo.gov/archives/15059#:~:text=The%20fire%20alarm%20zones%20are,full%20evacuation%20of%20the%20building. Maybe this should go to REC though.

Smoke damper and fire dampers too.

connorjcantrell commented 4 months ago

@ektrah @jbkoh I suggest changing the term "Carbon Monoxide Fire Detector" to simply "Carbon Monoxide Detector." These devices primarily serve to identify the presence of CO gas originating from malfunctioning boilers, water heaters, leaking exhaust vents, or vehicles in enclosed parking areas. While they are associated with combustible sources, their primary function is not directly connected to fire detection or fire safety.

ektrah commented 4 months ago

As I understand it, on the one hand there are detectors that have the purpose of detecting fire and of which there are a number of variants that differ in the detection method (e.g., based on the presence of smoke, heat, flames, carbon monoxide). And on the other hand, there are detectors whose purpose is to detect the presence of gases. I'm not sure if carbon monoxide fire detectors and carbon monoxide detectors are interchangeable enough that we should combine them, even though they probably work internally very similarly. What do you think about having both?

jbkoh commented 4 months ago

Hi @ektrah yeah, we can have both and let the fire one be a subclass of the other one. However, if we distinguish "alarm device" from "detectors", sole detectors are equivalent to just "sensor equipment", and in that case having a separate class of "CO Detector" might be not super necessary.

So, I have to ask the question that I raised again; are "detectors" dedicated to just sensing something alone if we have Audible_Alarm_Device separately? In that case, what are the distinguishable features for detectors compared to Sensor Equipment's?

With regards, Jason Koh

On Thu, Feb 22, 2024 at 4:05 PM ektrah @.***> wrote:

As I understand it, on the one hand there are detectors that have the purpose of detecting fire and of which there are a number of variants that differ in the detection method (e.g., based on the presence of smoke, heat, flames, carbon monoxide). And on the other hand, there are detectors whose purpose is to detect the presence of gases. I'm not sure if carbon monoxide fire detectors and carbon monoxide detectors are interchangeable enough that we should combine them, even though they probably work internally very similarly. What do you think about having both?

— Reply to this email directly, view it on GitHub https://github.com/BrickSchema/Brick/issues/556#issuecomment-1960539217, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAL76E6GSXUQC2WNMYTASPDYU7MMFAVCNFSM6AAAAAA4KUIKCOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRQGUZTSMRRG4 . You are receiving this because you were mentioned.Message ID: @.***>

ektrah commented 4 months ago

Here is how I understand it:

The open question from my point of view is how to model a box that combines a fire detector and an audible alarm device.

(¹ in the sense of s223:Sensor, not brick:Sensor or brick:Sensor_Equipment)