I completed a first revision of the ForgeFader project, bringing it up to par with RvtFader.
It is pretty cool seeing the same functionality implemented in two such different ways, on completely different platforms, using different tools.
Alan Seidel shared another exciting Revit add-in.
First and not least, another exciting topic for me personally is switching to half-time work:
Starting April 1, I am working half time.
Unfortunately, April 1 fell on Saturday, we held a team meeting in Gothenburg, and my flight back home with Air Berlin was cancelled, so I ended up working a lot on that specific day, and a weekend, to boot.
I also ended up working more than full time the last two days, finishing off the ForgeFader sample.
Up to me to stop, though.
From now on, my aim is to focus on the Revit question answering system Q4R4, blog, mentor my new colleagues (when they materialise) and spend less time with cases and repetitive questions.
They should be handled automatically by Q4R4 anyway :-)
Allan @aksaks @akseidel Seidel is really churning them out now!
He shared another full-fledged and advanced Revit add-in in his Revit API discussion forum thread on giving back – a workshared file to be local file opener:
In the spirit of giving back for all the help garnered here to experiment with this idea, and also the challenge to make a Revit file opening video slightly more interesting than watching paint dry, here is something that might be useful to some. Its purpose is to be a one click open a Revit workshared file to be a local file without needing further user input and to do so maintaining the local Revit disk storage area organized better than a heap.
This is a beautiful and advanced sample that provides many important programming pointers.
I love the RevitFileSniffer
to read BasicFileInfo
directly from binary RVT.
Here are Allan's video and repository notes:
What is more boring than a Revit file opener? A video of opening a Revit file. That was the challenge here; how to show a one click Revit workshared file opener that opens a workshared central file as a local file without requiring any more user input beyond that first click.
RevitAKSOpen is a Revit add-in in C# that creates a custom ribbon tab with a single control for opening workshared Revit files in one click. The same control is added to the Addins tab. The controls are modeless, active at all times.
Opening a workshared Revit file to be a Local work file is a multistep process. Revit, furthermore, is sloppy about it. It trashes the same local folder with all the local files and their overhead files it saves. Revit also leaves a trap in the Revit desktop when it deposits an icon for the central file one chose. Of course, one can reopen the saved local file instead of the central file, but some are not so daring and often forget to do the critical initial sync. Their Revit managers might insist they never use a local to avoid "issues". Autodesk's publications actually suggest to operate that way. Situations where the Revit coordinator replaces the central file with a copy orphans the local file, so one has to start from the central file again.
Why not present the user with choices from what they have already been working on or point them to choices of the appropriate Revit version to be opened ready to go as a local file stored in an organized, structured pattern while also saving previous work in a similar manner. This add-in does that. It tries, in one click, to automatically pass the various Revit roadblocks and hazards, with added smarts, to properly open a workshared file.
This add-in demonstrates many of the typical tasks and implementation required for providing a tab menu interface and dealing with files. A back-burner improvement is to make the user selection landing areas larger, perhaps changing to or adding preview icons to the interface.
"Tell Me About It" Mode
Zero document state operation
Writing to the Revit status bar
Useful mundane file and directory operations for reuse
This repository is provided for sharing and learning purposes. Perhaps someone might provide improvements or education. Perhaps it will help to boost someone further up the steep learning curve needed to create Revit task add-ins. Hopefully it does not show too much of the wrong way.
Much of the code is by others. Its mangling and ignorant misuse is my ongoing doing. Much thanks to the professionals like Jeremy Tammik who provided the means directly or by mention one way or another for probably all the code needed.
Many thanks to Allan for putting together and sharing this!
RvtFader is pretty well documented in its GitHub repository.
I described the initial release talking about RvtFader, AVF, ray tracing and signal attenuation.
I think it provides a cool starting point for any new little application as well, implementing:
It uses the Revit API ReferenceIntersector
ray tracing functionality to detect walls and
the analysis visualisation framework AVF to display the heat map.
The result of launching the command and picking a point looks like this:
ForgeFader implements the same functionality as RvtFader in the Forge viewer environment.
It is an extension app that calculates and displays signal attenuation caused by distance and obstacles in a building model with a floor plan containing walls.
Instead of the Revit API functionality, it makes use of JavaScript and three.js.
Here is the result of processing the model displayed above in Revit using ForgeFader:
The four-minute ForgeFader Autodesk Forge sample app YouTube video explains some of the background and shows this sample app live in action:
So far, I discussed two implementation steps here on The Building Coder; and a third important step was contributed by Cyrille Fauvel:
ForgeFader is based on Philippe Leefsma's Forge React boilerplate sample. Please refer to that for more details on the underlying architecture and components used.
Now the time is more than overdue for me to stop working and get out and do something else!
Already half-way through the third day of the week, and sitting here blogging...