Autodesk / revit-ifc

IFC for Revit and Navisworks (2019+)
486 stars 196 forks source link

Prevent grids from being duplicated on every storey #533

Open Moult opened 2 years ago

Moult commented 2 years ago

Why are grids duplicated on every storey? This is not semantically correct, if I ask how many grids a project has or grid axes, I'd get the wrong number, not mention a huge duplication of elements (e.g. project with 20x20 grids x 50 storeys). Is there a way to tell Revit only to export it once? Logically the grids should be assigned to the building.

AngelVelezSosa commented 2 years ago

This was done for ifc2x3 certification. In Revit, grid lines are at the document level and are really surfaces of linear extrusion have vertical extents. We don't have a concept of an IfcGrid. In IFC, grids are 2D objects that are associated with a building story. Are you suggesting only have the grid on one level, or have the grid referenced by multiple building storeys?

Moult commented 2 years ago

There is a diagram on the IFC docs that suggest that grids can be associated with a storey, which sometimes makes sense (e.g. multistorey mixed use developments where there is a carpark grid, a residential grid, a commercial / retail grid, podium levels with transfer slabs, etc), but the more common usecase is to have a grid that is common to the entire building. Are you saying there is a rule in IFC that says that grids must be contained in a storey?

AngelVelezSosa commented 2 years ago

I'm not sure if there is an IA that says that a grid must be associated to a level. So it would be possible if a grid had no axes with clipped extents to associate it with the building or site, assuming no such restriction exists. But:

  1. If a grid does have vertical extents, then it must be associated with every building story it is visible on (not sure how else to do that).
  2. Certification files had a different grid on each level.
  3. Agreed that one grid is likely the most common case. For any interesting building, though, I can imagine the grids changing per groups of levels (e.g. retail floors of hotel that are larger than/unadorned with the residential floors).
AngelVelezSosa commented 2 years ago

Unaligned, not unadorned.

Moult commented 2 years ago

If a grid does have vertical extents, then it must be associated with every building story it is visible on

Referenced in spatial structure seems to be the appropriate method?

For any interesting building, though, I can imagine the grids changing per groups of levels

Indeed, it would be great for the user to control this. I know Revit doesn't have the concept of grids, but potentially Revit can group by grid axes vertical extents to determined IfcGrids, and then if one grouping is found, then the grids apply to the entire building, otherwise they are contained in the base storey determined by the vertical extents and then referenced in all other storeys (this is the same approach used for multi-storey columns).

TZwielehner commented 1 year ago

When looking at IfcGridPlacement (not really supported by any application, I know) I see the following problem. If the grid is added to building then every object placed on an IfcVirtualGridIntersetion needs a vertical offset; however, the objects do not reference the same local placement as its container. (it says "should" though). If the grid is placed in each storey they reference the same local placement but we have duplicate grids. Which way would be preferred? I would like to see a grid intersection that allowed a storey or local placement (=plane) as a vertical offset option.

LSMMrdk commented 1 year ago

On a slightly related note, even if you use "Show Grids" in a 3D view and check only a single level, the grids are exported for all levels. Regardless of checking the view dependent export options in setup.

MIVillegas commented 7 months ago

Any developments in this front? I see another point in IfcGrids not being really object-acknowledged by any viewer...

AngelVelezSosa commented 7 months ago

No progress here - the original point stands that IFC just doesn't have a good structure for grids. Ideally, grids would be associated with the building and have vertical extents, but that's not part of the schema.