Conversion from Revit¶
Due to multidisciplinarity of both BHoM and Revit, conversion from Revit is not always a singular problem: some elements can be converted into multiple BHoM types, depending on user's discipline preference set in RevitPullConfig. Table below contains a matrix of possible converts organized by discipline.
Revit Category |
Revit Type |
BHoM Physical |
BHoM Structural |
BHoM Envinronments |
BHoM Architecture |
BHoM Facade |
|---|---|---|---|---|---|---|
| Grids | Autodesk.Revit.DB.Grid |
BH.oM.Geometry.SettingOut.Grid |
BH.oM.Geometry.SettingOut.Grid |
BH.oM.Geometry.SettingOut.Grid |
BH.oM.Geometry.SettingOut.Grid |
BH.oM.Geometry.SettingOut.Grid |
| Levels | Autodesk.Revit.DB.Level |
BH.oM.Geometry.SettingOut.Level |
BH.oM.Geometry.SettingOut.Level |
BH.oM.Geometry.SettingOut.Level |
BH.oM.Geometry.SettingOut.Level |
BH.oM.Geometry.SettingOut.Level |
| Walls | Autodesk.Revit.DB.Wall |
BH.oM.Physical.Elements.Wall |
BH.oM.Structure.Elements.Panel |
BH.oM.Environment.Elements.Panel |
BH.oM.Physical.Elements.Wall |
BH.oM.Facade.Elements.CurtainWall |
| Floors / Foundation Slabs | Autodesk.Revit.DB.Floor |
BH.oM.Physical.Elements.Floor |
BH.oM.Structure.Elements.Panel |
BH.oM.Environment.Elements.Panel |
BH.oM.Physical.Elements.Floor |
BH.oM.Physical.Elements.Floor |
| Roofs | Autodesk.Revit.DB.RoofBase |
BH.oM.Physical.Elements.Roof |
BH.oM.Structure.Elements.Panel |
BH.oM.Environment.Elements.Panel |
BH.oM.Physical.Elements.Roof |
BH.oM.Physical.Elements.Roof |
| Structural Columns | Autodesk.Revit.DB.FamilyInstance |
BH.oM.Physical.Elements.Column |
List<BH.oM.Structure.Elements.Bar> |
BH.oM.Physical.Elements.Column |
||
| Structural Framing | Autodesk.Revit.DB.FamilyInstance |
BH.oM.Physical.Elements.Beam / BH.oM.Physical.Elements.Bracing |
List<BH.oM.Structure.Elements.Bar> |
BH.oM.Physical.Elements.Beam / BH.oM.Physical.Elements.Bracing |
||
| Windows | Autodesk.Revit.DB.FamilyInstance |
BH.oM.Physical.Elements.Window |
BH.oM.Physical.Elements.Window |
BH.oM.Physical.Elements.Window |
BH.oM.Facade.Elements.Opening |
|
| Doors | Autodesk.Revit.DB.FamilyInstance |
BH.oM.Physical.Elements.Door |
BH.oM.Physical.Elements.Door |
BH.oM.Physical.Elements.Door |
BH.oM.Facade.Elements.Opening |
|
| Curtain Panels | Autodesk.Revit.DB.Panel |
BH.oM.Physical.Elements.Window |
BH.oM.Physical.Elements.Window |
BH.oM.Physical.Elements.Window |
BH.oM.Facade.Elements.Opening |
|
| Ceilings | Autodesk.Revit.DB.Ceiling |
BH.oM.Architecture.Elements.Ceiling |
BH.oM.Environment.Elements.Panel |
BH.oM.Architecture.Elements.Ceiling |
BH.oM.Architecture.Elements.Ceiling |
|
| Spaces / Rooms | Autodesk.Revit.DB.SpatialElement |
BHoM.Architecture.Elements.Room |
BH.oM.Environment.Elements.Space |
BHoM.Architecture.Elements.Room |
BHoM.Architecture.Elements.Room |
|
| Project Information | Autodesk.Revit.DB.ProjectInfo |
BH.oM.Environment.Elements.Building |
||||
| Analytical Surfaces | Autodesk.Revit.DB.Analysis.EnergyAnalysisSpace |
BH.oM.Environment.Elements.Space |
BH.oM.Environment.Elements.Space |
BH.oM.Environment.Elements.Space |
BH.oM.Environment.Elements.Space |
|
| Interior, Exterior, Shades | Autodesk.Revit.DB.Analysis.EnergyAnalysisSurface |
BH.oM.Environment.Elements.Panel |
BH.oM.Environment.Elements.Panel |
BH.oM.Environment.Elements.Panel |
BH.oM.Environment.Elements.Panel |
|
| Opening | Autodesk.Revit.DB.Analysis.EnergyAnalysisOpening |
BH.oM.Environment.Elements.Panel |
BH.oM.Environment.Elements.Panel |
BH.oM.Environment.Elements.Panel |
BH.oM.Environment.Elements.Panel |
|
| Families | Autodesk.Revit.DB.Family |
BH.oM.Adapters.Revit.Elements.Family |
BH.oM.Adapters.Revit.Elements.Family |
BH.oM.Adapters.Revit.Elements.Family |
BH.oM.Adapters.Revit.Elements.Family |
BH.oM.Adapters.Revit.Elements.Family |
| Materials | Autodesk.Revit.DB.Material |
BH.oM.Physical.Materials.Material |
BH.oM.Structure.MaterialFragments.IMaterialFragment |
BH.oM.Environment.MaterialFragments.SolidMaterial |
BH.oM.Physical.Materials.Material |
BH.oM.Physical.Materials.Material |
| Sheets | Autodesk.Revit.DB.Sheet |
BH.oM.Adapters.Revit.Elements.ViewSheet |
BH.oM.Adapters.Revit.Elements.ViewSheet |
BH.oM.Adapters.Revit.Elements.ViewSheet |
BH.oM.Adapters.Revit.Elements.ViewSheet |
BH.oM.Adapters.Revit.Elements.ViewSheet |
| Viewports | Autodesk.Revit.DB.Viewport |
BH.oM.Adapters.Revit.Elements.Viewport |
BH.oM.Adapters.Revit.Elements.Viewport |
BH.oM.Adapters.Revit.Elements.Viewport |
BH.oM.Adapters.Revit.Elements.Viewport |
BH.oM.Adapters.Revit.Elements.Viewport |
| Views (Plan) | Autodesk.Revit.DB.ViewPlan |
BH.oM.Adapters.Revit.Elements.ViewPlan |
BH.oM.Adapters.Revit.Elements.ViewPlan |
BH.oM.Adapters.Revit.Elements.ViewPlan |
BH.oM.Adapters.Revit.Elements.ViewPlan |
BH.oM.Adapters.Revit.Elements.ViewPlan |
| Ducts | Autodesk.Revit.DB.Mechanical.Duct |
BH.oM.MEP.System.Duct |
BH.oM.MEP.System.Duct |
BH.oM.MEP.System.Duct |
||
| Pipes | Autodesk.Revit.DB.Plumbing.Pipe |
BH.oM.MEP.System.Pipe |
BH.oM.MEP.System.Pipe |
BH.oM.MEP.System.Pipe |
||
| Wires | Autodesk.Revit.DB.Electrical.Wire |
BH.oM.MEP.System.Wire |
BH.oM.MEP.System.Wire |
BH.oM.MEP.System.Wire |
||
| Cable Trays | Autodesk.Revit.DB.Electrical.CableTray |
BH.oM.MEP.System.CableTray |
BH.oM.MEP.System.CableTray |
BH.oM.MEP.System.CableTray |
||
| Fittings | Autodesk.Revit.DB.FamilyInstance |
BH.oM.MEP.System.Fittings.Fitting |
BH.oM.MEP.System.Fittings.Fitting |
BH.oM.MEP.System.Fittings.Fitting |
||
| Builders Work Openings | Autodesk.Revit.DB.FamilyInstance |
BH.oM.Architecture.BuildersWork.Opening |
BH.oM.Architecture.BuildersWork.Opening |
|||
| Mullions | Autodesk.Revit.DB.Mullion |
BH.oM.Facade.Elements.FrameEdge |
In case of conversion to structural BHoM types, Revit element is first queried for its analytical model, and its physical representation is used only if the former does not exist.
If a Revit element is requested to be pulled and there is no explicit convert method for its type and given discipline, it will get converted into a ModelInstance, DraftingInstance or InstanceProperties, which are generic BHoM wrappers for Revit elements. If that fails too, a BHoMObject with only basic information is returned. The conversion procedure is shown in the flowchart below.
Every time a Revit element is converted, its element type is converted along it. The information about the latter can be stored in 2 ways:
- in defining BHoM property, e.g.
ConstructionofWall- the characteristics of the element type as well as its parameters are converted and attached to this property (Wall.Constructioncontains the information about the Revit wall type and its parameters) - in
RevitTypeFragmentattached to the BHoM object representing the element (in case the BHoM object does not have a defining property that could correspond to the Revit element type, e.g.Architecture.Room) - only parameters of the element type are converted and stored in the fragment to allow querying and updating them
To find out where is the Revit element type information stored inside a particular BHoM object, it is recommended to call GetRevitElementType.
