All Projects → Autodesk-Forge → forge-checkmodels-createissues-revit

Autodesk-Forge / forge-checkmodels-createissues-revit

Licence: MIT License
Design Check with Design Automation for Revit: Perform a basic design check on models uploaded to BIM 360 and log conflicts as Issues

Programming Languages

C#
18002 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to forge-checkmodels-createissues-revit

forge-createfamily-revit
Window Family Creation Sample of Design Automation for Revit
Stars: ✭ 19 (+0%)
Mutual labels:  autodesk-revit, autodesk-data-management, autodesk-designautomation
Hangfire.Dashboard.BasicAuthorization
Hangfire.Dashboard.BasicAuthorization for .netcore
Stars: ✭ 34 (+78.95%)
Mutual labels:  hangfire
hangfire-dashboard-customize
Customize your Hangfire Dashboard (e.g. Change the Title of the Dashboard)
Stars: ✭ 19 (+0%)
Mutual labels:  hangfire
Hangfire.StructureMap
Hangfire background job activator based on the StructureMap IoC container
Stars: ✭ 16 (-15.79%)
Mutual labels:  hangfire
Hangfire.Heartbeat
Server monitoring plugin for Hangfire.
Stars: ✭ 71 (+273.68%)
Mutual labels:  hangfire
forge-digital-twin
Autodesk Forge application demonstrating various use cases in manufacturing, specifically in context of digital twins.
Stars: ✭ 95 (+400%)
Mutual labels:  autodesk-data-management
forge-bucketsmanager-desktop
View, Upload & Translate models: Desktop sample tool (.NET) to manage bucket, objects and translations (extract SVF)
Stars: ✭ 44 (+131.58%)
Mutual labels:  autodesk-data-management
forge-viewhubs-desktop
Autodesk design file explorer for desktop: Demonstrates a desktop application that shows BIM 360 Team, BIM 360 Docs and Fusion Team hubs, which respective Projects, Folders, Items and Versions
Stars: ✭ 31 (+63.16%)
Mutual labels:  autodesk-data-management
Hangfire.AzureDocumentDB
Azure DocumentDB storage provider for Hangfire
Stars: ✭ 14 (-26.32%)
Mutual labels:  hangfire
Hangfire.Atoms
Execute multiple jobs as a one atomic job.
Stars: ✭ 20 (+5.26%)
Mutual labels:  hangfire
Hangfire.MissionControl
A plugin for Hangfire that enables you to launch jobs manually.
Stars: ✭ 51 (+168.42%)
Mutual labels:  hangfire
Hangfire.MemoryStorage
A memory storage for Hangfire.
Stars: ✭ 113 (+494.74%)
Mutual labels:  hangfire
pyApex
Apex Project BIM Utils - pyRevit extension
Stars: ✭ 20 (+5.26%)
Mutual labels:  autodesk-revit
design.automation-python-tutorial
Design Automation sample in Python: Shows how to get token and check the status of one existing work item
Stars: ✭ 29 (+52.63%)
Mutual labels:  autodesk-designautomation
SdvCodeWebsite
Simeon Valev - Personal Blog - Developed on ASP.NET Core MVC - Server-Side Blazor - See README.md file for more information
Stars: ✭ 38 (+100%)
Mutual labels:  hangfire
Hangfire
An easy way to perform background job processing in your .NET and .NET Core applications. No Windows Service or separate process required
Stars: ✭ 7,126 (+37405.26%)
Mutual labels:  hangfire
Hangfire.JobsLogger
A Hangfire extension to store a log during job execution.
Stars: ✭ 21 (+10.53%)
Mutual labels:  hangfire

Checks models and creates BIM 360 Issues

Platforms .NET oAuth2 Data-Management Webhook Design-Automation

Platforms .NET Revit

Advanced License

Description

This sample monitors a BIM 360 Folder for version.added event, when a new RVT file (or version) is uploaded, it triggers Design Automation for Revit to perform a basic design check, which generates a list of externalId of elements that did not pass the check. This information is used to create a BIM 360 Issue, which appears on BIM 360 UI with a link to a customer Viewer to display the elements with issues.

This sample is based on this Webhook sample. Learn more about Webhooks and 3-legged Refresh & Access Token at this blog post. Also based on the Learn Forge Tutorial.

Thumbnail

thumbnail

Demonstration

Whatch the recording at Youtube.

Live version

Try it at revitdesigncheck.herokuapp.com, use the FindColumns-Basic.rvt sample file.

Setup

Prerequisites

  1. Forge Account: Learn how to create a Forge Account, activate subscription and create an app at this tutorial.
  2. Visual Studio: Either Community (Windows) or Code (Windows, MacOS).
  3. .NET Core basic knowledge with C#
  4. ngrok: Routing tool, download here
  5. MongoDB: noSQL database, learn more. Or use a online version via Mongo Altas (this is used on this sample)
  6. AWS Account: S3 buckets are used to store result files
  7. Revit 2019: required to compile changes into the plugin

Running locally

Clone this project or download it. It's recommended to install GitHub desktop. To clone it via command line, use the following (Terminal on MacOSX/Linux, Git Shell on Windows):

git clone https://github.com/autodesk-forge/design.automation-csharp-revit.check.issues

Visual Studio (Windows):

Right-click on the project, then go to Debug. Adjust the settings as shown below.

Visual Sutdio Code (Windows, MacOS):

Open the folder, at the bottom-right, select Yes and Restore. This restores the packages (e.g. Autodesk.Forge) and creates the launch.json file. See Tips & Tricks for .NET Core on MacOS.

MongoDB

MongoDB is a no-SQL database based on "documents", which stores JSON-like data. For testing purpouses, you can either use local or live. For cloud environment, try MongoDB Atlas (offers a free tier). With MongoDB Atlas you can set up an account for free and create clustered instances, intructions:

  1. Create a account on MongoDB Atlas.
  2. Under "Collections", create a new database (e.g. named designcheck) with a collection (e.g. named users).
  3. Under "Command Line Tools", whitelist the IP address to access the database, see this tutorial. If the sample is running on Heroku, you'll need to open to all (IP 0.0.0.0/0). Create a new user to access the database.

At this point the connection string should be in the form of mongodb+srv://<username>:<password>@clusterX-a1b2c4.mongodb.net/designcheck?retryWrites=true. Learn more here

There are several tools to view your database, Robo 3T (formerly Robomongo) is a free lightweight GUI that can be used. When it opens, follow instructions here to connect to MongoDB Atlas.

AWS Account

Create an AWS Account, allow API Access, the access key and secret key will be used on this sample.

ngrok

Run ngrok http 3000 -host-header="localhost:3000" to create a tunnel to your local machine, then copy the address into the FORGE_WEBHOOK_URL environment variable.

Environment variables

At the .vscode\launch.json, find the env vars and add your Forge Client ID, Secret and callback URL. Also define the ASPNETCORE_URLS variable. The end result should be as shown below:

"env": {
    "ASPNETCORE_ENVIRONMENT": "Development",
    "ASPNETCORE_URLS" : "http://localhost:3000",
    "FORGE_CLIENT_ID": "your id here",
    "FORGE_CLIENT_SECRET": "your secret here",
    "FORGE_CALLBACK_URL": "http://localhost:3000/api/forge/callback/oauth",
    "OAUTH_DATABASE": "mongodb+srv://<username>:<password>@clusterX-a1b2c4.mongodb.net/designcheck?retryWrites=true",
    "FORGE_WEBHOOK_URL": "your ngrok address here: e.g. http://abcd1234.ngrok.io",
    "AWS_ACCESS_KEY": "your AWS access key here",
    "AWS_SECRET_KEY": "your AWS secret key here"
},

Revit plugin

A compiled version of the Revit plugin (.bundles) is included on the web module, under wwwroot/bundles folder. Any changes on these plugins will require to create a new .bundle, the Post-build event should create it. Please review the readme.

Start the app.

Open http://localhost:3000 to start the app, select a folder to start monitoring. Upload a new version of the Revit file (see /samples folder) and the process should start.You can monitor the Jobs via Hangfire dashboard: http://localhost:3000/hangfire.

Deployment

To deploy this application to Heroku, the Callback URL for Forge must use your .herokuapp.com address. After clicking on the button below, at the Heroku Create New App page, set your Client ID, Secret and Callback URL for Forge.

Deploy

Further Reading

Documentation:

Desktop APIs:

Other APIs:

Known Issues

  • Webhook triggers twice for new files, currently under investigation.

Tips & Tricks

This sample uses .NET Core and works fine on both Windows and MacOS, see this tutorial for MacOS.

Troubleshooting

  1. Cannot see my BIM 360 projects: Make sure to provision the Forge App Client ID within the BIM 360 Account, learn more here. This requires the Account Admin permission.

  2. error setting certificate verify locations error: may happen on Windows, use the following: git config --global http.sslverify "false"

License

This sample is licensed under the terms of the MIT License. Please see the LICENSE file for full details.

Written by

Augusto Goncalves @augustomaia, Forge Partner Development

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].