Optimize the Export
We are now using our core mesh cache technology to optimize the RevLink export. Objects that generate the same parts and have the same 3D will share a Revit Family. While testing this we found a few common problems in the 3D generation code in different extensions. Below are some tips on how you can find those problems. Not only will you get better RevLink export, but the real-time 3D in CET will also be faster since the same technology is used.
Common Snapper 3D Problems
-
We found a few places where the origin for texture coordinates was specified in space coordinates. Since the position of each snapper is unique, this will stop the cache from working properly and you will get more Revit types than needed. Here's an example:
tile.setTextureSpace(PlaneTextureSpace3D(panel.pos, (0, 1, 0), (0, 0, 1)));
Fix it by simply changing to local coordinates (0, 0, 0).
tile.setTextureSpace(PlaneTextureSpace3D((0, 0, 0), (0, 1, 0), (0, 0, 1)));
You can likely find the problem by tag searching with the following regexp "TextureSpace3D(.*pos"
- Make sure to run auto crash with the "3D Equal" & the "Soul Purity" action checked. These actions will check for common errors that will make RevLink export work less well, but also slow down your normal real-time 3D.
Customized Keys
By default, we are using parts and 3D to decide which snappers should be merged. But this behavior is customizable. If you have any unique key for your snappers, implement the function below. It will make your export faster and more accurate. cm/abstract/dataSymbol/dataSymbol.cm
/** * Revit key. All objecs with same key will share the same family type. * * This method will be called dynamically from custom.revLink. */ extend public str getStrongRevitFamilyTypeKey() { return data ? data.uniqueKey() : null; } /** * Revit family name. * * This method will be called dynamically from custom.revLink. */ extend public str getRevitFamilyName() { return data ? data.partNumber() : null; }
getWeakRevitFamilyTypeKey()
. All snappers with the same weak key will be merged into the same type, if the 3D is equal.The basic export is based on exporting DWG from CET and importing it into Revit with some metadata. Another option is to replace your snappers with native revit families.
Revit Native Family Mapping
It is possible to map CET symbols to native Revit families. That way the architects get parametric objects that are optimized for Revit.
Implementation details can be found here.
We will update this page with more information, but do let us know if you want to add this kind of mapping to your CET symbols.
Comments
0 comments
Please sign in to leave a comment.