When to use C# and ASP.NET Core for BIM automation
When selecting the best programming language for BIM tasks, consider the following:
1. For simple tasks without programming experience and no need for system integration, Dynamo is the best choice.
2. For more complex tasks that involve managing code, using Revit APIs, and for users familiar with Python, choose Python and Revit APIs.
3. If high performance, integration with external systems, creating plugins with interfaces, developing web applications, and having skilled users in C# and ASP.NET Core are essential, then C# and ASP.NET Core are the optimal selections.
Advantages of C# over IronPython and Dynamo:
1. High performance due to its compilable nature.
2. Robust language with a wide range of capabilities.
3. Full access to functions within the .NET Framework and Revit API.
4. Seamless integration with other languages and technologies.
5. Rich collection of NuGet packages that enhance the language's standard features.
6. Ability to develop sophisticated graphical interfaces (windows).
7. Stricter typing, making debugging and error detection easier during compilation.
Downsides of C#:
1) Complex syntax and a higher learning curve compared to IronPython, especially for beginners.
2) Learning C# requires understanding various technologies, principles, and frameworks like WPF, ASP.NET Core, MVVM, etc.
3) Longer compilation and deployment times compared to interpreted languages.
C# and ASP.NET Core are closely related tools used for creating web applications and services. In BIM design, these tools are valuable for developing custom applications, integrating processes, automating tasks, and manipulating BIM data. Here's how they can be applied:
1) Custom Application Development: C# and ASP.NET Core enable developers to create applications that interact with BIM models and data. These apps can simplify tasks like viewing, editing, analyzing BIM models, and performing specific design functions.
2) Integration with BIM Platforms: These tools allow seamless integration with BIM platforms like Autodesk Revit, Trimble Tekla Structures, and Autodesk Forge. This enables users to interact with BIM models and data, retrieve information, update models, and perform calculations.
3) Process Automation: C# and ASP.NET Core can automate routine tasks in BIM design. For example, they can be used to auto-generate reports, conduct model conformance checks, optimize workflows, or generate code for configuring objects within a model.
4) BIM Data Manipulation: These tools provide robust capabilities for handling BIM data, including reading, writing, and processing information. This supports the development of applications for data analysis, report generation, and integration with external systems.
Choose C# and ASP.NET Core when you need to develop complex and scalable plugins that require high performance and full access to Revit APIs.