I've been trying to encourage some of our less Revit-savvy building services engineers to utilise the Autodesk Viewer product. Unfortunately though, I have encountered a couple of problems, one of which I think I have solved and one which I am guessing is more to do with the Autodesk Viewer Applications programmed interaction with the model derivative API.
Initially I uploaded our services model with supporting architectural and structural models but the phase the solitary 3D view created in the viewer was "Existing" with a filter of "Show All". I managed to get around this by creating a 3D view in each model just called "3D" and setting the phase and filter as I like. Happy days.
Could this also have been better solved by setting generateMasterViews to true during the POST job on a custom Forge viewer app?
However, I am only getting some elements from the services model come through into the Autodesk Viewer application. Most notably it's missing ducts, sanitary pipework, cable trays, radiators. In the "3D" 3D view I have created everything is phased correctly, no issues from worksets, visibility graphics, view discipline is coordination (doesnt work to change to mechanical) and everything looks hunky dory in Revit. In the viewer though it's a different story. Even if I upload the services model on it's own. Strangely, in the 2d sheet views all the equipment and infrastructure is there fine, just in 3D it is now.
So my knowledge of Javascript and the Forge API is quite rudimental but I'm guessing the problem is with Autodesk Viewer's implementation of the model derivative API for when the model is translated to svf.
Does this sound correct?
Could it a bug within Autodesk's viewer app? I'm not too sure what the best Autodesk forum to post in would be.
Could it be a bug within the model derivative API? Or is it a setting that is beyond my knowledge?
I guessing I'm at a place where what I'm really after is a custom Forge viewer application to design in the functionality I am after, in this case control of phasing in the .svf file output and ensuring everything is coming through in the view.
Not the most interesting post by any stretch and if you're still reading now, thanks. But I'm sure I can't be the only one experiencing this problem. While I'd love to share a model to demonstrate whats happening, it's commercially sensitive unfortunately.
If anyone can shed a more technical light on
Cheers,Pete
Hi please make sure those elements are visible in 3D views and those 3D views are chosen in the publish settings of the Revit UI. Otherwise, the Model Derivative API will translate the default 3D view called {3D} only that might not contents proper element visibility configurations.
If this issue still persists after setting this up, please consider providing a none confidential model to forge[DOT]help[AT]autodesk[DOT]com for investigations. Thanks!
Related
Can we access the data used by Revit Material Takeoff from forge viewer API?
For example, I have a wall (1 element) that have 2 layers:
And now I want to get the volume for each layer from BIM360 viewer API, in the same way I can in Revit Material takeoff.
Thank you,
Please always remember that the Forge viewer and environment is completely generic and not tailored towards any specific domain or functionality.
In the case of an architectural wall, Forge is mainly interested in displaying the entire wall element and managing the parameters and properties directly associated with that top-level element.
The material takeoff information you are interested in is part of the wall's internal compound structure. Managing and accessing that information is domain specific, architectural and structural, and thus beyond the scope of the Forge viewer.
I rather doubt that that information is accessible in Forge or the BIM360 viewer.
So, it will not be available via the model derivative API either.
However, you can certainly access this data via the Forge Design Automation for Revit API.
The details of such an approach are discussed in a previous thread
on how to get wall structure from Autodesk Forge metadata.
I am experiencing slower render refreshing for a model in forge viewer, than for the same file in the BIM360 viewer. I am wondering whether it is possible to obtain the same performance in the forge viewer, and if so, how?
I have been looking through old posts on the subjected, where various settings are suggested.
The function viewer.impl.setFPSTargets, as suggested in an old post from 2018, was tested, but even though less objects visibly refreshed, it was on the expense of the graphical performance during view rotations. The viewer.impl.toggleVizBuffer, suggested in the same post seems to have been removed.
Are there any other options or settings I can test to improve my performance?
The object flickering experienced in the forge viewer can be seen here:
Forge viewer render refreshing
Whereas in the BIM360 viewer, the performance is much smoother:
BIM360 render refreshing
The difference in performance might be related to the new, significantly improved viewing format that Forge introduced not too long ago: https://forge.autodesk.com/blog/svf2-public-beta-new-optimized-viewer-format. BIM 360 has been using it for some time now.
If you'd like to give it a shot yourself, take a look at https://forge.autodesk.com/en/docs/model-derivative/v2/developers_guide/notes/.
I have problem with large model on Forge Viewer. Although i had translate it to SVF2 but it take so long to load and with any action it rerender all time (i known it a part of process). Are there any solutions like Proxy in 3Dsmax or when camera far from model it show low LOD and when scroll in it show higher LOD? What can i do to speed up model? Appreciate any solutions.
UPDATE:
Would you be able to confirm that you are really using SVF2 in the viewer? For example, do you see the viewer communicating via WebSockets in the Network tab?
So far we've seen major performance improvements across all projects switching over to this new file format, but it's possible that your model is so large/complex that even SVF2 isn't helping. In that case I'm afraid we won't have other solutions, other than perhaps splitting your design into multiple models, and loading only those that you really need. For example, Navisworks designs are often split by area and/or discipline, and the models are then loaded selectively by specific users. Check out this demo (specifically the checkbox matrix in the sidebar): https://forge-industrial-construction.autodesk.io/facility/montreal.
is there any way to revive data about what has been changed between versions (remove and add and modify):
via forge Model Derivative API, now I am able to get all the metadata of any Revit files but in total so I am not sure what elements added or .....
the problem we have a lot of files, and it's really hard to run a test to compare modes for each object
thank you :)
I am not aware of any built-in BIM360 or Forge functionaloity for obtaining that information.
I would suggest that you very clearly define exactly what information you wish to keep track of and determine how that can be obtained from a model, e.g., as you suggest, via the Forge Model Derivative API.
Then, you can create a snapshot of that data yourself and implement the functionality to track changes in it as you wish.
The Buiilding Coder discusses and shows how to solve the exact same task for Revit BIMs using the Revit API on the Windows desktop:
Tracking Element Modification
Implementing the TrackChangesCloud External Event
Those articles provide ideas and guidelines on some aspects to take into consideration addressing the same task in Forge.
I need to get room/area objects with the hierarchy of linked objects from the Revit model via Forge. Right now I am using this project as a starting point. Unfortunately, the room information is lost. As far as I understand, it is removed during the translation process. There are some workarounds like this one, but it doesn't seem to work for our case. Is there any straightforward way to retrieve room information from rvt in Forge?
Although there is not directly way to get room information via the Forge translator, there are still some workarounds to archive this:
Open Revit project with room elements only via the Navisworks, and upload to Forge for translation, use this result as the secondary model of your viewer app as well.
Extract room info. and object relationships via Revit API, and use external mapping feature of the Forge Viewer to rebuild partial relationships between elements and rooms, if room geometry info. is not required.
Hope this help.
Unfortunately room information is not exposed through the Forge translation at the moment. We have a change request pending about it because several developers have been asking this feature. It will be provided in the future but at the moment the best workaround is the link that you pointed out. Sorry for the bad news.