Editing Revit setup for OpenBIM/Revit IFC spatial hierarchy

From Wiki.OSArch

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
{{Autodesk_Revit}}
+
The following attributes may be set on the <code>IfcSite</code>. If you have a <code>Toposurface</code> object overriding your <code>IfcSite</code> object representation as detailed in [[Revit Geolocation]], the procedure is slightly different. Do not implement both procedures simultaneously. Note that in Revit, only a single <code>IfcSite</code> may exist. It is not possible to create multiple sites.
== IfcSite ==
 
 
 
The following attributes may be set on the <code>IfcSite</code>. If you have a <code>Toposurface</code> object overriding your <code>IfcSite</code> object representation as detailed in [[Revit geolocation]], the procedure is slightly different. Do not implement both procedures simultaneously. Note that in Revit, only a single <code>IfcSite</code> may exist. It is not possible to create multiple sites.
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 12: Line 9:
 
| <code>Name</code>
 
| <code>Name</code>
 
| Yes
 
| Yes
| Create a new <code>IfcName</code> instance parameter, assigned to the <code>Toposurface</code> object.
+
| Create a new IfcName instance parameter, assigned to the Toposurface object.
| Create a new <code>SiteName</code> instance parameter, assigned to the <code>Project Information</code> object.
+
| Create a new SiteName instance parameter, assigned to the Project Information object.
 
|-
 
|-
 
| <code>Description</code>
 
| <code>Description</code>
 
|  
 
|  
| Create a new <code>IfcDescription</code> instance parameter, assigned to the <code>Toposurface</code> object.
+
| Create a new IfcDescription instance parameter, assigned to the Toposurface object.
| Create a new <code>SiteDescription</code> instance parameter, assigned to the <code>Project Information</code> object.
+
| Create a new SiteDescription instance parameter, assigned to the Project Information object.
 
|-
 
|-
 
| <code>ObjectType</code>
 
| <code>ObjectType</code>
 
|  
 
|  
| Create a new <code>IfcObjectType</code> instance parameter, assigned to the <code>Toposurface</code> object.
+
| Create a new IfcObjectType instance parameter, assigned to the Toposurface object.
| Create a new <code>SiteObjectType</code> instance parameter, assigned to the <code>Project Information</code> object.
+
| Create a new SiteObjectType instance parameter, assigned to the Project Information object.
 
|-
 
|-
 
| <code>LongName</code>
 
| <code>LongName</code>
 
| Yes
 
| Yes
| Create a new <code>IfcLongName</code> instance parameter, assigned to the <code>Toposurface</code> object.
+
| Create a new IfcLongName instance parameter, assigned to the Toposurface object.
| Create a new <code>SiteLongName</code> instance parameter, assigned to the <code>Project Information</code> object.
+
| Create a new SiteLongName instance parameter, assigned to the Project Information object.
 
|-
 
|-
 
| <code>LandTitleNumber</code>
 
| <code>LandTitleNumber</code>
 
| Yes
 
| Yes
| Create a new <code>IfcLandTitleNumber</code> instance parameter, assigned to the <code>Toposurface</code> object.
+
| Create a new IfcLandTitleNumber instance parameter, assigned to the Toposurface object.
| Create a new <code>SiteLandTitleNumber</code> instance parameter, assigned to the <code>Project Information</code> object.
+
| Create a new SiteLandTitleNumber instance parameter, assigned to the Project Information object.
|-
 
| <code>SiteAddress</code>
 
|
 
| This may be set via <code>File > Export > IFC > Modify setup > General > Project Address</code> and checking <code>Assign address to site</code>.
 
| Same procedure as with <code>Toposurface</code>.
 
 
|}
 
|}
 
== IfcBuilding ==
 
  
 
The following attributes may be set on the <code>IfcBuilding</code>. Note that in Revit, only a single <code>IfcBuilding</code> may exist. It is not possible to create multiple buildings.
 
The following attributes may be set on the <code>IfcBuilding</code>. Note that in Revit, only a single <code>IfcBuilding</code> may exist. It is not possible to create multiple buildings.
Line 52: Line 42:
 
| <code>Name</code>
 
| <code>Name</code>
 
| Yes
 
| Yes
| Fill out the <code>Building Name</code> field in the <code>Project Information</code> dialog.
+
| Fill out the Building Name field in the Project Information dialog.
|-
 
| <code>Description</code>
 
|
 
| Create a new <code>BuildingDescription</code> instance parameter, assigned to the <code>Project Information</code> object.
 
|-
 
| <code>ObjectType</code>
 
|
 
| Create a new <code>BuildingObjectType</code> instance parameter, assigned to the <code>Project Information</code> object.
 
|-
 
| <code>LongName</code>
 
| Yes
 
| Create a new <code>BuildingLongName</code> instance parameter, assigned to the <code>Project Information</code> object.
 
|-
 
| <code>ElevationOfRefHeight</code>
 
|
 
| Does not seem possible to change this value. Defaults to null.
 
|-
 
| <code>ElevationOfTerrain</code>
 
|
 
| Does not seem possible to change this value. Defaults to null.
 
|-
 
| <code>BuildingAddress</code>
 
|
 
| This may be set via <code>File > Export > IFC > Modify setup > General > Project Address</code> and checking <code>Assign address to building</code>.
 
|}
 
 
 
An example of the building address settings to be provided is shown below.
 
 
 
[[File:Revit-building-address.PNG]]
 
 
 
Note that if you fill out address details in <code>File > Export > IFC > Modify setup > General > Project Address</code>, then that address will be exported twice in your IFC: once for the site and another for the building. This behaviour cannot be changed. Even unchecking <code>Assign address to building/site</code> will not remove this information, but only remove the link between the address and the building/site.
 
 
 
== IfcBuildingStorey ==
 
 
 
<code>IfcBuildingStorey</code> elements are generated for each Revit level which has the checkbox <code>Building Storey</code> checked in properties. The following attributes can be set:
 
 
 
{| class="wikitable"
 
! '''Attribute Name'''
 
! '''Required'''
 
! '''Procedure'''
 
|-
 
| <code>Name</code>
 
| Yes
 
| This defaults to the <code>Name</code> parameter in the <code>Identity Data</code> parameter group. This is usually incorrect, as IFC names are usually short codes, not long descriptions. You can override this by creating a new <code>IfcName</code> instance parameter.
 
 
|-
 
|-
 
| <code>Description</code>
 
| <code>Description</code>
 
|  
 
|  
| Create a new <code>IfcDescription</code> instance parameter.
+
| Create a new BuildingDescription instance parameter, assigned to the Project Information object.
 
|-
 
|-
 
| <code>ObjectType</code>
 
| <code>ObjectType</code>
 
|  
 
|  
| Create a new <code>IfcObjectType</code> instance parameter.
+
| Create a new BuildingObjectType instance parameter, assigned to the Project Information object.
 
|-
 
|-
 
| <code>LongName</code>
 
| <code>LongName</code>
 
| Yes
 
| Yes
| Create a new <code>IfcLongName</code> instance parameter. This should typically contain the same value as the <code>Name</code> parameter in the <code>Identity Data</code> parameter group.
+
| Create a new BuildingLongName instance parameter, assigned to the Project Information object.
|-
 
| <code>CompositionType</code>
 
|
 
| This is asserted by default to <code>ELEMENT</code>. It is not possible to override this. It is not possible to nest spatial structures in Revit.
 
|-
 
| <code>Elevation</code>
 
|
 
| This is automatically derived from the <code>Elevation</code> parameter in the <code>Constraints</code> parameter group. Although not obviously wrong, this does not match the current intention by buildingSMART. This is fundamentally broken in Revit.
 
 
|}
 
|}
 
== IfcSpace ==
 
 
In Revit, there are <code>Room</code> objects, <code>Space</code> objects. Both of these objects translate into <code>IfcSpace</code> entities. Revit <code>Area</code> objects do ''not'' translate into IFC and are lost.
 
 
If you are exporting from a 3D view which has filters to turn certain objects on and off, you may have enabled the <code>Export only elements visible in view</code> option in <code>File > Export > IFC > Modify Setup > Additional Content</code>. If this is enabled, you must enable the <code>Export rooms in 3D views</code> option, or <code>IfcSpace</code> entities will not be created in your IFC file. Despite the use of the word "rooms", the option applies to both Revit <code>Room</code> and <code>Space</code> objects.
 
 
[[File:Revit-export-spaces.PNG]]
 
 
The following attributes may be set:
 
 
{| class="wikitable"
 
! '''Attribute Name'''
 
! '''Required'''
 
! '''Procedure'''
 
|-
 
| <code>Name</code>
 
| Yes
 
| This defaults to the <code>Number</code> parameter in the <code>Identity Data</code> parameter group. You can override this by creating a new <code>IfcName</code> instance parameter.
 
|-
 
| <code>Description</code>
 
|
 
| Create a new <code>IfcDescription</code> instance parameter.
 
|-
 
| <code>ObjectType</code>
 
|
 
| Create a new <code>IfcObjectType</code> instance parameter.
 
|-
 
| <code>LongName</code>
 
| Yes
 
| This defaults to the <code>Name</code> parameter in the <code>Identity Data</code> parameter group. You can override this by creating a new <code>IfcLongName</code> instance parameter.
 
|-
 
| <code>CompositionType</code>
 
|
 
| This is asserted by default to <code>ELEMENT</code>. It is not possible to override this. It is not possible to nest spatial structures in Revit.
 
|-
 
| <code>PredefinedType</code>
 
|
 
| This defaults to <code>INTERNAL</code> with IFC2x3 and <code>SPACE</code> with IFC4. It is not possible to override this.
 
|-
 
| <code>ElevationWithFlooring</code>
 
|
 
| This is null by default. Create a new <code>IfcElevationWithFlooring</code> instance parameter.
 
|}
 
 
== IfcZone ==
 
 
The Revit <code>HVAC Zone</code> object translates into IFC <code>IfcZone</code> entities. In addition, it is also possible to group Revit <code>Room</code> objects into <code>IfcZone</code> entities. To do this, create a new <code>ZoneName</code> instance parameter assigned to a Revit <code>Room</code> object. For each unique string supplied in this parameter, an <code>IfcZone</code> entity will be created.<ref>IFC for Revit wiki - Exporting Zones</ref>
 
 
{{warning|Virtual <code>IfcZones</code> created by grouping multiple Revit <code>Room</code> objects will not maintain their <code>GlobalId</code> values on subsequent exports. Additionally, if two <code>ZoneName</code> parameters have the same value, but their other attributes, such as <code>ZoneDescription</code> are different, then only one will be exported, and the rest of the data will be lost. It is not clear to the user which will be retained and which will be lost, so care must be taken to manually ensure data consistency between all these fields.}}
 
 
The following attributes may be set:
 
 
{| class="wikitable"
 
! '''Attribute Name'''
 
! '''Required'''
 
! '''Procedure with Revit <code>HVAC Zone</code>'''
 
! '''Procedure with virtual zone from Revit <code>Room</code>'''
 
|-
 
| <code>Name</code>
 
| Yes
 
| This defaults to the <code>Name</code> parameter in the <code>Identity Data</code> parameter group, concatenated with the Revit <code>Element ID</code>. This concatenation usually results in an undesirable value. You can override this by creating a new <code>IfcName</code> instance parameter.
 
| Create a new <code>ZoneName</code> instance parameter, assigned to the <code>Room</code> object.
 
|-
 
| <code>Description</code>
 
|
 
| Create a new <code>IfcDescription</code> instance parameter, assigned to the <code>HVAC Zone</code> object.
 
| Create a new <code>ZoneDescription</code> instance parameter, assigned to the <code>Room</code> object.
 
|-
 
| <code>ObjectType</code>
 
|
 
| Create a new <code>IfcObjectType</code> instance parameter, assigned to the <code>HVAC Zone</code> object.
 
| Create a new <code>ZoneObjectType</code> instance parameter, assigned to the <code>Room</code> object.
 
|-
 
| <code>LongName</code>
 
| Yes
 
| Create a new <code>IfcLongName</code> instance parameter, assigned to the <code>HVAC Zone</code> object.
 
| Create a new <code>ZoneLongName</code> instance parameter, assigned to the <code>Room</code> object.
 
|}
 
Resources :
 
* [https://sourceforge.net/p/ifcexporter/wiki/Exporting%20Zones/ IFC for Revit wiki - Exporting Zones]
 
* [https://www.bim42.com/2018/03/ifc-for-revit-1/#ifczones bim42 IFC from Revit - Part 1]
 
 
==Element placement in Spatial Container==
 
Most elements in Revit will on export be assigned to an IfcBuildingStorey based on the value of parameters like <code>Base Level</code> for columns, <code>Base Constraint</code> for walls, <code>Level</code> for floors and <code>Reference Level</code> for beams. For Face Based families the parameter <code>Schedule Level</code> is used, which has to be set manually and is often forgotten.
 
 
It is possible to override the spatial container of an element by adding an instance parameter <code>IfcSpatialContainer</code>
 
 
The valid values are:
 
* <code>IfcSite</code> - for assigning objects to IfcSite, useful for objects outside the building
 
* <code>IfcBuilding</code> – for assigning objects to IfcBuilding
 
* <code>name of the level</code> - for assignment to a specific IfcBuildingStorey (= Level in Revit). Please note that the Level must be checked for export as Building Story
 
 
[[Category:Autodesk Revit]]
 

Please note that all contributions to Wiki.OSArch are considered to be released under the Creative Commons Attribution-ShareAlike (see Wiki.OSArch:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)

Templates used on this page: