Modeling method of prefabricated component model based on Revit and Dynamo
By using visual programming technology in the combination of Revit and Dynamo, batch automated modeling of prefabricated components is realized, solving the problem that existing plug-ins cannot meet personalized needs, and improving modeling efficiency and accuracy.
Patent Information
- Application Number
- CN202110894160.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-08-05
- Publication Date
- 2024-12-27
- Estimated Expiration
- 2041-08-05
AI Technical Summary
The existing Revit plug-in cannot provide targeted solutions based on the engineer's personal needs, resulting in low modeling efficiency and frequent errors, and cannot meet the needs of short-term projects.
Using the prefabricated component model modeling method based on Revit and Dynamo, CAD files are processed in batches through Dynamo visual programming, and using FamilyType.ByFamilyNameAndTypeName, FamilyInstance.ByPoint, FamilyInstance.ByFace, Parameter.ParameterByName and Parameter.SetValue nodes to create a specified family and rotate the family To the specified angle, modify the parameter values to realize batch automation modeling of prefabricated components.
Improve modeling efficiency, reduce modeling errors, and enable engineers to focus more on the correctness of design content.
Smart Images

Figure CN113721903B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of parametric BIM modeling of assembled integral buildings, and in particular to a prefabricated component modeling method based on Revit and Dynamo. Background Art
[0002] The industrialization of prefabricated buildings is a large-scale industrial production method that replaces the inefficient manual production method of traditional buildings with modern manufacturing, transportation, installation and scientific management. From the entire life cycle of the building from design, manufacturing, development, construction, and operation services, the Building Information Modeling (BIM) technology application plan is proposed. According to the promotion trend of relevant policies and work, the automation and informatization of prefabricated buildings are necessary means and inevitable trends to improve the production and project management of prefabricated components.
[0003] Autodesk Revit is a commonly used BIM modeling and 3D design platform that can help engineers continuously optimize design, manage project information, and improve building energy efficiency during the design, construction, and operation and maintenance stages of the project.
[0004] Dynamo is a visual programming platform based on Revit, which allows engineers to explore parametric design schemes and automated modeling and model checking workflows by defining program flows. After several years of engineering practice, most Revit operations still rely on manual labor to create them one stroke at a time. Although there are many plug-ins available on the market, plug-ins can only solve some fixed problems or improve the modeling efficiency of a certain type of component, and cannot provide targeted solutions for individual needs. In addition, the development time of plug-ins is long, the cost is high, and the upgrade is slow, which cannot meet the needs of short-term projects.
[0005] After using Dynamo, a lot of large and repetitive work can be handed over to the software to complete, allowing engineers to have more time to focus on the project itself.
[0006] The Dynamo visual programming platform lowers the threshold for program development. It organizes pre-designed nodes according to certain logic in the form of scripts to form an executable program, which reduces the complexity of Revit's actual operation and meets the needs of engineers for various customized functions. Through Dynamo, we can automatically create models of prefabricated components for assembled buildings. Summary of the invention
[0007] The purpose of the present invention is to make up for the defects of the existing technology, provide a prefabricated component modeling method based on Revit and Dynamo, and use Dynamo visual programming to automatically model the assembled prefabricated components. On the one hand, it can improve the modeling efficiency; on the other hand, it can reduce modeling errors so that engineers can spend more time and energy on the correctness of the design content.
[0008] The present invention is achieved through the following technical solutions:
[0009] A prefabricated component modeling method based on Revit and Dynamo specifically includes the following steps:
[0010] (1) Use Revit software to create parametric families in advance;
[0011] (2) Use Dynamo visual programming software to batch process the layer information and geometric information of CAD file elements into a data set that matches parameters and parameter values one by one;
[0012] (3) Use the FamilyType.ByFamilyNameAndTypeName node, FamilyInstance.ByPoint node, FamilyInstance.ByFace node, Parameter.ParameterByName node, and Parameter.SetValue node in the Dynamo visual programming software to create a specified family, rotate the family to a specified angle, modify the parameter value of the specified family parameter, and finally form batch automated modeling of multiple prefabricated component models.
[0013] The parametric family described in step (1) includes a composite plate component family, various embedded parts families, various water and electricity families, and various steel bar families; the created parametric family is parametrically processed.
[0014] Step (2) The specific steps are as follows:
[0015] (2.1) Process the original CAD drawings into CAD files that are convenient for Dynamo visual programming software to extract information;
[0016] (2.2) Import the processed CAD file into the Revit family and decompose the CAD elements;
[0017] (2.3) Extracting graphic element information by layer;
[0018] (2.4) Obtaining the geometric information of the primitive from the extracted primitive information curve;
[0019] (2.5) Determine which family to use based on the geometric information of the element.
[0020] Step (2.1) processes the original CAD drawing into a CAD file that is convenient for Dynamo visual programming software to extract information. The specific operation is as follows: open the original CAD drawing, distinguish the outer contour lines of the prefabricated components, various steel bars, reinforcing bars, water and electricity boxes, lock nuts, lifting embedded parts, and component gaps with different layers and colors, then delete the rest of the original CAD drawing and save the CAD file.
[0021] The specific contents of step (2.2) are as follows: create and open a Revit family file, import the created parametric family into the opened Revit family file, import the processed CAD drawings into the Revit family file, and decompose the CAD elements.
[0022] The specific contents of step (2.3) are as follows:
[0023] In Revit software, open the Dynamo for Revit visual programming tool, use the node All Elements In Active View in Dynamo to obtain all elements visible in the active view, and then use the node RemoveIfNot, enter the string ModelCurve as the filter condition in the type input, exclude elements that are not model lines, and only retain the elements decomposed by CAD. According to the value of the parameter subcategory of the element, group the elements by layer name.
[0024] The specific contents of step (2.4) are as follows:
[0025] Use Python Script nodes to filter out closed curve segments from a large number of curves and group them again;
[0026] Use the Count node to count the number of groups. If the value of the Count node is 4, it means that the closed curve is a quadrilateral.
[0027] Use the Curve.IsClosed node to filter whether a single curve is a closed curve. If the value of the Curve.IsClosed node is true, it means that the curve is a circular curve.
[0028] Use the Count node and Curve.IsClosed node to extract the rectangle, line, and circle primitives respectively;
[0029] Use the Polygon.Center node to find the coordinates of the center point of the rectangular primitive;
[0030] Use the Line.Direction node, Vector.X node, and Vector.Y node to find the length of the rectangle in the X direction and the length in the Y direction.
[0031] Use the Circle.CenterPoint node to find the coordinates of the center point of the circular primitive;
[0032] Use the Circle.Radius node to get the radius of the circle primitive, and then find the diameter of the circle;
[0033] Use the Curve.PointsAtEqualSegmentLength node to find the midpoint coordinates of the line primitive;
[0034] Use the Line.Direction node, Vector.X node, and Vector.Y node to find the length of the line in the X direction and the length in the Y direction.
[0035] The specific contents of step (2.5) are as follows:
[0036] According to the shape of the element, use the >= node, Dictionary.ByKeysValues node, and Dictionary.ValueAtKey node to determine the length, width, and rotation angle of the component by judging the values of the length in the X and Y directions; according to the center point of the element of the layer, the length values in the X and Y directions, and then according to the center point of the element of the layer, the length values in the X and Y directions, determine what family to use.
[0037] Relevant parameter values are set through the Dynamo player, and the Revit software is directly driven according to the processed CAD drawings to achieve batch automated modeling of multiple prefabricated components.
[0038] When the prefabricated component model that has been produced is loaded into the project model, a detailed list of the material specifications and quantities of each prefabricated component is compiled.
[0039] The advantages of the present invention are as follows: the present invention realizes batch and automatic modeling of prefabricated components by utilizing Dynamo visual programming, which can improve modeling efficiency on the one hand, and reduce modeling errors on the other hand, so that engineers can spend more time and energy on the correctness of design content. BRIEF DESCRIPTION OF THE DRAWINGS
[0040] Figure 1 It is a flow chart of a method for rapid modeling of a parametric prefabricated component model based on Revit and Dynamo of the present invention;
[0041] Figure 2 It is a parametric family library related to prefabricated components of assembled buildings;
[0042] Figure 3 This is a schematic diagram of the parameterization of the reinforcement family;
[0043] Figure 4 It is a plurality of CAD elements of prefabricated composite plate components;
[0044] Figure 5 It is a Dynamo visual programming diagram for automatically selecting CAD primitives;
[0045] Figure 6 Click to specify the CAD element diagram;
[0046] Figure 7 It is a Dynamo visual programming diagram that selects specified CAD entities and groups them by layer;
[0047] Figure 8 It is a Dynamo visual programming diagram for selecting closed curve segments from a large number of curves and grouping them again;
[0048] Fig. 9 This is a result display of Dynamo visual programming, which selects closed curve segments from a large number of curves and groups them again;
[0049] Fig.10 It is a Dynamo visual programming diagram that groups closed curves in each layer, groups them again by rectangles and straight lines, and processes the data;
[0050] Fig.11 It is a Dynamo visual programming diagram that groups closed curves in each layer, groups them again by circle, and processes the data;
[0051] Fig.12 This is a Dynamo visual programming diagram for finding the center point, X-direction length, and Y-direction length of a rectangle;
[0052] Fig.13 It is a Dynamo visual programming diagram for finding the center point and diameter of a circle;
[0053] Fig.14 This is a Dynamo visual programming diagram for finding the midpoint, X-direction length, and Y-direction length of a straight line.
[0054] Fig.15 It is a Dynamo visual programming diagram for determining the length and width of the loaded family;
[0055] Fig.16 It is a Dynamo visual programming diagram for determining the rotation direction of the loaded family;
[0056] Fig.17It is a Dynamo visual programming diagram for setting the portion of the steel bar that exceeds 280mm of the composite plate member to have a 135-degree hook;
[0057] Fig.18 This is a Dynamo visual programming diagram that requires modifying the family parameter name of a metric regular model;
[0058] Fig.19 It is a Dynamo visual programming diagram for creating a specified metric regular model family, rotating it to a specified angle, and modifying the parameter value of a specified parameter;
[0059] Fig. 20 It is a Dynamo visual programming diagram for automatically extracting water and electricity embedded parts and inserting them into the plane;
[0060] Fig.21 It is a Dynamo visual programming diagram that needs to modify the family parameter name based on the face metric general model;
[0061] Fig. 22 It is a Dynamo visual programming diagram for creating a specified face-based metric regular model family, inserting a plane, rotating to a specified angle, and modifying the parameter value of a specified parameter;
[0062] Fig.23 This is a schematic diagram of the Dynamo script player interface;
[0063] Fig.24 This is a schematic diagram of the composite plate model generated using the Dynamo script player;
[0064] Fig.25 It is a schematic diagram of the Dynamo visual programming interface for automatically generating models of prefabricated composite plate components. DETAILED DESCRIPTION
[0065] like Figure 1As shown, a rapid modeling method for parametric prefabricated component models based on Revit and Dynamo is shown. The method first uses Revit software to create a parametric family in advance, and then uses Dynamo visual programming software to batch process the layer information and geometric information of CAD elements into a data set that matches parameters and parameter values one by one. Finally, the nodes such as "FamilyType.ByFamilyNameAndTypeName", "FamilyInstance.ByPoint", "FamilyInstance.ByFace", "Parameter.ParameterByName", "Parameter.SetValue" and so on provided in Dynamo visual programming software are used to create a specified family, rotate the family to a specified angle, and modify the parameter value of the specified family parameter, so as to finally form batch automated modeling of multiple prefabricated component models.
[0066] Since there are many types of prefabricated components for assembled integral buildings, the following takes the modeling of prefabricated composite plate components as an example. To achieve the above purpose, the present invention is implemented according to the following technical scheme. A method for rapid modeling of parametric prefabricated component models based on Revit and Dynamo, comprising the following 7 steps:
[0067] Step 1: Create a parametric family.
[0068] Open Revit software and create various parametric families (composite plate component families, various embedded parts families, various water and electricity families, various steel bar families, etc.) for use, such as Figure 2 These families are parameterized to facilitate modification, such as Figure 3 shown.
[0069] Step 2: Import the processed CAD drawings into the Revit family and decompose the CAD elements.
[0070] Open the original CAD drawing, and use different layers and colors to distinguish the outer contour of the prefabricated composite slab, X-axis steel bars, Y-axis steel bars, reinforcing bars, water and electricity boxes, lock nuts, lifting embedded parts, component gaps, etc. Delete the rest of the original CAD drawing and save the CAD file.
[0071] Create and open a Revit family file, and import the parametric family created in step 1 into the Revit family file that is now open. Import the processed CAD drawings into the Revit family file, and decompose the CAD elements, such as Figure 4 shown.
[0072] Step 3: Extract the graphic element information by layer.
[0073] In Revit software, open the Dynamo for Revit visual programming tool. Use the node "All Elements In Active View" in Dynamo to obtain all elements visible in the active view. Then use the node "RemoveIfNot" and enter the string "ModelCurve" as the filter condition in the "type" input to exclude elements that are not model lines and only keep the elements that are decomposed by CAD, such as Figure 5 shown.
[0074] The entities are grouped by layer name according to the value of the entity parameter "Subcategory", such as Figure 6 , 7 shown.
[0075] Step 4: Use the "Python Script" node module to freely write the small functions we need. Here, the "Python Script" node is used to filter out closed curve segments from a large number of curves and group them again, such as Figure 8 , 9 shown.
[0076] The "Count" node is used to count the number of groups. If the value of the "Count" node is 4, it means that the closed curve is a quadrilateral. The "Curve.IsClosed" node is used to filter whether a single curve is a closed curve at the head and tail. If the value of the "Curve.IsClosed" node is true, it means that the curve may be a circular curve. Use the "Count" and "Curve.IsClosed" nodes to extract rectangles, lines, circles and other primitives respectively, such as Fig.10 , 11 shown.
[0077] Use the "Polygon.Center" node to find the coordinate value of the center point of the rectangular primitive; use the "Line.Direction", "Vector.X", "Vector.Y" and other nodes to find the X-direction length and Y-direction length of the rectangular primitive, such as Fig.12 shown.
[0078] Use the "Circle.CenterPoint" node to find the coordinate value of the center point of the circle; use "Circle.Radius" to get the radius value of the circle, and then find the diameter of the circle, such as Fig.13 shown.
[0079] Use the "Curve.PointsAtEqualSegmentLength" node to find the coordinate value of the midpoint of the line; use the "Line.Direction", "Vector.X", "Vector.Y" and other nodes to find the length of the line in the X direction and the length in the Y direction, such as Fig.14 shown.
[0080] Step 5: Automatically create metric regular model families (composite plates, steel bars, truss bars, etc.) in batches.
[0081] According to the shape of the element (rectangle or straight line), use the ">=", "Dictionary.ByKeysValues", "Dictionary.ValueAtKey" nodes to determine the length, width and rotation angle of the component (the length, diameter and rotation angle of the steel bar) by judging the values of the length in the X direction and the length in the Y direction. Fig.15 , 16 shown.
[0082] According to the center point of the element of the composite plate layer, the length values of the X and Y directions, and then according to the center point of the element of the steel bar layer, the length values of the X and Y directions, determine what kind of steel bar family to use (whether it is a hook, whether both ends are hooks, etc.), such as Fig.17 shown.
[0083] Based on the family parameter name (such as Fig.18 ) and the corresponding parameter values obtained, use the "FamilyType.ByFamilyNameAndTypeName", "FamilyInstance.ByPoint", "Parameter.ParameterByName", "Parameter.SetValue" and other nodes to create a family of the specified metric regular model, rotate the family to the specified angle, and modify the parameter value of the specified family parameter, such as Fig.19 shown.
[0084] Step 6: Automatically batch create families of face-based metric generic models (water and electricity boxes, composite panel penetrations, sleeves, etc.).
[0085] According to the center points of the known water and electricity embedded parts, perforations, casings and other layer entities and the outline layer entities of the superimposed plate, use the "Polygon.ContainmentTest" node to determine on which insertion plane each water and electricity embedded part, perforation, casing and other families should be placed, such as Fig. 20 shown.
[0086] Based on the family parameter name (such as Fig.21) and the corresponding parameter values obtained, use the "FamilyType.ByFamilyNameAndTypeName", "FamilyInstance.ByFace", "Parameter.ParameterByName", "Parameter.SetValue" and other nodes to create a family of the specified face-based metric regular model, rotate the family to the specified angle, and modify the parameter value of the specified family parameter, such as Fig. 22 shown.
[0087] The above created Dynamo script can be used to set the relevant parameter values through the Dynamo player (such as Fig.23 As shown in the figure), multiple prefabricated composite slab models are directly generated, and the operation effect is the same as steps 3 to 5 above. Fig.24 , 25 shown.
[0088] Step 7: Process and create batch prefabricated composite slab models and enrich model information.
[0089] Copy the family multiple times and rename them according to the "component number", delete the redundant component models in each family respectively, and finally form family files with different component numbers.
Claims
1. A prefabricated component modeling method based on Revit and Dynamo, characterized in that: The specific steps include: (1) Use Revit software to create parametric families in advance; (2) Use Dynamo visual programming software to batch process the layer information and geometric information of CAD file elements into a data set that matches parameters and parameter values one by one; (3) Use the FamilyType.ByFamilyNameAndTypeName node, FamilyInstance.ByPoint node, FamilyInstance.ByFace node, Parameter.ParameterByName node, and Parameter.SetValue node in the Dynamo visual programming software to create a specified family, rotate the family to a specified angle, modify the parameter value of the specified family parameter, and finally form batch automated modeling of multiple prefabricated component models; The parametric family described in step (1) includes a composite plate component family, various embedded component families, various water and electricity families, and various steel bar families; the created parametric family is parametrically processed; Step (2) The specific steps are as follows: (2.1) Process the original CAD drawings into CAD files that are convenient for Dynamo visual programming software to extract information; (2.2) Import the processed CAD file into the Revit family and decompose the CAD elements; (2.3) Extracting graphic element information by layer; (2.4) Obtaining the geometric information of the primitive from the extracted primitive information curve; (2.5) Determine which family to use based on the geometric information of the primitive; The processing of the original CAD drawing into a CAD file that is convenient for Dynamo visual programming software to extract information as described in step (2.1) is as follows: open the original CAD drawing, distinguish the outer contour lines of the prefabricated components, various steel bars, reinforcing bars, water and wire boxes, lock nuts, lifting embedded parts, and component gaps with different layers and colors, delete the rest of the original CAD drawing, and save the CAD file; The specific contents of step (2.2) are as follows: create and open a Revit family file, import the created parametric family into the opened Revit family file, import the processed CAD drawings into the Revit family file, and decompose the CAD elements; The specific contents of step (2.3) are as follows: In Revit software, open the Dynamo for Revit visual programming tool, use the node AllElements In Active View in Dynamo to obtain all visible elements in the active view, and then use the node RemoveIfNot, enter the string ModelCurve as the filter condition in the type input terminal, exclude the elements that are not model lines, and only keep the elements that are decomposed by CAD. According to the value of the parameter subcategory of the element, group the elements by layer name; The specific contents of step (2.4) are as follows: Use Python Script nodes to filter out closed curve segments from a large number of curves and group them again; Use the Count node to count the number of groups. If the value of the Count node is 4, it means that the closed curve is a quadrilateral. Use the Curve.IsClosed node to filter whether a single curve is a closed curve. If the value of the Curve.IsClosed node is true, it means that the curve is a circular curve. Use the Count node and Curve.IsClosed node to extract the rectangle, line, and circle primitives respectively; Use the Polygon.Center node to find the coordinates of the center point of the rectangular primitive; Use the Line.Direction node, Vector.X node, and Vector.Y node to find the length of the rectangle in the X direction and the length in the Y direction. Use the Circle.CenterPoint node to find the coordinates of the center point of the circular primitive; Use the Circle.Radius node to get the radius of the circle primitive, and then find the diameter of the circle; Use the Curve.PointsAtEqualSegmentLength node to find the midpoint coordinates of the line primitive; Use the Line.Direction node, Vector.X node, and Vector.Y node to find the length of the line in the X direction and the length in the Y direction; The specific contents of step (2.5) are as follows: According to the shape of the element, use the >= node, Dictionary.ByKeysValues node, and Dictionary.ValueAtKey node to determine the length, width, and rotation angle of the component by judging the values of the length in the X and Y directions; according to the center point of the element of the layer, the length values in the X and Y directions, and then according to the center point of the element of the layer, the length values in the X and Y directions, determine what family to use.
2. The prefabricated component modeling method based on Revit and Dynamo according to claim 1, characterized in that: Relevant parameter values are set through the Dynamo player, and the Revit software is directly driven according to the processed CAD drawings to achieve batch automated modeling of multiple prefabricated components.
3. The prefabricated component modeling method based on Revit and Dynamo according to claim 2, characterized in that: When the prefabricated component model that has been produced is loaded into the project model, a detailed list of the material specifications and quantities of each prefabricated component is compiled.
Citation Information
Patent Citations
Rapid modeling method for parameterized grid structure model based on Revit and Dynamo
CN111611675A
BIM (Building Information Modeling) method for realizing automatic matching of steel support by adopting Dynamo
CN111767632A
