- Revit Terminology
- Revit Data Distribution
- CET Snapper to Revit Family Instance Mapping
- How to Decide the Insertion Point and Rotation?
- Future Development
The conventional RevLink uses DWG as an intermediate format to get 3D graphics from CET
Designer to Revit. As such, certain limitations existed such as the objects were not parametric
and they are only as detailed as the export LOD allowed.
Native Revit family mapping broadens the possibilities with RevLink and simplifies work
further. By swapping out the DWG models with native Revit families, users benefit from faster
import, more detailed models which yield better renderings and better work coordination as the
native families would be parametric and therefore changes can be made directly in Revit. Aside
from that, it is also possible to achieve a smoother transition along the BIM cycle as the
completeness of the native family is controlled by manufacturers, thus allowing the models to
fit for various stages of BIM.
To enable the native family mapping, the customization team needs to provide RevLink with
information on how to do the mapping from CET to Revit.
Revit Terminology
Name | Definition | Example |
Family |
All of the elements you use in Revit are families. Some families, such as walls or level datums, are included in the project environment. |
Work chair Series 111 |
Family Type |
Variations of the family element. For example, a family could be a chair, and the types are 2 different heights of that chair. |
WCS 5” height range, |
Family Instance |
Instances are the actual items |
The chair placed in the general office is one instance of a “Work chair Series 111” Family Type. |
Family Instance Properties |
Contain information related to a |
Without Lumbar = |
Family Type Properties |
Contain information that applies to |
Fixed arm = Yes/ No |
Material Properties |
Material properties are type or |
Shell material = Material032 |
Revit Data Distribution
Family Files
To facilitate the import of the layout from CET into Revit, family files along with
their relevant family types that correspond to symbols used in CET should be made
available locally on the Revit machine. This can be achieve by the following approaches:
-
Using data catalogue (recommended)
Native Revit families that corresponds to symbols used in the drawing layout will be
downloaded in the background as the user works in CET. The families will
then be packed with the exported layout and unpacked when imported into Revit.
-
As a CET extension
Native Revit families will be downloaded at the start of CET and made
readily even before a layout is exported from CET. Similar to the former
approach, the families will then be packed with the exported layout and unpacked
when imported into Revit.
-
User download
Manufacturers can make their native Revit families available online for users to
perform a local download. Users will have to specify the location of the downloaded
families in Revit prior to importing the floor layout.
Materials
If you have Revit materials available for your users, they can be distributed with any of the
following:
-
One family file containing all Revit materials (recommended)
This family file containing all the Revit materials will be packed with the exported
CET layout. Users will not need to perform additional imports of the
materials in Revit.
- Each family file is incorporated with the materials.
- Materials are distributed as a separate Revit template that users have to manually
import into Revit prior to layout import.
When importing the CET layout into Revit, the imported Revit materials will be
mapped accordingly to the native families.
CET Snapper to Revit Family Instance Mapping
CET will attempt to translate each CET symbol to a Revit Family
Instance. For each symbol that should be mapped to a native Revit family, the customization
needs to specify the following information:
- Family and family type.
- Manufacturer and what information to show the user if any native family file is
missing. - How to place the family. If the object is drawn using different coordinate systems in
CET and Revit, we need to map those.
It is recommended that properties (e.g. height, width, surface material) also should be
specified to preserve the Revit families’ parametric array.
To map a snapper to a native family, the snapper to be mapped must implement this method:
/** * Get Revit Native Data */ extend public RevitNativeData getRevitNativeData() {}
You can also try out custom.revLink.test to see some example implementations!
How to Decide the Insertion Point and Rotation?
The trickiest part is to decide how to place the families. If we do it incorrectly, the furniture
might end up in the wrong place with the wrong orientation. Example:
The picture below shows how a family is drawn in Revit. The intersection between the reference lines (the green dotted lines) is called the insertion point.
In CET the coordinate system of the snapper is defined like the picture below, with green representing the y axis and the red line representing the x-axis.
If we had been lucky, the coordinate systems for the snapper and Revit family would have been identical. Unfortunately, in this case, they were not. So the first thing to do is to decide how much to rotate the Revit family to make it match the CET snapper. In this case, the chairs are facing opposite directions. So the correct rotation is 180 degrees. In Revit, rotation is done around the insertion point. After rotating, we also need to move the model a little bit. In Revit, the insertion point is at the center of the column, but in CET it’s at the front of the seat. So the position needs to be (0, distance from column center, 0). Note that the move is done after the rotation.
To make it easier to find the correct values, there is a helper function in home/custom/revLink/test/debug.cm. By calling that from the 2D method in your snapper, you can easily find out the correct value. Before you have specified any rotation and position, it looks exactly like the CET snapper above. If you specify 180 degrees as rotation, it will look like this:
If you compare that to the Revit family, you can see that the y-axis now has the same direction. But the center points are still off. So to correct that, we need to specify a position. The easiest thing is to measure in Revit. Sometimes we can use the dimensions of the snapper to calculate this position (like d/w, w, etc), but in this case, the easiest thing is probably to measure in Revit.
So by specifying (0, 11.13”, 0), we now get this:
And if we rotate the snapper to make the y axis point up, we can now see that it’s the same coordinate system as we use in Revit.
Future Development
We are looking at further improving our catalogue symbol support. Using the catalogue creator,
we envision that it will be possible to define the mapping to native Revit families. This means
that no coding will be needed to get the native family file mapping to work for catalogue
symbols. Do contact us if you are interested to discuss the possibilities.
Comments
0 comments
Please sign in to leave a comment.