Dynamo-based column plastering model parameterization generation method

Generating column plastering models through Dynamo solves the problem of inefficiency in creating column plastering layers by revit software, and realizes automated generation and accurate plastering layer models, improving engineering efficiency and data synchronization.

CN120449249APending Publication Date: 2025-08-08CHINA GEZHOUBA GRP CONSTR ENG CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510509339.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-22
Publication Date
2025-08-08

AI Technical Summary

Technical Problem

In BIM technology, traditional revit software is inefficient when creating column plastering layers, and cannot batch process rectangular columns, special-shaped columns or cylinders, resulting in large project volume and low work efficiency.

Method used

The parameterization generation method of column plastering model based on Dynamo is used to create a new wall family in the revit environment, pick up the surface list of column elements, extract the bottom and side edges, offset the center positioning line, and call the Wall.ByCurveAndHeight command to generate the plastering layer.

Benefits of technology

The automatic creation of column plaster layer is realized, which improves model creation efficiency and accuracy, supports batch processing of columns of the same type, saves time, and synchronizes the model attributes with construction coding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120449249A_ABST
    Figure CN120449249A_ABST
Patent Text Reader

Abstract

The invention discloses a Dynamo-based column plastering model parameterization generation method, which comprises the following steps of S1, creating a new wall family in a revit environment, naming the new wall family as a plaster layer, and endowing the plaster layer with thickness and material parameters; s2, selecting a column component for producing a plaster layer from the revit model, and extracting column elements and a column surface list; s3, transposing the list in the S2, and extracting a bottom surface sub-list and any side surface sub-list to obtain two independent surface lists; s4, extracting a bottom side line from the bottom list in the list in the S3, and obtaining a plaster layer center positioning line through offset; s5, extracting the sideline of each surface from the side surface list in the list in the step S3, obtaining the sideline length value of each component, and extracting the maximum value of each component as the height of the plaster layer; s6, a 'Wall.ByCurveAndHeight' command is called, and a cylinder plaster layer is obtained by giving a wall positioning line, a wall height, a starting point elevation and a wall type parameter; according to the invention, the model creation efficiency and precision are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of Building Information Model (BIM), and in particular to a parameterized generation method of a column plastering model based on Dynamo. Background Art

[0002] With the continued promotion and application of BIM technology, the use of Revit software to create 3D architectural models is becoming increasingly widespread, especially in housing projects. However, during the rapid modeling process, the main building structure is generally the primary focus. When creating the column plaster layer, the only option is to place the wall family (plaster layer) on the column surface by selecting surfaces point by point using the software itself or plug-ins. For large-scale buildings or building complexes, this results in a heavy workload and low efficiency.

[0003] Traditional plastering model construction relies on the Revit point-and-click operation method, and the plaster layer needs to be modeled on the column surface one by one. It is impossible to batch process the plaster layers of rectangular columns, special-shaped columns or circular columns, and the work efficiency is low. Summary of the Invention

[0004] The purpose of the present invention is to overcome the above-mentioned shortcomings and provide a parametric generation method of column plastering models based on Dynamo. It only needs to pick up the rectangular columns, special-shaped columns or circular columns created in the Revit model, and give the plastering layer thickness, height, and starting elevation parameters. After running the program, the plastering layer can be automatically created, thereby improving the efficiency and accuracy of model creation.

[0005] To solve the above technical problems, the technical solution adopted by the present invention is: a parametric generation method of a column plastering model based on Dynamo, comprising the following steps:

[0006] S1. Create a new wall family in the Revit environment, name it "Plaster Layer", and assign thickness and material parameters to the plaster layer.

[0007] S2. Select the column components for which the plaster layer is to be produced from the Revit model, and extract the column elements and column surface list;

[0008] S3. Transpose the list in S2, extract the bottom surface and any side surface sublists, and obtain two independent surface lists;

[0009] S4 extracts the bottom edge of the bottom surface list in the list of S3, and obtains the center positioning line of the plaster layer after offset;

[0010] S5. Extract the edge of each face from the side list in the list of S3, obtain the edge length value of each component, and extract the maximum value of each component as the height of the plaster layer;

[0011] S6. Call the "Wall.ByCurveAndHeight" command to obtain the column plaster layer by giving the wall positioning line, wall height, starting elevation and wall type parameters, where the wall positioning line is the center positioning line of the plaster layer described in S4, the wall height is the height of the plaster layer described in S5, and the wall type is the plaster layer described in S1.

[0012] Preferably, the S2 is specifically:

[0013] Call the "Select Model Elements" command in Dynamo, select the column component in the Revit environment where you want to create a plaster layer; call the "Element.Faces" command, pick the surface elements of the Revit component element, and get the surface list.

[0014] Preferably, when the column component is a rectangular or special-shaped column, S4 is: extracting the bottom surface edge lines from the bottom surface list in the list described in S3, and combining the bottom surface edge lines of each component respectively, and then offsetting them outward by 1 / 2 of the thickness of the plaster layer as the center positioning line of the plaster layer to be generated.

[0015] More preferably, the S4 specifically includes the following process:

[0016] The process of obtaining the center positioning line of a rectangular column or a special-shaped column: call the "WH_Surface.DeconstructSurface" command, input the extracted bottom surface list, and obtain the edge line of the bottom surface; call the "PolyCurve.ByJoinedCurves" command to combine the edge lines of each extracted surface into a curve; call the "PolyCurve.Offset" command, offset the combined curve outward by 1 / 2 the thickness of the plaster layer, and input "False" to obtain a combined curve after offset with right angles at the connection; call the "Geometry.Explode" command to decompose the offset combined curve into the same number of curves as the original bottom surface edge lines as the center positioning line of the plaster layer to be generated.

[0017] Preferably, when the column component is a circular column, S4 is: for the bottom edge line of the cylinder, the edge line must first be offset outward by 1 / 2 the thickness of the plaster layer to obtain the offset curve and the starting point of the curve; then the curve length is extracted and divided by the length value to obtain a point on this curve that is different from the starting point; the offset curve starting point and the newly obtained point are combined to form a straight line, and the straight line is used to divide the offset curve into no less than two curve segments to obtain the center positioning line of the plaster layer.

[0018] More preferably, the S4 specifically includes the following process:

[0019] The process of obtaining the center positioning line of the circular column: call the "WH_Surface.DeconstructSurface" command, input the extracted bottom surface list, and obtain the edge line of the bottom surface; call the "Curve.Offset" command, and input the offset value to offset the bottom surface curve outward by 1 / 2 the thickness of the plaster layer to obtain the offset curve; call the "Curve.Length" command to obtain the length of each curve; call the " / " command, and input a constant value to calculate another constant to obtain the point corresponding to this parameter value on the curve; call the "Curve.PointAtParameter" command twice, input the offset curve, and input the calculated value and the value different from the calculated result respectively to obtain two different points on the curve; call the "Line.ByStartPointEndPoint" command, input the two points obtained above, and calculate to obtain a straight line; call the "Geometry.Split" command, input the offset curve and the above straight line to obtain two curves separated by a straight line as the center positioning line of the plaster layer to be generated.

[0020] More preferably, in S5, the height acquisition process is as follows: call the "WH_Surface.DeconstructSurface" command, input the extracted side surface list, and obtain the edge of the side surface; call the "Curve.Length" command to obtain the length of the side surface edge of each component respectively, and obtain a length list of the side surface edge of each component; call the "List.GetItemAtIndex" command, select the maximum numerical item in each sublist, and output the maximum value of each sublist as the height of the corresponding plaster layer of each component.

[0021] Beneficial effects of the present invention:

[0022] 1. The present invention only needs to pick up the rectangular column, special-shaped column or circular column created in the Revit model, and provide the plaster layer thickness, height, and starting elevation parameters. After running the program, the plaster layer can be automatically created, thereby improving the efficiency and accuracy of model creation;

[0023] 2. The present invention supports batch processing of columns of the same type, saving a lot of model creation time;

[0024] 3. The model attributes of the present invention are synchronized with the construction code and engineering quantity data in real time, and can be directly modified through Dynamo parameters to achieve synchronous changes of the Revit model. BRIEF DESCRIPTION OF THE DRAWINGS

[0025] Figure 1 It is a schematic diagram of the process of the present invention;

[0026] Figure 2For the present invention, a rectangular column or special-shaped column component is selected from Revit, and a Dynamo node and a graphical diagram of a component surface list is obtained;

[0027] Figure 3 A schematic diagram showing a bottom surface and a side surface of a rectangular column or a special-shaped column of the present invention;

[0028] Figure 4 This is a schematic diagram of obtaining the center positioning line of the plaster layer by processing the bottom edge line of a rectangular column or a special-shaped column and obtaining the height of the plaster layer by processing the side edge line of the rectangular column or special-shaped column according to the present invention;

[0029] Figure 5 Schematic diagram of the generation of the plaster layer of rectangular columns or special-shaped columns of the present invention Figure 1 ;

[0030] Figure 6 Schematic diagram of the generation of the plaster layer of rectangular columns or special-shaped columns of the present invention Figure 2 ;

[0031] Figure 7 For the present invention, a circular column component is selected from Revit, and a Dynamo node and a graphical diagram of a component surface list is obtained;

[0032] Figure 8 Schematic diagrams of obtaining the bottom surface and side surface lists of the circular column of the present invention;

[0033] Figure 9 Schematic diagram of the bottom edge of a circular column of the present invention, obtained by processing the center positioning line of the plaster layer, and obtained by processing the side edge of the plaster layer;

[0034] Figure 10 Schematic diagram of the generation of the circular column plastering layer of the present invention Figure 1 ;

[0035] Figure 11 Schematic diagram of the generation of the circular column plastering layer of the present invention Figure 2 ;

[0036] Figure 12 Schematic diagram of creating a plaster layer for Example 3. DETAILED DESCRIPTION

[0037] The present invention will be described in further detail below with reference to the accompanying drawings and specific embodiments.

[0038] Example 1: Figure 1 As shown, a parametric generation method of a column plastering model based on Dynamo includes the following steps:

[0039] S1. Create a new wall family in the Revit environment, name it "Plaster Layer", and assign thickness and material parameters to the plaster layer.

[0040] S2. Select the column components for which the plaster layer is to be produced from the Revit model, and extract the column elements and column surface list;

[0041] S3. Transpose the list in S2, extract the bottom surface and any side surface sublists, and obtain two independent surface lists;

[0042] S4 extracts the bottom edge of the bottom surface list in the list of S3, and obtains the center positioning line of the plaster layer after offset;

[0043] S5. Extract the edge of each face from the side list in the list of S3, obtain the edge length value of each component, and extract the maximum value of each component as the height of the plaster layer;

[0044] S6. Call the "Wall.ByCurveAndHeight" command to obtain the column plaster layer by giving the wall positioning line, wall height, starting elevation and wall type parameters, where the wall positioning line is the center positioning line of the plaster layer described in S4, the wall height is the height of the plaster layer described in S5, and the wall type is the plaster layer described in S1.

[0045] Preferably, the S2 is specifically:

[0046] Call the "Select Model Elements" command in Dynamo, select the column component in the Revit environment where you want to create a plaster layer; call the "Element.Faces" command, pick the surface elements of the Revit component element, and get the surface list.

[0047] Preferably, when the column component is a rectangular or special-shaped column, S4 is: extracting the bottom surface edge lines from the bottom surface list in the list described in S3, and combining the bottom surface edge lines of each component respectively, and then offsetting them outward by 1 / 2 of the thickness of the plaster layer as the center positioning line of the plaster layer to be generated.

[0048] More preferably, the S4 specifically includes the following process:

[0049] The process of obtaining the center positioning line of a rectangular column or a special-shaped column: call the "WH_Surface.DeconstructSurface" command, input the extracted bottom surface list, and obtain the edge line of the bottom surface; call the "PolyCurve.ByJoinedCurves" command to combine the edge lines of each extracted surface into a curve; call the "PolyCurve.Offset" command, offset the combined curve outward by 1 / 2 the thickness of the plaster layer, and input "False" to obtain a combined curve after offset with right angles at the connection; call the "Geometry.Explode" command to decompose the offset combined curve into the same number of curves as the original bottom surface edge lines as the center positioning line of the plaster layer to be generated.

[0050] Preferably, when the column component is a circular column, S4 is: for the bottom edge line of the cylinder, the edge line must first be offset outward by 1 / 2 the thickness of the plaster layer to obtain the offset curve and the starting point of the curve; then the curve length is extracted and divided by the length value (constant value) to obtain a point on this curve that is different from the starting point; the offset curve starting point and the newly obtained point are combined to form a straight line, and the straight line is used to divide the offset curve into no less than two curve segments to obtain the center positioning line of the plaster layer.

[0051] More preferably, the S4 specifically includes the following process:

[0052] The process of obtaining the center positioning line of the circular column: call the "WH_Surface.DeconstructSurface" command, input the extracted bottom surface list, and obtain the edge line of the bottom surface; call the "Curve.Offset" command, and input the offset value to offset the bottom surface curve outward by 1 / 2 the thickness of the plaster layer to obtain the offset curve; call the "Curve.Length" command to obtain the length of each curve; call the " / " command, and input a constant value to calculate another constant to obtain the point corresponding to this parameter value on the curve; call the "Curve.PointAtParameter" command twice, input the offset curve, and input the calculated value and the value different from the calculated result respectively to obtain two different points on the curve; call the "Line.ByStartPointEndPoint" command, input the two points obtained above, and calculate to obtain a straight line; call the "Geometry.Split" command, input the offset curve and the above straight line to obtain two curves separated by a straight line as the center positioning line of the plaster layer to be generated.

[0053] More preferably, in S5, the height acquisition process is as follows: call the "WH_Surface.DeconstructSurface" command, input the extracted side surface list, and obtain the edge of the side surface; call the "Curve.Length" command to obtain the length of the side surface edge of each component respectively, and obtain a length list of the side surface edge of each component; call the "List.GetItemAtIndex" command, select the maximum numerical item in each sublist, and output the maximum value of each sublist as the height of the corresponding plaster layer of each component.

[0054] Example 2:

[0055] like Figure 1 FIG. 1 is a flow chart of the present embodiment.

[0056] like Figure 2 、 7 As shown, call the "Select Model Elements" command in Dynamo, select the column component in the Revit environment for which the plaster layer is to be created; call the "Element.Faces" command, pick the surface elements of the Revit component element, and obtain the surface list.

[0057] like Figure 3 、 8 As shown, the surface list obtained is transposed to obtain a new list in which the corresponding positions of different components are the same sublist; the bottom surface and any side surface are selected in the list respectively to obtain two sublists.

[0058] like Figure 4 、 9 As shown, when generating the column plaster layer, there are two process branches: the bottom edge line and the side edge line, which respectively obtain the center positioning line and height of the plaster layer.

[0059] The process of obtaining the center positioning line of a rectangular column or a special-shaped column is as follows: call the "WH_Surface.DeconstructSurface" command, input the extracted bottom surface list, and obtain the edge lines of the bottom surface; call the "PolyCurve.ByJoinedCurves" command to combine the edge lines of each extracted surface into a curve; call the "PolyCurve.Offset" command to offset the combined curve outward by 1 / 2 the thickness of the plaster layer, and input "False" to obtain a combined curve with right angles after offset, which serves as the center positioning line of the plaster layer; call the "Geometry.Explode" command to decompose the offset combined curve into the same number of curves as the original bottom surface edge lines, which serve as the center positioning line of the plaster layer to be generated;

[0060] The process of obtaining the center positioning line of the circular column: call the "WH_Surface.DeconstructSurface" command, input the extracted bottom surface list, and obtain the edge line of the bottom surface; call the "Curve.Offset" command, and input the offset value to offset the bottom surface curve outward by 1 / 2 the thickness of the plaster layer to obtain the offset curve; call the "Curve.Length" command to obtain the length of each curve; call the " / " command, and input a constant value to calculate another constant to obtain the point corresponding to this parameter value on the curve; call the "Curve.PointAtParameter" command twice, input the offset curve, and input the calculated value and the value different from the calculated result respectively to obtain two different points on the curve; call the "Line.ByStartPointEndPoint" command, input the two points obtained above, and calculate to obtain a straight line; call the "Geometry.Split" command, input the offset curve and the above straight line to obtain two curves separated by the straight line as the center positioning line of the plaster layer to be generated;

[0061] Height acquisition process: call the "WH_Surface.DeconstructSurface" command, input the extracted side surface list, and obtain the edge of the side surface; call the "Curve.Length" command to obtain the length of the side surface edge of each component respectively, and obtain a list of the lengths of the side surface edges of each component; call the "List.GetItemAtIndex" command, select the maximum numerical item in each sublist, and output the maximum value of each sublist as the height of the corresponding plaster layer of each component.

[0062] like Figure 5 、 6 As shown in 10 and 11, call the "Wall.ByCurveAndHeight" command, connect the center positioning line and height value, and enter the starting elevation and wall type parameters to obtain the column plaster layer.

[0063] Example 3:

[0064] like Figure 12 As shown, a project has 24 columns that need to create a plaster layer. In an equivalent computer environment with 32G memory and 16G video memory, it takes about 3.5 minutes to create the plaster layer using the built-in function of Revit. When the present invention is applied, it only takes 10 seconds (program running time), and the efficiency of each column is improved by 21 times on average. When using the built-in function of the software, due to the high frequency of manual operation and repetitive actions, there are risks of missed selections and repeated selections. The present invention avoids this risk.

[0065] The above embodiments are merely preferred technical solutions of the present invention and should not be construed as limiting the present invention. The scope of protection of the present invention shall be the technical solutions set forth in the claims, including equivalent alternatives to the technical features of the technical solutions set forth in the claims. In other words, equivalent alternatives and improvements within this scope are also within the scope of protection of the present invention.

Claims

1. A parametric generation method for column plastering models based on Dynamo, characterized by: The following steps are involved: S1. Create a new wall family in the Revit environment, name it "Plaster Layer", and assign thickness and material parameters to the plaster layer. S2. Select the column components for which the plaster layer is to be produced from the Revit model, and extract the column elements and column surface list; S3. Transpose the list in S2, extract the bottom surface and any side surface sublists, and obtain two independent surface lists; S4 extracts the bottom edge of the bottom surface list in the list of S3, and obtains the center positioning line of the plaster layer after offset; S5. Extract the edge of each face from the side list in the list of S3, obtain the edge length value of each component, and extract the maximum value of each component as the height of the plaster layer; S6. Call the "Wall.ByCurveAndHeight" command to obtain the column plaster layer by giving the wall positioning line, wall height, starting elevation, and wall type parameters. The wall positioning line is the center positioning line of the plaster layer described in S4, the wall height is the height of the plaster layer described in S5, and the wall type is the plaster layer described in S1.

2. The parametric generation method of a column plastering model based on Dynamo according to claim 1, characterized in that: The S2 is specifically: Call the "Select Model Elements" command in Dynamo, select the column component in the Revit environment where you want to create a plaster layer; call the "Element.Faces" command, pick the surface elements of the Revit component element, and get the surface list.

3. The parametric generation method of a column plastering model based on Dynamo according to claim 1, characterized in that: When the column component is a rectangular or special-shaped column, S4 is: extracting the bottom surface edge line from the bottom surface list in the list described in S3, combining the bottom surface edge lines of each component respectively, and then offsetting them outward by 1 / 2 of the thickness of the plaster layer as the center positioning line of the plaster layer to be generated.

4. The method for generating a parametric column plastering model based on Dynamo according to claim 3, characterized in that: The S4 specifically includes the following processes: The process of obtaining the center positioning line of a rectangular column or a special-shaped column is as follows: call the "WH_Surface.DeconstructSurface" command, input the extracted bottom surface list, and obtain the edge lines of the bottom surface; call the "PolyCurve.ByJoinedCurves" command to combine the edge lines of each extracted surface into a curve; call the "PolyCurve.Offset" command, offset the combined curve outward by 1 / 2 the thickness of the plaster layer, and input "False" to obtain a combined curve with right angles at the connection after offset; call the "Geometry.Explode" command to decompose the offset combined curve into the same number of curves as the original bottom surface edge lines, which serve as the center positioning line of the plaster layer to be generated.

5. The method for generating a parametric column plastering model based on Dynamo according to claim 1, characterized in that: When the column component is a circular column, S4 is as follows: for the bottom edge line of the cylinder, the edge line must first be offset outward by 1 / 2 the thickness of the plaster layer to obtain the offset curve and the starting point of the curve; then the curve length is extracted and divided by the length value to obtain a point on this curve that is different from the starting point; the offset curve starting point and the newly obtained point are combined to form a straight line, and the straight line is used to divide the offset curve into no less than two curve segments to obtain the center positioning line of the plaster layer.

6. The method for generating a parametric column plastering model based on Dynamo according to claim 5, characterized in that: The S4 specifically includes the following processes: The process of obtaining the center positioning line of the circular column: call the "WH_Surface.DeconstructSurface" command, input the extracted bottom surface list, and obtain the edge line of the bottom surface; call the "Curve.Offset" command and input the offset value to offset the bottom surface curve outward by 1 / 2 the thickness of the plaster layer to obtain the offset curve; call the "Curve.Length" command to obtain the length of each curve; call the " / " command and input a constant value to calculate another constant to obtain the point corresponding to this parameter value on the curve; call the "Curve.PointAtParameter" command twice, input the offset curve, and input the calculated value and the value different from the calculated result respectively to obtain two different points on the curve; call the "Line.ByStartPointEndPoint" command, input the two points obtained above, and calculate to obtain a straight line; call the "Geometry.Split" command, input the offset curve and the above straight line to obtain two curves separated by a straight line as the center positioning line of the plaster layer to be generated.

7. The method for generating a parametric column plastering model based on Dynamo according to claim 1, characterized in that: In S5, the height acquisition process is as follows: calling the "WH_Surface.DeconstructSurface" command, inputting the extracted side surface list, and obtaining the side surface edge line; calling the "Curve.Length" command, respectively obtaining the length of the side surface edge line of each component, and obtaining the length list of the side surface edge line of each component; Call the "List.GetItemAtIndex" command, select the maximum numerical item in each sublist, and output the maximum value of each sublist as the height of the corresponding plaster layer of each component.