This article provides best practices for working with families in Autodesk Revit. Families are needed to store information about the project, surface parameters (dimensions, angles of rotation, position relative to the origin, etc.). The program provides for saving the parameters of the family as a template for further use in design. This makes it easy to set up software templates for future projects, allowing you to develop template libraries for use in programming cable support projects. For development, the SharpDevelop programming language is used, which allows programmatically reading information from projects, determining identifiers of families of different levels in existing projects, generating new identifiers for the file of common parameters. Each family programmatic identifier is unique and is an internal programmatic variable for identifying families and their parameters. From a programming point of view, a set of identifiers allows interaction with external software libraries, plug-ins that automate the design of cable support systems.
Since Autodesk Revit software provides interaction with the SQLite query designer, it is important to be able to read project parameters using SQL queries, save them in the project database, and organize references to family IDs in projects. When developing an internal project accounting system, it is possible to create a project structure based on programmatic identifiers, the reuse of which can be fixed based on the use of families with duplicate identifiers in any project. By developing in this way, the hierarchy of family classes and their parameters, they get the opportunity to program typical families for cables, cable systems without significant time spent programming new projects, ensuring their version control, and quickly reprogramming when new API versions appear in Autodesk Revit. Updating the API can change the parameters of families, procedures and functions for their processing, which can complicate the process of practical implementation of the project at the customer. Therefore, before programming, it is necessary to define a set of programming tools that will be used in the development of plug-ins and application libraries. The programmatic methods of working with Revit families in the Visual Studio 2019 programming environment were studied based on built-in API methods, the C# as a more universal programming language. It is envisaged to use the Dynamo and Iron Python programming languages for processing information about Revit projects, but the SharpDevelop program was nevertheless chosen as less voluminous in relation to the computer load and ease of development. The Dynamo programming environment is a parametric system with the need for manual programming and parameter settings for each project in newer versions of Autodesk Revit. The use of the Iron Python programming environment may require loading additional libraries in the process of developing programs, slow program processing of projects as new versions of Autodesk Revit, API are released.
Therefore, now the programs selected for development are SQLite, SharpDevelop, VisualStudio 2019 as more universal software tools for working with the internal Autodesk Revit environment. The prospects for using these programs will be considered as we test new versions of Revit.