An intelligent segmented generation method for large-span irregular rigid bodies
The adaptive serialized point set is generated through the parameterized component library and spatial mapping method, which solves the accuracy and efficiency problems in the generation of large-span irregular rigid body segments, and realizes efficient and accurate intelligent segmentation of irregular rigid body segments, improving the level of component planning.
Patent Information
- Application Number
- CN202411131842.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-16
- Publication Date
- 2025-07-08
- Estimated Expiration
- 2044-08-16
AI Technical Summary
The prior art has problems of insufficient accuracy, low efficiency and high cost in the intelligent segmentation generation of large-span irregular rigid bodies, especially when on-site construction conditions change.
The parameterized component library based on design information is built, and three-dimensional spatial data and reference lines are automatically picked up, and a new reference point coordinate set is generated in combination with the spatial mapping method. Computer programming is used to realize intelligent segmentation of irregular rigid bodies on mainstream modeling software. The principles of vector addition and number multiplication are used to map and rotate, and adaptive serialized point sets are generated, and irregular components are finally automatically created.
It realizes efficient and precise segmentation generation of large-span irregular rigid bodies, optimizes the workflow, improves component arrangement efficiency and accuracy, and meets actual needs.
Smart Images

Figure CN119047165B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of spatial modeling, and particularly to an intelligent segmented generation method for large-span irregular rigid bodies. Background Art
[0002] An Information Modeling is based on various relevant information such as three-dimensional spatial point data as the basis of the model to establish a visual spatial model, and simulates the real information of the entity through digital information. Limited by aspects such as design information, creation environment, and creation methods, there is a lack of existing methods for intelligent segmentation and rapid automated modeling of large-span irregular rigid bodies.
[0003] Currently, the following main problems exist in the intelligent segmented generation and rapid model creation of large-span irregular rigid bodies:
[0004] (1) Traditional methods for spatial modeling of large-span irregular rigid bodies rely on manual measurement of the rigid body coordinates by humans, calculating the point positions at the segmented locations, and finally performing segmentation. Although this traditional method can segment irregular rigid bodies with simple shapes, it has certain limitations in terms of accuracy, cost, and efficiency, with complex tasks and large workloads.
[0005] (2) Especially when faced with large-span, large-sized irregular rigid bodies, and their segmentation requirements are random or must change according to on-site construction conditions at any time, the difficulty of segmenting and generating them will increase significantly, and the accuracy cannot be guaranteed. Summary of the Invention
[0006] The purpose of the present invention is to provide an intelligent segmented generation method for large-span irregular rigid bodies, which can be used in the field of building construction, aiming to solve the problems of insufficient accuracy in the detailed design of existing large-span rigid structures, affecting efficiency and cost, and providing an efficient and accurate geometric rigid body intelligent generation method for such structures.
[0007] To achieve the above object, the present invention adopts the following technical solutions:
[0008] Step 1: Build a parametric component library based on design information;
[0009] Step 2: Automatically pick up the required three-dimensional spatial data according to the geometric characteristics of the large-span components applied by the method;
[0010] Step 3: Automatically establish and pick up a reference line according to the rigid body constraints of the target arrangement;
[0011] Step 4: Create a point set based on the three-dimensional spatial data set obtained in Step 2 and the reference line in Step 3 to obtain an initial reference point coordinate set;
[0012] Step Five: Map a new set of reference point coordinates based on the space mapping method;
[0013] Step 5.1: In three-dimensional space, map the known initial reference points along a vector with a specified direction and length. The mapping rule follows the principles of vector addition and scalar multiplication to generate a new set of reference point coordinates;
[0014] Step 5.2: Create a method body named Vector.ByCoodinates with a return value type of Vector. Define the originX, originY, and originZ of the starting point and input the elevation data obtained in Step Four as targetZ. Inside the method, create an object starting point and calculate a three-dimensional vector with a clear direction and magnitude connecting the two points, which is the vectorization process of the extracted elevation data;
[0015] Step 5.3: Define a static function named TranslatePoints that takes a point set and a vector as inputs, then adds the vector to each point in the point set to perform the vector accumulation operation on the point set. Starting from the initial reference point set in Step Four, map in three-dimensional space along a vector with a clear direction and length to generate and return a new set of reference point coordinates;
[0016] Step Six: Determine the spatial orientation through the dynamic positioning of the vector direction to generate a new set of fixed-position space line segments;
[0017] Step 6.1: Use the Curve.PlaneAtSegmentLength method body, which takes a spatial curve object and a numerical value representing the curve parameter (i.e., the above-mentioned reference line and mileage data) as inputs. Locate a specific position through the curve parameter, and then automatically calculate and extract the plane where the normal line aligns with the curve tangent at the located point and output it, that is, obtain the reference plane at the initial point set on the reference line;
[0018] Step 6.2: Use the Plane.Normal method body to extract and output the normal vector from the plane object;
[0019] Step 6.3: Create a static method named RotateVectorToAlignWithPlane that takes a vector object and a plane object (i.e., the above-mentioned normal vector and the reference plane at the initial point set) as inputs, and perform the spatial rotation of the vector to dynamically position its orientation so that the vector direction aligns with the normal direction of the plane;
[0020] Step 6.4: Use the method body with the function name Line.ByStartPointDirectionLength, which receives the starting point startpoint, the direction vector directionVector, and the line segment length length as parameters, and unfolds the line in the determined vector direction to obtain a new set of fixed-position space line segments.
[0021] Step Seven: Solve the serialized point position set according to the parameters of the obtained space line segment set;
[0022] Step 7.1: Use the Curve.Offset method body, define the offset distance parameter, and input the space line segment set in Step Six as a curve object to complete the topological replication of the curve and output the curve in the form of a nested list;
[0023] Step 7.2: Use the function CalculateSpatialReferencePoints to extract the spatial information of the starting point of the curve. Define the numerical value representing the curve parameter and the above curve object as the input. Inside the method, the curve is parameterized, and the curve parameters are solved inversely through the given data to determine specific positions on the curve, generate a point set, and obtain a new set of point coordinate collections;
[0024] Step 7.3: Use array processing method bodies such as List.Transpose and List.GetltemAtindex to perform layout reconstruction and row-column swapping of the list matrix, etc., to obtain the corresponding serialized point position set coordinate list. This set has geometric continuity and forms a seamless geometric path.
[0025] Step Eight: Automatically create irregular components through the serialized point position set;
[0026] Step Nine: Complete the automatic segmented generation of large-span irregular rigid body structures.
[0027] Compared with the prior art, the present invention has the following characteristics and beneficial effects:
[0028] 1. The present invention operates on mainstream modeling software. Through computer programming, it can intelligently extract the geometric feature data of components, analyze through calculation, and return the results. It can quickly realize the intelligent segmented generation of large-span irregular rigid bodies, optimize the work process of irregular rigid body planning, and effectively improve the arrangement efficiency and accuracy of components.
[0029] 2. The present invention designs a method that maps to a coordinate set based on the spatial mapping method, combines the reference curve direction to calculate and transform to obtain the required dynamic direction, and finally generates an adaptive serialized point set.
[0030] 3. The present invention improves the intelligent planning level of components, and can meet actual needs by automatically picking up input parameters, editing programs, etc. according to application objectives. Description of the Drawings
[0031] Figure 1 is the general flow chart of the present invention;
[0032] Figure 2 is the flow chart for generating reference geometric elements based on the space mapping method;
[0033] Figure 3 is the flow chart for solving the adaptive serialized point set according to the parameters of the space line segment group. Detailed Embodiment
[0034] In order to make the objectives, technical solutions and advantages of the present invention clearer and more understandable, the present invention will be further described in detail below in conjunction with the drawings and embodiments. The specific embodiments described herein are only used to explain the technical solutions of the present invention and are not limited to the present invention.
[0035] A method for intelligently segmenting a large-span irregular rigid body, as Figure 1 shown, includes the following steps:
[0036] Step 1: Building a parametric component library based on design information;
[0037] 1. Determine the specific requirements of the irregular rigid body component group to be created, including geometric shape, spatial dimension information, actual application requirements, etc.;
[0038] 2. Select a suitable component template in the three-dimensional solid parametric modeling platform and enter the component editor operation interface;
[0039] 3. Use the modeling tool to draw the cross-sectional contour of the irregular component. First, stretch a specified length along the X, Y, and Z axes of the reference coordinate system, then rotate a fixed angle around the Z axis, and finally generate a lofting shape according to the specified path;
[0040] 4. Pick up the dimension line of the component, select to add a parameter, and name it. If the cross-sectional change of the irregular component depends on a certain specific parameter (such as height and width), then use the If conditional statement to control the geometric shape change. The specific statement expression is:
[0041] IF (Parameter > Threshold); THEN; Height = Function1(Width); ELSE; Height = Function2(Width). Here, Parameter is the activation condition variable, Threshold is the activation condition trigger limit, and Function1 and Function2 are functions describing the parameter relationship.
[0042] 5. Repeat the above steps to generate the complete component group, and verify whether the geometric shape and defined parameters of the components are correct in the editor.
[0043] Step 2: Automatically pick up the required three-dimensional space data according to the geometric characteristics of the long-span components applied by the method;
[0044] 1. Obtain the component instance, and identify the geometric features through automated means, including the size information and three-dimensional space coordinate information of the component, etc.;
[0045] 2. Obtain the set of information required for the application target based on the data generated by the three-dimensional solid planning model.
[0046] Step 3: Automatically establish and pick up the reference line according to the rigid body constraints of the target layout;
[0047] 1. Create a method body named GeometryCreator, which provides a static method CreateModelLine that accepts two Point objects as parameters, defines the starting point and ending point of the line it represents, and creates a line segment using these two points.
[0048] 2. Use the method body of Select Model Element to pick up this line as the reference line.
[0049] Step 4: Create a point set based on the three-dimensional space data set obtained in Step 2 and the reference line in Step 3 to obtain the initial reference point coordinate set;
[0050] 1. Use the ExcelDataReaderUtility class, which contains a static method ReadFromFile that accepts the file path as a parameter, reads the data in the file using the ExcelDataReader library, serializes each row of data into a list of objects, and adds all the row lists to the total data list and then outputs it.
[0051] 2. Use the method body List.GetltemAtindex of the List class to perform array indexing to obtain the specified list data. This implementation step is mainly to obtain the mileage and elevation data.
[0052] 3. Create a function named CalculateSpatialReferencePoints with a return value type of IList <spatialpoint>The method body receives a spatial curve object and a numerical value representing the curve parameter, i.e., the above-mentioned reference line and mileage data, as inputs. Inside the method, the curve is parameterized, and the curve parameters are solved inversely through the given data to determine specific positions on the curve, generating an initial reference point set and obtaining a set of initial reference point coordinates.
[0053] Step Five: Map a new set of reference point coordinates based on the spatial mapping method;
[0054] 1. In three-dimensional space, map the known initial reference points along a vector with a specified direction and length. The mapping rule follows the principles of vector addition and scalar multiplication to generate a new set of reference point coordinates.
[0055] 2. Create a method body named Vector.ByCoodinates with a return value type of Vector. Define the originX, originY, and originZ of the starting point and use the elevation data obtained in Step Four as the targetZ input. Inside the method, create two point objects, startpoint and endpoint, and create and output a three-dimensional vector with a clear direction and length by calculating the elevationVector between the two points, i.e., vectorize the extracted elevation data.
[0056] 3. Define a static function named TranslatePoints that receives a point set and a vector as inputs, and then adds the vector to each point in the point set to perform the vector accumulation operation on the point set. Starting from the initial reference point set in Step Four, map in three-dimensional space along a vector with a clear direction and length to generate and return a new set of reference point coordinates.
[0057] Step Six: Determine the spatial orientation through dynamic positioning in the vector direction to generate a new set of fixed-position spatial line segments;
[0058] 1. Use the Curve.PlaneAtSegmentLength method body, which receives a spatial curve object and a numerical value representing the curve parameter, i.e., the above-mentioned reference line and mileage data, as inputs. Locate specific positions through the curve parameters, and then automatically calculate and extract the plane where the normal line aligns with the curve tangent at the located points and output it, i.e., obtain the reference plane at the initial point set on the reference line;
[0059] 2. Use the Plane.Normal method body to extract the normal vector from the plane object and output it;
[0060] 3. Create a static method named RotateVectorToAlignWithPlane that takes a vector object and a plane object, namely the above-mentioned normal vector and the reference plane at the initial point set, as inputs, and performs a spatial rotation of the vector to dynamically position its direction so that the vector direction aligns with the normal direction of the plane;
[0061] 4. Use the method body of the function named Line.ByStartPointDirectionLength, which takes the starting point startpoint, the direction vector directionVector, and the line segment length length as parameters, and expands the line according to the determined vector direction to obtain a new set of spatially fixed line segments.
[0062] The flowchart for generating reference geometric elements based on the spatial mapping method is as Figure 2 shown.
[0063] Step 7: Solve the serialized point set based on the parameters of the obtained spatial line segment set;
[0064] 1. Use the method body of Curve.Offset, define the offset distance parameter as [0, -0], and input the spatial line segment set in Step 6 as a curve object, which realizes the topological replication of the curve and outputs the curve in the form of a nested list.
[0065] 2. Use the method body of ListFlatten to flatten the nested list into a single-level list.
[0066] 3. Use the method body of ListRemoveltemAtindex to filter and remove redundant information in the list.
[0067] 4. Use the method body of the function named CalculateSpatialReferencePoints created in Step 4 to extract the spatial information of the starting point of the curve. Define the numerical values representing the curve parameters as 0 and the above curve object as inputs. Inside the method, the curve is parameterized, and the curve parameters are solved inversely through the given data to determine specific positions on the curve, generate a point set, and obtain a new set of point coordinate collections.
[0068] 5. Use the method body of List.Transpose to reconstruct the layout of the list matrix, swap the rows and columns, so that the required point set coordinate information is in one list.
[0069] 6. Use the method body of List.GetltemAtindex to perform array indexing to obtain the specified list data in the list and get the corresponding serialized point set coordinate list.
[0070] 7. Use the List.Chop class to split a one-dimensional list into a set of consecutive sub-lists of a specified length.
[0071] 8. Use the ListFlatten method body again to flatten the nested list into a single-level list, obtaining a serialized point set group, and this group set has geometric continuity, forming a seamless geometric path.
[0072] The flowchart for solving the adaptive serialized point set according to the spatial line segment group parameters is as Figure 3 shown.
[0073] Step Eight: Automatically create irregular components through the serialized point set group.
[0074] 1. Call the Type.Byname class, use the three-dimensional spatial data obtained in Step Two as the input, and automatically identify and select the corresponding components in the component library.
[0075] 2. Use the List.GetltemAtindex method body to perform array indexing to obtain the specified list data in the file, obtaining the corresponding serialized point set group.
[0076] 3. Create a static method named GenerateAdaptiveComponents that accepts the serialized point group set and component attribute data as inputs, and intelligently place the corresponding components in the seamless geometric path in three-dimensional space.
[0077] Step Nine: Complete the automatic segmented generation of the large-span irregular rigid body structure.
[0078] The calculations and determinations in all the above steps are implemented by using the C# language and calling relevant functions in the application programming interface of the Revit software, a BIM modeling platform released by Autodesk.
[0079] The above only expresses the best implementation mode of the present invention. Its description is relatively specific and detailed, but it should not be construed as a limitation to the scope of the patent of the present invention. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present invention, several deformations, improvements, and substitutions can be made, and these all belong to the protection scope of the present invention. Therefore, the protection scope of the patent of the present invention should be subject to the appended claims.< / spatialpoint>
Claims
1. An intelligent segmented generation method for a large-span irregular rigid body, characterized in that, It includes the following steps: Step 1: Building a parametric component library based on design information; Step 2: Automatically picking up the required three-dimensional space data according to the geometric features of the long-span components applied by the method; Step 3: Automatically establishing and picking up a reference line according to the rigid body constraint of the target layout; Step 4: Creating a point set based on the three-dimensional space data set obtained in Step 2 and the reference line in Step 3 to obtain an initial set of reference point coordinates; Step 5: Mapping a new set of reference point coordinates based on the space mapping method; Step 6: Determining the spatial orientation through the dynamic positioning of the vector direction to generate a new set of fixed-position space line segments; Step 7: Solving a serialized set of point positions according to the parameters of the obtained space line segment set; Step 8: Automatically creating irregular components through the serialized set of point positions; Step 9: Completing the automatic segmentation generation of the long-span irregular rigid body structure; Step 5 includes: Step 5.1: In three-dimensional space, map the known initial reference points along a vector with a specified direction and length. The mapping rule follows the principles of vector addition and scalar multiplication to generate a new set of reference point coordinates; Step 5.2: Create a method body with the function name Vector.ByCoodinates and the return value type of Vector. Define the originX, originY, and originZ of the starting point and input the elevation data obtained in Step 4 as targetZ. Create an object starting point inside the method, and create a three-dimensional vector with a clear direction and magnitude connecting the two points through calculation, that is, vectorize the extracted elevation data; Step 5.3: Define a static function named TranslatePoints that receives a point set and a vector as inputs, and then adds the vector to each point in the point set to perform the vector accumulation operation on the point set; starting from the initial reference point set in Step 4, map in three-dimensional space along a vector with a clear direction and length to generate a new one and return a new set of reference point coordinates.
2. The intelligent segmented generation method for a large-span irregular rigid body according to claim 1, wherein, Step 6 includes: Step 6.1: Use the Curve.PlaneAtSegmentLength method body, which receives a space curve object and a numerical value representing the curve parameter, that is, the above-mentioned reference line and mileage data as inputs. Locate a specific position through the curve parameter, and then automatically calculate and extract a plane perpendicular to the curve tangent at the located point and output it, that is, obtain the reference plane at the initial point set on the reference line; Step 6.2: Use the Plane.Normal method body to extract the normal vector from the plane object and output it; Step 6.3: Create a static method named RotateVectorToAlignWithPlane that receives a vector object and a plane object, that is, the above-mentioned normal vector and the reference plane at the initial point set as inputs, and perform the spatial rotation of the vector to dynamically position its direction so that the vector direction aligns with the normal direction of the plane; Step 6.4: Use the method body with the function name Line.ByStartPointDirectionLength, which receives the starting point startpoint, the direction vector directionVector, and the line segment length length as parameters, and expand the line in the determined vector direction to obtain a new set of fixed-position space line segment groups.
3. The intelligent segmented generation method for a large-span irregular rigid body according to claim 2, characterized in that, Step seven includes: Step 7.1: Use the Curve.Offset method body, define the offset distance parameter, and input the space line segment group in step six as the curve object to complete the topological replication of the curve and output the curve in the form of a nested list; Step 7.2: Use the function CalculateSpatialReferencePoints to extract the spatial information of the starting point of the curve; define the numerical value representing the curve parameter and the above curve object as the input. Inside the method, the curve is parameterized, and the curve parameters are solved inversely through the given data to determine specific positions on the curve, generate a point set, and obtain a new set of point coordinate collections; Step 7.3: Use the List.Transpose and List.GetltemAtindex array processing method bodies to perform layout reconstruction and array indexing of the list to obtain the corresponding serialized point position group set coordinate list. This set has geometric continuity and forms a seamless geometric path.
Citation Information
Patent Citations
Linear engineering derived component Interactive construction method
CN113505424A