A cad floor structure identification and auxiliary element automatic adding method

By using automated CAD floor structure identification and auxiliary element addition methods, the errors and inconsistencies caused by manually adding elements such as surfaces, slopes, and drip edges are resolved, enabling efficient automated drawing and annotation, and improving architectural design efficiency.

CN117272441BActive Publication Date: 2026-08-25ZHEJIANG UNIV +1
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202310716216.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-10-19
Publication Date
2026-08-25
Estimated Expiration
2043-10-19

AI Technical Summary

Technical Problem

In architectural design, manually adding elements such as surfaces, slopes, and drip edges can easily lead to errors and inconsistencies. Furthermore, dimensioning is time-consuming and prone to errors, resulting in inefficient architectural drawings.

Method used

A method for identifying CAD floor structure and automatically adding auxiliary elements was designed. By extracting discrete graphic information from CAD drawings, a structured data structure is generated, walls are identified and merged, and surface layers, drip edges, and slopes are automatically added, along with dimension annotations.

Benefits of technology

It improves the efficiency of architectural drawing production, reduces errors and inconsistencies, simplifies the annotation of the same dimensions, and is applicable to various major wall types.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117272441B_ABST
    Figure CN117272441B_ABST
Patent Text Reader

Abstract

The application discloses a CAD floor structure identification and auxiliary element automatic adding method. The application reads various discrete graphic entity elements from a CAD drawing, determines the civil structure semantics of the elements according to the layers where the elements are located, automatically divides multiple columns and multiple rows of floors, and encapsulates the multiple columns and multiple rows of floors into independent data structures for processing. After that, all data in the data structures are further analyzed, the structure of a single layer is analyzed, and according to the analysis result, surface layers, inclined surfaces, drip water and label elements are automatically added according to user input, and the label is placed in an easy-to-read position, so that the efficiency is improved, and errors and inconsistencies are reduced. In addition, the application can be suitable for various main wall types and has wide applicability.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of engineering drawing technology, and in particular relates to a method for identifying CAD floor structures and automatically adding auxiliary elements. Background Technology

[0002] In architectural design and construction, CAD drawings have become an indispensable tool, enabling the rapid and accurate creation, modification, and optimization of architectural plans. Currently widely used CAD software (such as AutoCAD, SolidWorks, and Revit) offers numerous drawing tools and functions, including wall drawing and dimensioning. Typically, after completing the basic architectural drawings, it is necessary to add elements such as surfaces, slopes, drip edges, and annotations.

[0003] To enhance the aesthetics of buildings, protect building materials, and improve waterproofing and insulation, surface layers are typically added to the exterior walls and roofs. Sloping surfaces thicken a portion of this surface layer, ensuring water flows from the top side wall towards the drainage surface. In construction engineering, to prevent water from flowing from the vertical wall surface to the bottom side wall, grooves are placed around the lower part of the structure; these are called drip lines. Drip lines utilize the phenomenon of fluid flowing along a convex surface to direct water to the outside of the wall, protecting it from rainwater erosion. Dimensioning is a crucial task; it involves marking and annotating various components and dimensions on architectural drawings to ensure correct positioning and processing during construction, guaranteeing the accuracy and precision of the building.

[0004] Typically, after completing the basic drawings, engineers need to manually add surface layers, slopes, and drip edges according to certain rules. This manual addition is prone to errors and inconsistencies. However, wall structures have a high degree of repetition, making manual addition of these elements unnecessary. Furthermore, manually dimensioning requires significant time and effort, and is prone to errors and omissions.

[0005] Therefore, a method that can automatically read drawing information and add surface layers, slopes, drip edges, and annotations can significantly reduce the workload of engineers through automation and greatly improve the efficiency of architectural drawing output. Summary of the Invention

[0006] The purpose of this invention is to address the current situation where there is a high degree of manual labor and low automation in the analysis and drawing of building structures, slopes, drip edges, and annotations in existing architectural drawings. The invention proposes a highly automated tool to replace designers in analyzing and drawing the aforementioned structures.

[0007] The objective of this invention is achieved through the following technical solution:

[0008] A method for identifying CAD floor structures and automatically adding auxiliary elements includes the following steps:

[0009] (1) Extract discrete graphic information from CAD drawings according to layer categories, combine and encapsulate them to generate structured information about multi-story and multi-column building walls, specifically including data structures of walls, break lines, moldings, axes, floor height lines and floor labeling information for each floor;

[0010] (2) Identify the data structure in step (1), and divide the data structure in step (1) according to its wall structure, mainly based on the structure of the break line and floor marking. Identify the floor position of a single floor and encapsulate the data of the wall, break line, line, axis, floor height line and floor marking information within the floor range into a new data structure. At the same time, identify the legality of the new data structure.

[0011] (3) Identify the new data structure obtained in step (2), merge the walls and identify the main wall, and extract the key points on the wall according to its break line, line, axis and floor height information, and store the merged new wall, wall key points and original floor height and axis information into the new structure.

[0012] (4) After performing step (3), the user selects to add surface layer, drip, and slope. That is, based on the wall outline and key point information extracted from the new structure in (3), the surface layer is added as a whole first, and then drip and slope are added at the key points that are needed, and the results are drawn.

[0013] (5) After performing step (3), the user selects to annotate the horizontal and vertical dimensions of the wall. That is, based on the wall outline and key point information extracted from the new structure in step (3), the horizontal and vertical dimensions of the wall are annotated and the results are drawn.

[0014] Steps (4) and (5) can be executed independently with only the information obtained in step (3).

[0015] Furthermore, step (2) includes the following sub-steps:

[0016] (2.1) Read the horizontal break line information and divide the multi-column floors into single-column floors according to their coverage size on the x-axis;

[0017] (2.2) For the single-column floors divided in (2.1), continue to divide the multi-column floors into single floors according to the horizontal break line information and the floor label information, and construct the single-floor data from the walls, break lines, moldings, axes, floor height lines and floor label information within the location range of the single floor.

[0018] (2.3) Perform legality identification on single-layer data, that is, perform legality analysis on the single-layer data generated in step (2.2). A single layer should contain a corresponding number of floor slab lines, axis lines, and break lines. The wall structure should meet the requirements. The wall structure should be connected, with floor slab lines passing through it, and conform to the description of the inner and outer wall structure. The break line position should be correct. If an error is detected, the user should be prompted with an error. If there is no error, the extracted data should be combined and packaged.

[0019] Furthermore, step (3) further processes the data from step (2), namely, merging walls and marking key points, specifically including the following sub-steps:

[0020] (3.1) Merge multiple wall structures. Connected walls will be merged together to form a merged wall. If there are multiple such structures, it is necessary to identify the main wall and the remaining walls.

[0021] (3.2) Users can choose whether the surface layer covers the molding. If the surface layer needs to cover the molding, the molding needs to be merged into the wall. Since the molding may not be closed, the molding needs to be combined first and all closed molding structures need to be extracted. Then, it needs to be merged again with the merged wall obtained in step (3.1).

[0022] (3.3) Based on the user's selection, use the merged wall and break line, molding, axis and floor height line information obtained in step (3.1) or step (3.2) to obtain the key point information of the wall. The key point information includes the position where it intersects with the break line, the position where it intersects with the window, whether it is at the same height as the floor height line, and whether the node belongs to the inner wall or the outer wall. At the same time, obtain the wall type information and encapsulate this information into a new data structure.

[0023] Furthermore, step (4) uses the data structure generated in step (3), where the user selects to generate a surface layer, a slope, and a drip edge, and can control whether to skip the molding. Specifically, it includes the following sub-steps:

[0024] (4.1) Based on the new data structure obtained in step (3), first generate the surface contour points without dripping and slope, that is, expand the outer contour of the wall according to the user, and remove the parts that should not be drawn.

[0025] (4.2) On the basic surface contour points, all points that meet the first requirement are offset upwards to form a slope; the first requirement means that its length is greater than a set value or is near a window and on the edge of the exterior wall;

[0026] (4.3) Mark all points that meet the second requirement on the outline points that form the slope. Drips are drawn in the subsequent drawing process. At the same time, the user can choose the style of the drips. The second requirement means that its length is greater than a certain value or it is near a window and at the lower edge of the outer wall.

[0027] (4.4) Connect the outline points to form a surface layer. If the surface layer is not used to cover the lines, the lines need to be used to break the already formed surface layer before drawing.

[0028] Further, in step (4), after using the data structure containing key point information and wall type information generated in step (3), the user selects to generate dimension annotations, which specifically includes the following sub-steps:

[0029] (5.1) Based on the key point information of the wall obtained in step (3.3), determine whether each point needs to be labeled, generate horizontal labels, and finally merge and deduplicate the generated horizontal labels, and return the data structure of the generated labels.

[0030] (5.2) Based on the key point information of the wall obtained in step (3.3), determine whether each point needs to be labeled, and generate vertical labels and total vertical labels. Finally, merge and deduplicate the generated vertical labels, and return the data structure of the generated labels.

[0031] (5.3) Draw the annotations based on the data from steps (5.1) and (5.2), and adjust the position of the text to prevent text overlap.

[0032] The benefits of this invention are as follows:

[0033] This invention provides an automated tool that can automatically add elements such as surface layers, drip edges, and slopes to CAD drawings, and automatically annotate dimensions, simplifying identical dimension annotations and placing markings in easily readable locations, thereby improving efficiency and reducing errors and inconsistencies. Furthermore, this invention is applicable to various major wall types, exhibiting broad applicability. Attached Figure Description

[0034] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application.

[0035] Figure 1 This invention provides a diagram showing the different floor types and break line intervals.

[0036] Figure 2 This is a floor slab diagram that needs to be inspected according to the present invention;

[0037] Figure 3 This is a classification diagram of the interior and exterior walls of the present invention;

[0038] Figure 4 This is a schematic diagram showing the overlap of the molding and wall joints in this invention;

[0039] Figure 5 This is a structural diagram of the wall protrusion of the present invention;

[0040] Figure 6 This is a schematic diagram illustrating a case of repeated height marking according to the present invention. Detailed Implementation

[0041] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application.

[0042] A method for identifying CAD floor structures and automatically adding auxiliary elements includes the following steps:

[0043] (1) Extract discrete graphic information from CAD drawings according to layer categories, combine and encapsulate them to generate structured information about multi-story and multi-column building walls. Specifically, the data structure includes information such as walls, break lines, moldings, axes, floor height lines and floor labels for each floor. This data contains all the aforementioned information and cannot distinguish the layer and column where the data is located.

[0044] (2) In the data preprocessing step, the selected data needs to be divided into layers, further divided into buildings, and the top floor, bottom floor and general floors need to be distinguished. The validity of the data needs to be judged. If the data is invalid, the corresponding error needs to be thrown.

[0045] After extracting each valid floor, the walls and moldings are merged, and intersections with break lines and windows are calculated to finally obtain the required data attributes for each point.

[0046] 2.1 Data Splitting

[0047] Take out all the horizontal break lines and put them into different buckets. The leftmost and rightmost endpoints of the break lines in each bucket represent the range of the column represented by that bucket.

[0048] First, take out all the broken lines and compare them with the broken lines in all the buckets. If the length of the overlapping broken lines is greater than 50% of either of the two broken lines, they are considered to belong to the same column and added to the current bucket. Repeat this step until all the broken lines have been assigned to buckets.

[0049] Perform a validity check, that is, determine that the right end of the previous bucket (x+100mm) is less than the left end of the next bucket, and then load the data into the layer's data.

[0050] 2.2 Data Rows

[0051] After obtaining the data from the columns, it is necessary to extract each floor of the building. For this part, that is, all ordinary floors (including the ground floor), there are two horizontal break lines at the bottom and top. Only the top floor is allowed to have an indefinite number of horizontal break lines. It is also stipulated that for ordinary floors, there must be a floor label between the two break lines, and for the top floor, the floor label must contain "RF".

[0052] First, retrieve all the horizontal break lines and sort them. Use two array pointers to represent the break lines at the bottom and top of the building, respectively. Use the "FloorBoundary" class to store the two break lines and whether the floor is the top floor.

[0053] Since the top floor needs to be processed, the floors are divided into ordinary floors, top floors and non-floors. The top floor can contain multiple single floors, so the top floor and non-top floor need to be processed differently. For non-top floors, if it is an ordinary floor, save the floor information and change the two pointers to skip an interval (the interval between two floors); if it is a non-floor, directly read the next interval to try to find a normal floor; if it is the top floor, the bottom pointer needs to be fixed to mark that the current one is the top floor, until the top break line of the top floor is found or the last break line is reached.

[0054] If the current state is the top floor, we need to continuously search for the next non-floor and include it in the top floor count, until a new top floor or ordinary floor is found, and repeat the above process.

[0055] Figure 1 It explains the different types of floors and the break line interval diagram.

[0056] This approach skips non-floor areas and includes all non-floor areas above the top floor as the top floor. After partitioning, we load the specific data into a single-layer class and perform a validity check.

[0057] 2.3 Legality Check

[0058] The legality check mainly examines the quantity of relevant data, including whether floor slab lines exist, whether axis lines exist, whether the number of break lines is 2, 3, or 4, and whether walls exist. It also checks whether vertical break lines are located to the right of the end of horizontal break lines and whether vertical break lines cover the area between two horizontal break lines. If any data is invalid, the corresponding error type is recorded and an error is thrown at the end.

[0059] This step also involves further processing of the data, mainly removing obviously repeated break lines. Based on the assumption that break lines are connected end to end, we only retain non-repeating break lines.

[0060] (3) This step mainly involves merging walls, finding the intersection of walls, windows, and break lines, and obtaining information about the relevant intersection points. Steps (3.2), (3.3), and (3.6) are only used when annotation is required or when the surface layer contains moldings.

[0061] 3.1 Merging Walls

[0062] First, merge all walls, making them all "MPolygons". Then merge all moldings, combining what were originally line segments into polygons. Next, expand all MPolygons by 5mm and merge them. Extract the outer contour and internal holes from the merged result. For the outer contour, simplify by removing all points on the same line segment and duplicate points.

[0063] Meanwhile, to prevent the appearance of multiple wall blocks, we selected the main walls based on their area and location on the floor line. Those located on the floor line and having the largest area were chosen as the main wall. For the top floor, the other outer contours were preserved as other walls, which only underwent a simple cladding treatment. After processing, the outer contours needed to be shrunk back to their original size, and similar treatment was applied to the openings.

[0064] At the same time, this step ensures that all generated polygons appear in a counter-clockwise direction.

[0065] 3.2 Merging moldings with the wall

[0066] This step merges the molding with the main body of the wall. After merging, we may get several parts, but we only take the part that intersects with the original main outline.

[0067] 3.3 Obtaining floor slabs that do not intersect with the break line

[0068] To obtain all transverse line segments of the floor slab that do not intersect with the break line, for each line, check if there is a line parallel to it that is 200mm away, the longer line is longer than 1100mm, the shorter line is 700-1100mm long, and the overlap of the two line segments in the x direction is greater than 50%.

[0069] Floor slabs that need to be inspected, such as Figure 2 The frame portion is shown.

[0070] 3.4 Obtaining Node-Related Information

[0071] This step requires calculating the intersections of walls, break lines, and windows, determining the type of intersection, and calculating the interior and exterior walls. For break lines / windows, mark the intersection directions (up, down, left, right); for walls, mark the interior and exterior walls.

[0072] For interior and exterior walls, markings are as follows: Figure 3 The scenarios shown include the inner bottom, inner top, and outer areas, the inner area without top or bottom, and the area between the two window segments (outer 2, outer 3). First, handle the intersections with the break lines, and enumerate the points p on the outline. Find the point on the break line closest to this point. If the distance is very close, then p is on the break line. Assign corresponding labels to these points. Also, stipulate that each break line has at most two intersection points, and for each break line, there are only three possibilities: up / down / left / right, up / down / right, and down / right.

[0073] For windows, since the line segments given by the windows are irregular, the windows need to be merged first. Since it is only necessary to determine whether it intersects with the upper window or the lower window, the windows are first divided into upper windows and lower windows. For each specific window data, the longest line is found and put into the bucket in sequence. At the same time, lines with more than 50% repetition are put into the same bucket, thus dividing all areas into two buckets.

[0074] First, distinguish between the top and bottom. For all points inside the bucket, take the average and compare it with the average of all points on the wall. If it is greater, it is the upper window; otherwise, it is the lower window. Take the midline as the top of the smaller bucket and extract all points of the window. Then, remove all duplicate points.

[0075] For the points obtained after the above process, calculate the distance of these points to the outline, and determine whether there is a point on the outline that is close to these points. If there is, then consider this point as the intersection with the window. If not, then insert a point on the outline and treat this point as the intersection with the window.

[0076] Next, we need to distinguish between the interior and exterior. First, we need to determine the type of the floor. We need to check whether the walls intersect with the windows and walls on the top, bottom, left, and right. If there are no intersections, it is a fully exterior type. If there are only intersections on the top and bottom, it is an interior and exterior type. All others are ordinary types.

[0077] For the normal type, find the inner top and inner bottom, that is, start from the intersection of the upper right wall and find the last one at the top. Do the same for the bottom. At the same time, we count the number of intersections between the windows and the broken lines at the top and bottom. If there are four intersections, find two consecutive intersections as the starting point and two consecutive intersections as the ending point, and specially mark the middle area (in order to remove the dripping water in this area).

[0078] like Figure 3 The diagram shown illustrates the internal and external classification of the wall structure according to this invention. No specific requirements apply to the overall external shape. For both internal and external shapes, it is necessary to locate and mark the internal intersection points at the top and bottom ends.

[0079] 3.5 Obtaining information from the floor slab

[0080] For all annotations, the floor slab bottom needs to be obtained. The floor slab bottom is the first intersection point that the floor slab extends to below. If no intersection point is found below, then the floor slab is extended to one intersection point as the floor slab bottom.

[0081] 3.6 Obtain the floor slab intersecting the break line

[0082] For nodes that intersect with the break line, find the vertical line that intersects with the break line. If its thickness is between 80-200mm, this section is considered to belong to the floor slab and is marked.

[0083] 3.7 Determine if a node originates from a pin.

[0084] First, any node that intersects with a window is not considered a molding. If a node does not intersect with a window, determine if it originated from the original outline. If a node intersects with a window, it originated from the wall, not the molding. Only nodes that exist solely on the molding are considered to originate from the molding.

[0085] That is, for Figure 4 The diagram shown illustrates the overlap of moldings and wall joints, which are wall joints.

[0086] (4) Generate surface, slope and drip. For surface, skip the floor slab on the floor line and the intersection of the break line / window connection. For slope and drip, generate only on the exterior wall and there are certain generation rules.

[0087] 4.1 Determine if a point is drawable

[0088] First, determine whether the points on the outline should be expanded outwards and drawn as a surface layer. Mark all points on the floor slab line segment. Then, find the end intersection point of the first window or break line intersection. Starting from this point, mark all window intersection intervals (there may be more than two points) as undrawable. Also mark all break line intersections. When encountering a floor slab, check if its height is the same as any floor line. If they are the same, mark this floor slab as undrawable.

[0089] 4.2 Obtaining the expanded nodes

[0090] In this step, since the outer expansion of each line may be different, for a point, it is necessary to calculate the offset required of the current node relative to the previous line and relative to this line, and to construct a new sequence after all points have been offset.

[0091] 4.3 Application of inclined planes

[0092] For a slope, first find the first exterior wall node, and then apply the slope to all exterior wall nodes starting from this node.

[0093] For all drawable nodes that are exterior walls, there are two cases for the slope. If the current node is the right node that intersects the top edge with the window, then only the next line segment of the current line segment is downward, so offset this node upward by 10mm.

[0094] For cases where the slope does not intersect with the window, the direction of the slope is always considered to be towards the lowest point after the lowest point. Therefore, when a line segment is detected that has a length of ≥150mm and is pointing to the left in a counterclockwise direction, it is an upper line segment. We then determine whether its left and right sides continue downward. If so, we shift the node to the other side in the downward direction.

[0095] 4.4 Obtaining the location of the dripping water

[0096] For dripping water, the process is similar to that for inclined planes, and dripping water can only be located at the lower left corner of the wall. Find the first external wall node and check whether the current node intersects with the wall, or whether the length of the line segment containing the current node is ≥150mm and the direction is to the right. If the previous line segment is downward, mark the previous node as dripping water.

[0097] 4.5 Obtaining the Surface Layer

[0098] All processed nodes need to be regenerated into new layers. For cases involving lines, simply iterate from the first drawable point to the next undrawable point. For cases skipping lines, after generating the layers, the generated layers need to be broken to obtain the final nodes.

[0099] 4.6 Remove content below the floor line

[0100] For content below the ground line, remove all polylines where all points are below the ground line, and break the remaining polylines and the ground line.

[0101] Step 5: Generate annotations. Generate horizontal and vertical annotations respectively, both of which include the overall annotation.

[0102] 5.1 Horizontal labeling

[0103] For horizontal annotations, all floor slab lines that intersect with walls, windows, or break lines, as well as those below the ground level, are excluded from annotation. For the remaining parts, the top and bottom annotation heights are determined.

[0104] Find the window with the highest height on the top floor. If there is no window, find the highest node and mark the height of the top floor. For the bottom floor, it is assumed that the height of its windows is always the same, and the rest of the windows are the same.

[0105] First, record the y-values ​​of the top floor, bottom floor, and floor lines for later vertical labeling.

[0106] Next, the x-values ​​of all points with the same y-value as the top and bottom are placed in two arrays. For other points, all points with the same y-value are placed on the same height line, and the x-value and whether it comes from a line are recorded. The same operation is performed on the holes. Then, the middle layers are sorted by y-value and merged.

[0107] If the difference between the y-value of the middle layer and the bottom layer is less than or equal to 600mm, add all points of the middle layer to the array of the bottom layer. If the difference between the y-value of the middle layer and the top layer is less than or equal to 150mm, perform a similar operation.

[0108] For the remaining intermediate layers, keep searching upwards within y+300mm to find if there is an intermediate layer. If there is, merge it with the current intermediate layer. Then, continue searching upwards for 300mm from the height of the current intermediate layer until no more intermediate layers are found.

[0109] Then, for each layer (including the top and bottom layers), find the axis that is closest to each point, add the x-value of the axis to this layer, and remove duplicates.

[0110] If the top and bottom layers are exactly the same, we remove the top layer.

[0111] For the middle point, when merging, the line and the wall point coincide, so we consider it to be the wall.

[0112] Next, certain segments need to be removed from each annotation. If it's a dual-axis layer, for the middle ordinary layer, divide this layer into a left-axis side and a right-axis side, and do not draw the longest line between the two axes. If an intermediate layer has the same segments as the top, bottom, and lower intermediate layers, then that part also does not need to be drawn. Then, re-split these annotated data into all the segments that need to be drawn and return them.

[0113] 5.2 Vertical Labeling

[0114] For vertical annotations, floor slabs are excluded from annotation except for the top left corner, and the area below the floor slab is excluded from annotation. The other rules are the same as for horizontal annotations.

[0115] like Figure 5 As shown in the image on the left, locate the protruding structure and label it on both sides. Select the upper line segment as the dividing edge.

[0116] First, when selecting the dividing edge, we consider that the angle between this edge and the horizontal is less than 30 degrees, and that it forms two clockwise rotations with the two line segments before and after it. Using this line as the dividing line, we divide all the points into different groups.

[0117] We take the average x-value of the points in each group, and place the leftmost and rightmost groups in more fixed positions, offset by a fixed distance to the left and right of the leftmost and rightmost points, respectively.

[0118] For the middle group, first find a concave section with a certain length (>=300mm), and prioritize placing the annotation in the concave section (i.e., rotating counterclockwise twice). Select the leftmost point of this concave structure and offset it to the right as the annotation position. If no concave structure exists, select the leftmost node and offset it to the right as the annotation position. Then add floor lines to all groups.

[0119] The overall dimension uses the bottom, top, and floor line information recorded in the horizontal dimension. This dimension only needs to be offset to the left of the leftmost node.

[0120] To avoid needing to connect to floor lines on both the top and bottom sides of a floor, groups that are close to each other (x) need to be merged. For example... Figure 6 The diagram shows a case of repeated height markings. If the middle section is not a floor slab, then two overlapping vertical red lines will appear.

[0121] Merge all pairs of x with similar values, and then remove duplicates after merging.

[0122] If the middle section shares the same dimensions as the left or right dimension lines, delete it. If a dimension line shares the same dimensions as the left dimension line, delete it. If the left dimension line shares the same dimensions as the overall dimension line, delete it. Then, similar to horizontal drawing, re-divide these segments into all the segments that need to be drawn and return.

[0123] This embodiment is only used to illustrate the technical solution of the present invention, and is not intended to limit the invention in any way. Modifications can still be made to the technical solution described in the foregoing embodiment, or equivalent substitutions can be made to some or all of the technical features. However, these modifications or substitutions do not cause the essence of the corresponding technical solution to deviate from the scope of the technical solutions of the embodiments of the present invention.

Claims

1. A method for identifying CAD floor structures and automatically adding auxiliary elements, characterized in that, Includes the following steps: (1) Extract discrete graphic information from CAD drawings according to layer categories, combine and encapsulate them to generate structured information about multi-story and multi-column building walls, specifically including data structures of walls, break lines, moldings, axes, floor height lines and floor labeling information for each floor; (2) Identify the data structure in step (1), and divide the data structure in step (1) according to its wall structure, mainly based on the structure of the break line and floor marking. Identify the floor position of a single floor and encapsulate the data of the wall, break line, line, axis, floor height line and floor marking information within the floor range into a new data structure. At the same time, identify the legality of the new data structure. (3) Identify the new data structure obtained in step (2), merge the walls and identify the main wall, and extract the key points on the wall according to its break line, line, axis and floor height information, and store the merged new wall, wall key points and original floor height and axis information into the new structure. (4) After performing step (3), the user selects to add surface layer, drip and slope. That is, based on the wall outline and key point information extracted from the new structure in step (3), the surface layer is added as a whole first, and then drip and slope are added at the key points that are needed, and the result is drawn. (5) After performing step (3), the user selects to annotate the horizontal and vertical dimensions of the wall. That is, based on the wall outline and key point information extracted from the new structure in step (3), the horizontal and vertical dimensions of the wall are annotated and the results are drawn. Steps (4) and (5) can be performed independently with only the information obtained in step (3).

2. The method for CAD floor structure identification and automatic addition of auxiliary elements according to claim 1, characterized in that, Step (2) specifically includes the following sub-steps: (2.1) Read the horizontal break line information and divide the multi-column floors into single-column floors according to their coverage size on the x-axis; (2.2) For the single-column floors divided in (2.1), continue to divide the multi-column floors into single floors according to the horizontal break line information and the floor label information, and construct the single-floor data from the walls, break lines, moldings, axes, floor height lines and floor label information within the location range of the single floor. (2.3) Perform legality identification on single-layer data, that is, perform legality analysis on the single-layer data generated in step (2.2). A single layer should contain a corresponding number of floor slab lines, axis lines, and break lines. The wall structure should meet the requirements. The wall structure should be connected, with floor slab lines passing through it, and conform to the description of the inner and outer wall structure. The break line position should be correct. If an error is detected, the user should be prompted with an error. If there is no error, the extracted data should be combined and packaged.

3. The method for CAD floor structure identification and automatic addition of auxiliary elements according to claim 1, characterized in that, Step (3) specifically includes the following sub-steps: (3.1) Merge multiple wall structures. Connected walls will be merged together to form a merged wall. If there are multiple such structures, it is necessary to identify the main wall and the remaining walls. (3.2) Users can choose whether the surface layer covers the moldings. If the surface layer needs to cover the moldings, the moldings need to be merged into the wall. Since the moldings may not be closed, the moldings need to be combined first and all closed molding structures need to be extracted. Then, they need to be merged again with the merged wall obtained in step (3.1). (3.3) Based on the user's selection, use the merged wall and break line, molding, axis and floor height line information obtained in step (3.1) or step (3.2) to obtain the key point information of the wall. The key point information includes the position where it intersects with the break line, the position where it intersects with the window, whether it is at the same height as the floor height line, and whether the node belongs to the inner wall or the outer wall. At the same time, obtain the wall type information and encapsulate this information into a new data structure.

4. The method for CAD floor structure identification and automatic addition of auxiliary elements according to claim 1, characterized in that, Step (4) specifically includes the following sub-steps: (4.1) Based on the new data structure obtained, first generate the surface contour points without dripping and slope, that is, expand the outer contour of the wall according to the user's belonging, and remove the parts that should not be drawn. (4.2) On the basic surface contour points, all points that meet the first requirement are offset upwards to form a slope; the first requirement means that its length is greater than a set value or is near a window and on the edge of the exterior wall; (4.3) Mark all points that meet the second requirement on the outline points that form the slope. Drips are drawn in the subsequent drawing process. At the same time, the user can choose the style of the drips. The second requirement means that its length is greater than a certain value or it is near a window and at the lower edge of the outer wall. (4.4) Connect the outline points to form a surface layer. If the surface layer is not used to cover the lines, the lines need to be used to break the already formed surface layer before drawing.

5. The method for CAD floor structure identification and automatic addition of auxiliary elements according to claim 1, characterized in that, After using the data structure containing key point information and wall type information generated in step (3) in step (4), the user selects to generate dimension annotations, which specifically includes the following sub-steps: (5.1) Based on the key point information of the wall obtained in step (3.3), determine whether each point needs to be labeled, generate horizontal labels, and finally merge and deduplicate the generated horizontal labels and return the data structure of the generated labels. (5.2) Based on the key point information of the wall obtained in step (3.3), determine whether each point needs to be labeled, and generate vertical labels and total vertical labels. Finally, merge and deduplicate the generated vertical labels, and return the data structure of the generated labels. (5.3) Draw the annotations based on the data from steps (5.1) and (5.2), and adjust the position of the text to prevent text overlap.

Citation Information

Patent Citations

  • CAD automatic multi-label generation method and system

    CN120279140A