---
title: Le Proprietà nel Formato IFC
description: In IFC sono le proprietà a determinare la natura degli elementi, attraverso le diverse possibili relazioni fra le entità. Vediamo come gestirle.
---

[Il blog BIM di Archicad](https://blog.archicad.it/bim)

# [Le Proprietà nel Formato IFC](https://blog.archicad.it/bim/le-proprieta-nel-formato-ifc)

 Scritto da [Hilario Bourg](https://blog.archicad.it/bim/author/hilario-bourg) | Sep 14, 2020, 2:36:04 PM

##### Tutto quello che c'è da sapere sul formato IFC - pt. 5

Una volta individuati usi e obiettivi del modello, dobbiamo stabilire le caratteristiche del formato IFC: come identificare gli oggetti, quali relazioni attivare e quale tipo di geometria produrre (diretta conseguenza delle relazioni parti/insieme). **In IFC** sono le proprietà a determinare la natura degli elementi, attraverso le diverse possibili relazioni fra le entità.

Una classe di oggetti nasce dal suo supertipo in base alle proprietà e relazioni ricevute in eredità dalla classe di grado superiore. Vediamo ora che tipo di informazioni sono presenti nel formato IFC e come possono essere gestite.

 

### Proprietà e Attributi

Esistono informazioni sempre presenti e che definiscono la natura stessa dell’entità. In altri termini: **per il solo fatto di esistere, gli oggetti hanno determinate proprietà**, chiamate **IfcAttributes**.

Gli **IfcRoot** sono la classe più astratta e generale e sono caratterizzate da un GUID (*Global Unique IDentifier*), un Nome, una Descrizione, un IfcOwnerHistory (in proposito potete rivedere [l’articolo sulla definizione degli oggetti](https://blog.archicad.it/identita-oggetto-nel-formato-ifc)). Le entità acquisiscono via via una maggior definizione attraverso gli attributi ereditati dalle classi superiori.

**L’insieme di tutte le proprietà ricade sotto la classe IfcProperty**. Le IfcProperty possono essere di due tipi:

- Semplici (IfcSimpleProperty), generalizzazione di una singola proprietà;
- Complesse (IfcComplexProperty), cioè costituite da qualunque voce e valore, sia numerico che testuale.

Non ci soffermeremo oltre su questo aspetto, che ha poche ricadute al lato pratico. Piuttosto ci interessa **comprendere come un insieme indistinto di dati può dare vita a sistemi omogenei di informazioni**. Quando alle IfcProperty associamo delle risorse esterne otteniamo gli **IfcPropertySet**. Informazioni quali la funzione strutturale (Load-bearing) e la posizione (external, internal e not defined) fanno parte della definizione del tipo e non delle sue proprietà, perché non derivano da fonti esterne. In poche parole, non è l’utente a stabilire che queste informazioni siano incluse o meno e quindi, al pari degli Attributi, **queste informazioni competono la definizione del tipo** **e non delle proprietà.**

Le Ifc Property danno origine a due categorie di informazioni:

- I **PropertySet**, cioè i dati e le informazioni che l’operatore assegna;
- I **QuantitySet**, cioè i dati quantitativi ricavati all’interno del modello stesso, per lo più ottenuti automaticamente anche se è possibile elaborare e combinare i dati fra di loro, ad esempio con delle formule di calcolo.

 

### I PropertySet e come si assegnano

I PropertySet sono dei **contenitori che riportano le informazioni all’interno di una struttura ad albero**. Ogni insieme di proprietà è definito attraverso un nome appropriato individuato attraverso il prefisso “Pset\_Xxx”. Nessun’altra entità deve riportare il prefisso Pset. Ogni Pset costituisce un Gruppo di Proprietà che annoverano più Proprietà al loro interno.

I PropertySet sono associati agli elementi in base alle relazioni che intessono con gli oggetti a cui si riferiscono. **Distinguiamo quattro forme di relazione**:

- **Occurrence Object (istanza oggetto)**: le proprietà sono associate alla singola istanza dell’elemento, porta, muro o arredo;
- **Type Object (tipo oggetto)**: le proprietà sono associate al tipo oggetto e condivise fra tutte le istanze che fanno riferimento allo stesso IfctypeObject, ad esempio IfcWallType, IfcSlabType, ecc.;
- **Underlying template**: Attraverso la relazione **IfcRelDefinesByTemplate** stabilisce le relazioni fra un PropertySet e un PropertySetTemplate, cioè un Set predefinito di proprietà (ci torneremo successivamente);
- **External reference**: sottotipo di **IfcRelAssociates**, si usa per collegare le entità a sistemi di classificazione esterni.

Le prime due relazioni sono una l’inversa dell’altra: attraverso la relazione *IfcRelDefines*, possiamo assegnare le proprietà direttamente al singolo elemento (relazione 1 a 1) o alla categoria di riferimento (relazione 1 a molti), assegnando quindi il tutto agli IfcObjectType. È possibile assegnare delle proprietà sia a livello di tipo che di istanza. Una determinata proprietà può essere in comune alla singola porta o a tutte le porte con date caratteristiche, individuate con un appropriato IfcDoorType.

È possibile **assegnare le proprietà** a una classe di elementi, ad esempio gli *IfcWall*, oppure alla classe superiore, *IfcBuildingElement* che a sua volta trasmetterà le proprietà a tutti i suoi sottotipi, compresi gli *IfcWall* stessi.

Ricordiamo infine che le proprietà non si riferiscono unicamente ad elementi costruttivi fisici, da IfcProduct in giù, ma anche a entità astratte come attori, processi, ecc. che possono essere gestite attraverso gli *IfcAssignment*.

Assegnazione di proprietà a diverse classi.

Assegnazione di riferimenti di classificazione esterna (IfcRelAssociates)

Le etichette di proprietà possono assumere valori diversi a seconda del tipo di grandezza che devono esprimere. Le principali categorie sono:

- **IfcIdentifier**, utilizzato per identificare l’oggetto tramite dei tag;
- **IfcGlobalUniqueID**, il tipo valore associato al GUID;
- **IfcLabel**, utilizzato per vari tipi di valore, fra cui il Nome;
- **IfcBoolean**, indica un valore che può essere Vero o Falso;
- **IfcText**, utilizzato per le descrizioni.

I valori delle etichette sono in realtà molti di più, uno per ogni tipo di elemento.

L’utilizzo dei template nella gestione delle informazioni è un passaggio fondamentale. in IFC esistono già dei template predeterminati per ogni categoria di elementi, quindi per ogni oggetto sono già impostate certe informazioni tipiche. I TypeEnum permettono di **specificare meglio la natura dell’elemento**, andando a distinguere ad esempio se un muro è un rivestimento, un muro divisorio o un parapetto in muratura. Ma queste operazioni ricadono nel cosiddetto ***Mappaggio tipo***, attraverso cui definiamo "cos’è cosa". Per assegnare le informazioni alle classi, dobbiamo invece operare il cosiddetto ***Mappaggio Proprietà***.

In IFC, **ad ogni classe di elementi sono associati dei valori tipici**, individuati attraverso la relazione *IfcRelDefinesByTemplate*. Per ogni Elemento, ad esempio *IfcWall*, abbiamo delle proprietà generali proprie del muro che prendono il nome di *Pset\_WallCommon*, così come per le finestre avremo le classi di proprietà *Pset\_WindowCommon*, e così via per ognuno degli elementi IFC.

A questi si aggiungono altre categorie che variano di volta in base alle caratteristiche dei materiali utilizzati, generalmente *Pset\_ConcreteElementGeneral* per tutte le opere in cemento gettato in opera, mentre per i serramenti avremo invece, oltre ai *Pset\_WindowCommon* già menzionati, la categoria Pset\_DoorWindowGlazingType che riporta un buon numero di informazioni circa le parti vetrate e le loro prestazioni fisiche e meccaniche.

Infine, diverse informazioni provengono dai materiali o stratigrafie di materiali che compongono l‘elemento. Ormai sappiamo molto bene che **le proprietà concorrono alla definizione della classe in base al tipo di relazione che intessono con essa**. Ad esempio, se a un muro applichiamo una stratigrafia, può essere decomposto nei suoi componenti, oppure possiamo decidere di mantenere l’unitarietà del muro (preservando quindi la parametricità) ma leggere comunque la composizione e le informazioni relative agli strati e i materiali.

 

### Product Data Template (PDT)

Sul lato pratico però, **è preferibile definire i PropertySet sulla base delle esigenze di commessa** piuttosto che sulla caratterizzazione delle classi condotte a priori da BuildingSmart. Queste ultime prendono il nome di **Proprietà Standard**, mentre per le proprietà definite dall’utente parliamo di **Proprietà non Standard**.

È necessario affiancare ai Pset di default i propri Pset che assumeranno la denominazione Pset\_Nomestudio\_Xxx. In molti casi è persino preferibile eliminare ogni Pset preesistente e gestire unicamente le nuove proprietà di commessa.

Gestire consistenti quantità di informazioni per un gran numero di elementi non è semplice, ed è quindi necessario a**dottare dei template per facilitare il compito e inquadrare meglio i contenuti**. Inoltre è necessario gestire le informazioni nella loro progressione lungo la commessa, calibrando quali e quanti dati trasmettere secondo il concetto di LOD (Level Of Development/Detail), o meglio di LOIN (Level Of Information Need) secondo le più recenti evoluzioni della normativa internazionale.

A testimoniare l'interesse attorno al tema, basti pensare che, nel solo anno 2020, sono uscite le norme:

- [UNI EN ISO 23386:2020](https://standards.cen.eu/dyn/www/f?p=204:110:0::::FSP_PROJECT,FSP_LANG_ID:64239,25&cs=11C2B7A026B0398DD35BBD9EB988E206A) Building information modelling e altri processi digitali utilizzati nelle costruzioni - Metodologia per descrivere, creare e mantenere proprietà nei dizionari di dati interconnessi;
- [EN ISO 23387:2020](https://standards.cen.eu/dyn/www/f?p=204:110:0::::FSP_PROJECT,FSP_LANG_ID:64242,25&cs=1770646CC6500A6BCDEC443392F6E801A) Building Information Modelling (BIM) – Data templates for construction objects used in the life cycle of any built asset – Concepts and principles;

e un’ulteriore norma a carattere europeo (CEN) è di prossima uscita:

- [prEN 17473](https://standards.cen.eu/dyn/www/f?p=204:110:0::::FSP_PROJECT,FSP_LANG_ID:64240,25&cs=154E73A578582D730F56EDA4D27F9C3D4)  – Building information modelling (BIM) – Data templates for construction objects used in the life cycle of any built asset – Data templates based on harmonised technical specifications under the Construction Products Regulation (CPR).

Non è questa la sede per approfondire un tema molto ampio e che ancora deve essere digerito dagli stessi addetti ai lavori. Sottolineiamo soltanto come sia **necessario adottare un Template**, sotto forma di tabella relazionale, per gestire l’insieme dei dati, la loro assegnazione agli oggetti e la progressione nel tempo.

Le **Model Element Table** e le **Attributes Table** del [**BIM FORUM**](https://bimforum.org/LOD)costituiscono idealmente la **base per lo sviluppo di Template informativi** attraverso i quali è possibile allineare i requisiti e le caratteristiche di prodotto di ogni oggetto.

 

### I QuantitySet

In maniera analoga ai PropertySet, un QuantitySet è un contenitore che riporta le quantità individuali di un elemento all’interno di un albero gerarchico. Come per i Propertyset esistono delle corrispondenze fra gli elementi e i set di informazioni determinate dalle **IfcPropertySetTemplate** e generano le già note quattro relazioni:

- Occurrence Object (istanza oggetto);
- Type Object (tipo oggetto);
- Underlying template;
- External reference.

A differenza dei PropertySet, i QuantitySet acquisiscono il prefisso Qto\_Xxx anziché Pset\_Xxx. I **QuantitySet derivano da template di informazioni che abbinano dei set ad ogni classe di elementi**: avremo quindi dei **Qto\_WallBaseQuantity** per gli *IfcWall*, dei Qto\_BeamBaseQuantities per gli *IfcBeam*, e via dicendo.

Le quantità possono riferirsi tanto all’elemento nel suo complesso che ai suoi componenti costitutivi (gli strati di un elemento murario complesso, ad esempio). È tuttavia possibile mantenere il muro nella sua interezza (e quindi come geometria parametrica estrusa) e leggere comunque le informazioni quantitative circa la composizione di ogni strato. Vale anche in questo caso la relazione fra l’elemento e i materiali che lo compongono, sia esso un unico materiale o una stratigrafia tramite i cosiddetti **Material Layer Set**. Quindi, oltre alle proprietà dei materiali, possiamo leggere le loro consistenze, quali spessori, volume, ecc.

I dati quantitativi non vengono ricavati dal software in lettura, ma vengono calcolati dal software di scrittura e incorporati all’interno del file stesso: il software in lettura, che sia un visualizzatore o un software di analisi, utilizzerà i dati provenienti da un altro software, giusti o sbagliati che siano.

In particolare, bisogna fare particolare attenzione al calcolo delle quantità in corrispondenza dei nodi, dove **i software calcolano le quantità con metodi spesso molto diversi fra loro**, sia in alcuni casi un calcolo puntuale e rigoroso o talvolta anche una stima percentuale delle riduzioni dovute alle intersezioni degli strati. A tal proposito suggerisco la lettura di questo ottimo [articolo sulla computazione attraverso il formato IFC](https://www.archiradar.it/it/libri/tutorial-archicad-artlantis/11-tutorials/archicad/287-il-formato-ifc-bim-archicad-solibri.html), a cui l'immagine qui sotto fa riferimento.

Diversamente rispetto a quanto accade per i PropertySet, **non è possibile impostare dei QuantitySet personalizzati**, ma si possono visualizzare (o meno) unicamente i valori standard. La ragione è facilmente comprensibile, dato che non possaimo inventare delle nuove grandezze fisiche dal nulla!

 

Per una visione d'insieme, ecco i link a tutti gli articoli sul formato IFC:

1. [Introduzione al formato IFC](https://blog.archicad.it/tutto-quello-che-c%C3%A8-da-sapere-sul-formato-ifc-introduzione);
2. [L'identità nel formato IFC](https://blog.archicad.it/identita-oggetto-nel-formato-ifc);
3. [Le relazioni nel formato IFC](https://blog.archicad.it/le-relazioni-nel-formato-ifc-focus);
4. [La rappresentazione del formato IFC](https://blog.archicad.it/la-rappresentazione-degli-oggetti-ifc-focus);
5. Le proprietà nel formato IFC.

 

[Visualizza articolo completo](https://blog.archicad.it/bim/le-proprieta-nel-formato-ifc)

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Hilario Bourg"
  },
  "dateModified" : "2021-05-25T15:26:02.622Z",
  "datePublished" : "2020-09-14T14:36:04Z",
  "headline" : "Le Proprietà nel Formato IFC",
  "image" : {
    "@type" : "ImageObject",
    "height" : 3337,
    "url" : "https://f.hubspotusercontent00.net/hubfs/5013951/IFC%20PARTE%205_PROPRIETA/shutterstock_672298081.jpg",
    "width" : 5000
  },
  "mainEntityOfPage" : "https://blog.archicad.it/bim/le-proprieta-nel-formato-ifc",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 60,
      "url" : "/hs/hsstatic/content_shared_assets/static-1.4092/img/default-amp-logo.png",
      "width" : 60
    },
    "name" : "BIM"
  }
}
```