Modular positioning method of a BIPV photovoltaic panel and purlin

CN122530459APending Publication Date: 2026-08-07GUANGZHOU ZHONGHONG CONSTR ENG CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
GUANGZHOU ZHONGHONG CONSTR ENG CO LTD
Filing Date
2026-07-06
Publication Date
2026-08-07

AI Technical Summary

Technical Problem

当屋面存在坡度变化、边界不规则、檩条分段或板块模数与檩条布置不完全一致时,仅靠基准边阵列和人工修正难以保持各光伏板支承边与檩条可支承区域的对应关系

Benefits of technology

1.本发明通过获取屋面坡面、檩条中心线、屋面边界和光伏板模数等三维建模数据,并基于屋面坡面与檩条中心线建立局部装配坐标系,使檩条中心线、屋面边界和光伏板模数能够在统一坐标关系下参与定位计算。通过将檩条中心线转换为支承基准节点、将屋面边界转换为边界限制节点、将光伏板模数转换为板块模块节点,并在节点之间建立支承、邻接、间隙和边界退让关系,原本分散的几何对象被组织为可求解的语义约束图。定位求解时,越界约束、重叠约束和支承落位约束先于板缝均衡、边缘余量均衡和排布方向一致约束参与计算,使生成的三维定位坐标能够同时受檩条支承位置和屋面边界范围限制,减少由单纯阵列复制、人工拾取点位或二维投影换算引起的定位偏差。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122530459A_ABST
    Figure CN122530459A_ABST
Patent Text Reader

Abstract

The present application relates to the technical field of three-dimensional modeling, and particularly relates to a modular positioning method for BIPV photovoltaic panels and purlins. The method obtains three-dimensional modeling data containing a roof slope, a purlin center line, a roof boundary and a photovoltaic panel module, establishes a local assembly coordinate system based on the roof slope and the purlin center line, converts the purlin center line, the roof boundary and the photovoltaic panel module into support reference nodes, boundary limiting nodes and panel module nodes in a semantic constraint graph respectively, and solves the constraint through support, adjacency, gap and boundary yielding relationships to generate three-dimensional positioning coordinates of the photovoltaic panel relative to the purlin center line. The method can convert scattered geometric objects into calculable assembly constraint relationships, reduce deviations caused by manual positioning and two-dimensional projection conversion, and improve the consistency of the support relationship between the photovoltaic panel and the purlin and the reviewability of the three-dimensional modeling result.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of 3D modeling technology, specifically to a modular positioning method for BIPV photovoltaic panels and purlins. Background Technology

[0002] The positioning of building-integrated photovoltaic (BIPV) panels and purlins falls under the fields of computer-aided design and 3D modeling data processing. Current rooftop PV panel layouts are typically completed in a 3D modeling environment. Designers first establish a roof slope model, a purlin centerline model, and a roof boundary model. Then, based on the standard dimensions of the PV panels, the gaps between panels, and the edge setback distance, they determine the starting reference edge on the roof slope and generate a panel array along the purlin extension direction or perpendicular to the purlin direction. For regular rectangular slopes, conventional methods can complete PV panel positioning through copying, arraying, alignment, and manual snapping. For areas with stable purlin spacing and simple slope boundaries, the 2D layout results can also be projected onto the roof slope to obtain the corresponding 3D coordinates.

[0003] In more conventional technical solutions, purlins in 3D modeling data typically exist as line segments or centerlines, while photovoltaic panels usually exist as panel outlines or regions. During positioning, modelers use the purlin centerline as a reference line, the roof boundary as a clipping boundary, and the photovoltaic panel module as the array step size. They then manually set offsets, rotation angles, and panel gap widths to ensure the photovoltaic panel outline roughly falls within the roof area. If panels exceed boundaries, panel gaps are uneven, or panel edges deviate from the purlin position in localized areas, corrections are made by moving individual panels, adjusting the starting point, or changing the local gap width. This method primarily relies on surface snapping and coordinate conversion between geometric objects; the support relationship between the purlins and photovoltaic panels is not transformed into a calculable constraint relationship.

[0004] The core problem with the existing methods is that photovoltaic panels, purlins, and roof boundaries are treated as independent geometric objects in the 3D modeling data, lacking semantic constraints for modular positioning. When the roof has variations in slope, irregular boundaries, segmented purlins, or the module of the panels is not entirely consistent with the arrangement of the purlins, relying solely on the reference edge array and manual correction is insufficient to maintain the correspondence between the supporting edges of each photovoltaic panel and the supportable area of ​​the purlins. The technical reason for this problem is that the existing positioning process does not uniformly incorporate panel nodes, supporting references, boundary constraints, and panel joint relationships into the constraint solution, resulting in potential support offsets, local panel joint anomalies, or insufficient boundary setbacks even after the positioning coordinates are generated, and subsequent verification relies on manual judgment. Summary of the Invention

[0005] The purpose of this invention is to provide a modular positioning method for BIPV photovoltaic panels and purlins, which can solve the problems mentioned in the background art.

[0006] To achieve the above objectives, the technical solution adopted by the present invention is as follows: A modular positioning method for BIPV photovoltaic panels and purlins includes: acquiring three-dimensional modeling data containing roof slope, purlin centerline, roof boundary, and BIPV photovoltaic panel module; establishing a local assembly coordinate system based on the roof slope and purlin centerline; converting the purlin centerline, roof boundary, and BIPV photovoltaic panel module into support reference nodes, boundary constraint nodes, and panel module nodes in a semantic constraint diagram; and performing constraint solving on the panel module nodes according to the semantic constraint diagram to generate three-dimensional positioning coordinates of the BIPV photovoltaic panel relative to the purlin centerline.

[0007] Preferably, establishing a local assembly coordinate system based on the roof slope and the purlin centerline includes: extracting the normal vector, slope boundary direction, and purlin main extension direction of the roof slope; using the purlin main extension direction as the first coordinate axis; using the direction perpendicular to the first coordinate axis within the roof slope as the second coordinate axis; and using the normal vector of the roof slope as the third coordinate axis; and transforming the purlin centerline according to the local assembly coordinate system to form slope parameter coordinate data for three-dimensional modeling and positioning solutions.

[0008] Preferably, converting the purlin centerline, the roof boundary, and the BIPV photovoltaic panel module into support reference nodes, boundary restriction nodes, and panel module nodes in a semantic constraint diagram includes: generating panel module nodes with corner points, boundary lines, and support edges based on the BIPV photovoltaic panel module; generating support reference nodes corresponding to the support allowable area based on the purlin centerline; generating boundary restriction nodes that limit the arrangement range of the panel module nodes based on the roof boundary; and establishing constraint edges representing support, adjacency, gap, and boundary setback relationships between the panel module nodes, the support reference nodes, and the boundary restriction nodes.

[0009] Preferably, the constraint solution for the segment module nodes based on the semantic constraint graph includes: configuring different solution levels for the constraint edges in the semantic constraint graph, wherein boundary crossing constraints, overlap constraints, and support placement constraints are configured as constraints to be solved first, and plate seam balancing constraints, edge margin balancing constraints, and consistent arrangement direction constraints are configured as constraints to be solved later; and adjusting the translation parameters, rotation parameters, and gap parameters of the segment module nodes in sequence according to the solution levels to obtain the segment positioning solution that satisfies the semantic constraint graph.

[0010] Preferably, generating the three-dimensional positioning coordinates of the BIPV photovoltaic panel relative to the purlin centerline includes: determining the corner coordinates of each BIPV photovoltaic panel in the local assembly coordinate system based on the positioning solution of the panel module node; inversely transforming the corner coordinates to the global coordinate system where the three-dimensional modeling data is located; establishing a numbering mapping relationship between each BIPV photovoltaic panel and at least one purlin centerline, and writing the numbering mapping relationship and the corner coordinates together into the modular positioning data.

[0011] Preferably, after the purlin centerline undergoes coordinate transformation according to the local assembly coordinate system, the method further includes: projecting the purlin centerline onto the parameter domain of the roof slope; extending the projected purlin centerline in a strip shape according to the effective support width of the purlin to obtain a purlin support strip; mapping the support edge of the panel module node to the parameter domain; calculating the overlapping section between the support edge and the purlin support strip; and using the overlapping section as input data for the support placement constraint.

[0012] Preferably, the constraint edges include panel group constraint edges, which are generated according to the continuous arrangement of adjacent BIPV photovoltaic panels in the same purlin direction; when the individual adjustment of the panel module node causes the gap between adjacent panels to exceed the preset allowable range, multiple panel module nodes with the panel group constraint edges are merged into a panel group to be solved, and a unified translation variable and a local gap variable are configured for the panel group to be solved, and the unified translation variable participates in the constraint solution first.

[0013] Preferably, after obtaining the plate positioning solution, the method further includes: performing a three-dimensional model rule verification on the plate positioning solution. The three-dimensional model rule verification includes mapping the boundary line, support edge, and corresponding purlin support strip of the BIPV photovoltaic panel to the same slope parameter domain to form support matching verification data, plate joint continuity verification data, and boundary setback verification data. When any verification data does not meet the corresponding rule, an abnormal positioning identifier associated with the plate module node is generated, and the abnormal positioning identifier is written into the semantic constraint graph.

[0014] Preferably, after the semantic constraint graph is written to the abnormal location identifier, the method further includes: selecting rearrangement variables according to the type of the abnormal location identifier, wherein the rearrangement variables include overall offset variables of the plate column, redistribution variables of the gap between adjacent plates, replacement variables of local reference edges, and replacement variables of purlin mapping; limiting the rearrangement variables to the plate module nodes associated with the abnormal location identifier and their adjacent plate module nodes, re-executing the constraint solution, and replacing the corresponding three-dimensional location coordinates with the re-solved location solution.

[0015] Preferably, after re-executing the constraint solution, the method further includes: establishing a positioning iteration record, which includes the node number of the module participating in the re-solution, the rearranged variables adopted, the three-dimensional positioning coordinates before rearrangement, the three-dimensional positioning coordinates after rearrangement, and the corresponding purlin centerline number; generating a modular positioning output file in a three-dimensional modeling environment based on the positioning iteration record, wherein the modular positioning output file associates corner coordinates, panel seam parameters, support reference nodes, and boundary constraint nodes according to the BIPV photovoltaic panel number.

[0016] Compared with the prior art, the beneficial effects of the present invention are as follows: 1. This invention acquires 3D modeling data such as roof slope, purlin centerline, roof boundary, and photovoltaic panel module, and establishes a local assembly coordinate system based on the roof slope and purlin centerline, enabling the purlin centerline, roof boundary, and photovoltaic panel module to participate in positioning calculations under a unified coordinate relationship. By converting the purlin centerline into a support reference node, the roof boundary into a boundary constraint node, and the photovoltaic panel module into a panel module node, and establishing support, adjacency, gap, and boundary setback relationships between nodes, the originally scattered geometric objects are organized into a solvable semantic constraint graph. During positioning calculation, boundary crossing constraints, overlap constraints, and support placement constraints participate in the calculation before panel joint balancing, edge allowance balancing, and consistent arrangement direction constraints, so that the generated 3D positioning coordinates are simultaneously constrained by the purlin support position and the roof boundary range, reducing positioning deviations caused by simple array replication, manual point picking, or 2D projection conversion.

[0017] 2. This invention also projects the purlin centerline onto the roof slope parameter domain and forms a purlin support band according to the purlin support width. The photovoltaic panel support edge is then mapped to the same parameter domain to calculate the overlapping section, ensuring a clear data source for the support placement constraint. For cases where single-block adjustments cause abnormal gaps between adjacent panels, a panel group constraint edge is used to form a panel group to be solved. This is solved using unified translation variables and local gap variables, reducing the impact of single-block corrections on the continuity of adjacent panels. After the positioning results are generated, abnormal positioning is identified using support matching verification data, panel gap continuity verification data, and boundary setback verification data. Based on the abnormality type, rearrangement variables such as overall panel column offset, adjacent panel gap redistribution, local reference edge replacement, or purlin mapping replacement are selected to form a closed-loop correction process for the positioning coordinates. The positioning iteration records save the coordinates before and after rearrangement, panel numbers, and purlin numbers, facilitating verification of the positioning process in the 3D modeling environment. Attached Figure Description

[0018] Figure 1 This is an overall flowchart of the modular positioning method for building-integrated photovoltaic panels and purlins according to the present invention; Figure 2This is a flowchart illustrating the establishment and transformation of the local assembly coordinate system in this invention. Figure 3 This is a flowchart of the semantic constraint graph construction and hierarchical constraint solution of the present invention; Figure 4 This is a flowchart illustrating the generation of purlin support strips and the collaborative solution of plate groups according to the present invention. Figure 5 This is a flowchart of the three-dimensional model rule verification, anomaly rearrangement, and location output of the present invention. Detailed Implementation

[0019] refer to Figure 1 In one embodiment, a modular positioning method for building-integrated photovoltaic (PV) panels and purlins operates in a 3D modeling environment. The data objects processed include roof slope, purlin centerline, roof boundary, and PV panel module. The roof slope is a face object in the 3D modeling data or a slope object obtained by combining multiple facets. The purlin centerline is a line object representing the spatial orientation of the purlin. The roof boundary is a closed or semi-closed boundary line that restricts the arrangement range of the PV panels. The PV panel module is the geometric dimensions of the PV panels in the arrangement direction and the direction across the purlins, as well as the reserved gap data between the panels. This method does not change the physical structure of the PV panels and purlins, but generates modular positioning coordinates through geometric relationships, topological relationships, and assembly constraints in the 3D modeling data. Its working principle is as follows: the scattered slope, purlin, boundary and photovoltaic panel module are transformed into a unified local assembly coordinate system. Then, the purlin centerline, roof boundary and photovoltaic panel module are abstracted into different nodes in the semantic constraint diagram. Constraint edges are established based on the support, adjacency, gap and boundary setback relationships. Then, the translation, rotation and gap of the module nodes are solved in the constraint diagram to obtain the three-dimensional positioning coordinates of each photovoltaic panel relative to the purlin centerline.

[0020] In this embodiment, the 3D modeling data can come from a detailed building roof model or from a geometric data file after format conversion. During data reading, a unified object identifier is attached to each type of object. The roof slope must at least record the slope number, outer boundary, slope normal vector, and slope parameter domain; the purlin centerline must at least record the endpoints of the line segment, the slope number to which it belongs, and the centerline direction; the roof boundary must at least record the vertex sequence and boundary type of the boundary line; the photovoltaic panel module must at least record the panel length, panel width, inter-panel gap, and arrangement direction. To avoid meaning discrepancies for the same object under different coordinate environments, the read data first undergoes a coordinate normalization process, deleting duplicate endpoints, correcting boundary lines with opposite directions but the same spatial position, and merging broken centerline segments belonging to the same purlin into a segment set based on endpoint continuity. For cases where multiple sets of purlin directions exist on the same slope, the purlin centerline group involved in the photovoltaic panel support relationship is used as the assembly reference, and other line objects are not included in the positioning solution.

[0021] Table 1 shows the correspondence between 3D modeling data and localization semantic data. This table is used to explain the data meaning conversion method before geometric objects enter the semantic constraint map.

[0022] Table 1. Correspondence between 3D modeling data and localization semantic data

[0023] refer to Figure 2 When establishing a local assembly coordinate system, the global coordinates in the 3D modeling data are not directly used as the solution coordinates. For the slope arrangement problem, there are usually angles between the horizontal and vertical axes in the global coordinates and the roof slope. Directly calculating the gaps between panels and the coincidence of supports in the global coordinates will result in different length expressions for the same panel edge in different projection directions. Therefore, in this embodiment, the normal vector of the roof slope is extracted first, and then the main extension direction of the purlin centerline is extracted, and the local assembly coordinate system is constructed from the two. Let the purlin main extension direction vector be... The normal vector of the roof slope is The three unit basis vectors of the local assembly coordinate system are defined as follows:

[0024] in, This represents the unit basis vector along the main extension direction of the purlin. This represents the unit basis vector perpendicular to the roof slope. This represents the unit basis vector located within the roof slope and perpendicular to the main extension direction of the purlin; This represents vector length operation, which physically means converting a vector in any direction to a unit direction. This represents the cross product of vectors, which physically means generating a third orthogonal direction based on two non-collinear directions. For example, if the main extension direction vector of the purlins on a slope is... The slope normal vector is ,but , , After unitization This result indicates that in this local coordinate system, the first direction extends along the purlin, the second direction extends along the direction across the purlin within the slope, and the third direction extends along the slope normal.

[0025] After constructing the local assembly coordinate system, any point in the 3D modeling data is converted into local assembly coordinates. Let the global coordinate point be... The origin of the local assembly coordinate system is Local coordinates are The coordinate transformation relationship is as follows:

[0026] in, , , These represent the transposes of the three unit basis vectors, respectively. This represents the position vector of the point to be transformed relative to the local origin. The physical meaning of matrix multiplication is to project this position vector onto the purlin direction, the direction across the purlin, and the slope normal direction, respectively. For example, if... , and adopt the aforementioned , , ,but Local coordinates are The results show that the point is offset by 3 model units relative to the origin along the purlin direction and 4 model units along the purlin span direction, but does not deviate from the roof slope normal.

[0027] refer to Figure 3 In one embodiment, the semantic constraint graph consists of a set of nodes and a set of constraint edges. The node set includes panel module nodes, support reference nodes, and boundary constraint nodes. Panel module nodes are generated from photovoltaic panel modules, and each panel module node includes a panel number, its associated slope, row and column indices, local coordinates of its four corner points, two long edges, two short edges, and a support edge for bearing loads. Support reference nodes are generated from purlin centerlines, and each support reference node includes a purlin number, line segment start point, line segment end point, supportable zone boundary, and associated slope. Boundary constraint nodes are generated from roof boundaries, and each boundary constraint node includes a boundary number, boundary point sequence, setback direction, and setback distance. The set of constraint edges represents the computable relationships between nodes, including support constraint edges between panel module nodes and support reference nodes, adjacency constraint edges between adjacent panel module nodes, gap constraint edges between adjacent panel module nodes, and boundary setback constraint edges between panel module nodes and boundary constraint nodes.

[0028] Specifically, when generating module nodes, the starting reference point in the local assembly coordinate system is used as the array reference. Theoretical corner points are generated based on the length, width, and reserved gaps between photovoltaic panels. If the long side of the panel is arranged along the purlin direction, the first coordinate of the panels in the same row increases according to the panel length and longitudinal gap, while the second coordinate of the panels in different rows increases according to the panel width and transverse gap. If the short side of the panel is arranged along the purlin direction, the usage of length and width in the two coordinate directions is reversed accordingly. After generating the theoretical corner points, the positioning results are not directly output. Instead, the corner points, boundary lines, and support edges are used as the initial attributes of the module nodes. The selection of support edges is determined based on the assembly relationship between the panel and the purlin. If the photovoltaic panel needs to be supported by two purlins, the edge or line segment closest to the support strip of the two purlins is used as the support edge. If the panel spans multiple purlin segments, the support edge is split into multiple support sub-segments for constraint solving.

[0029] Table 2 shows the organization of nodes and constraint edges in the semantic constraint graph. This table is used to illustrate the reference relationships and computational relationships between different data.

[0030] Table 2. Organization of nodes and constraint edges in the semantic constraint graph.

[0031] In this embodiment, constraint solving does not adjust all variables at once, but rather sets the solution level according to the constraint type. Boundary crossing constraints, overlap constraints, and support placement constraints are used as preliminary constraints because these three types of constraints determine whether the plate positioning meets the assembly boundary and support foundation requirements. Plate joint balancing constraints, edge allowance balancing constraints, and consistent layout direction constraints are used as subsequent constraints because these constraints allow for modification of the layout without disrupting the support and boundary relationships. Solving variables include the translation parameters, rotation parameters, and gap parameters of the plate module nodes. Translation parameters are used to adjust the position of the plate in the local assembly coordinate system; rotation parameters are used to correct the angular difference between the plate boundary line and the purlin direction or slope boundary direction; gap parameters are used to distribute the plate joint variation between adjacent plates. During the solution process, the support reference nodes, boundary restriction nodes, and adjacent plate module nodes associated with the current plate module node are read as the center. Feasible adjustment intervals are calculated sequentially according to the constraint level, and the positioning solution is determined within the feasible adjustment interval.

[0032] In one embodiment, the boundary constraint can be represented by the signed distance from a corner point to the boundary constraint region. Let the... The set of corner points of each module node is any corner point is The roof boundary restricted area is The signed distance from a corner point to the restricted region is defined as:

[0033] in, Indicates the first The minimum boundary distance between nodes of each module. Indicates the corner point number. Representing corner points To the restricted area The signed distance; if the corner point is located inside the restricted area and the setback requirement is met, then Take a positive value; if the corner point is located on the boundary of the restricted area, then Set to zero; if the corner point goes outside the restricted area, then... Takes a negative value. Operator The physical meaning is to represent the boundary state of the entire photovoltaic panel using the most unfavorable corner point. For example, the signed distances from the four corner points of a panel to the restricted area are respectively... , , , ,but This indicates that the plate has a corner point out of bounds; if the four values ​​are respectively , , , ,but This indicates that all corners of the plate are within the restricted area and retain the minimum setback.

[0034] After completing the panel positioning solution, the local assembly coordinates are inversely transformed into global 3D coordinates for continued display, verification, and drawing generation within the original 3D modeling environment. During the inverse transformation, the local corner coordinates of each photovoltaic panel are read, and the coordinates are restored to the global coordinates using the origin of the local assembly coordinate system and three unit basis vectors. Let the local corner coordinates be... ,in The coordinates are along the purlin direction. The coordinates are for the direction across the purlin. The slope normal coordinates are used, and the global coordinates are... Then the inverse transformation relation is:

[0035] in, This indicates the coordinates of the corner points output to the 3D modeling environment. Represents the origin of the local coordinate system. , , These represent spatial displacements along three local directions. The physical meaning of addition is to superimpose the local displacements onto the origin. For example, if... , , , The coordinates of the local corner point are ,but The result is consistent with the global position before entering the local coordinate system, indicating that the positioning solution can be written back to the original 3D modeling coordinate environment without loss.

[0036] In this embodiment, the generated modular positioning data includes the global corner coordinates, local corner coordinates, slope number, corresponding purlin number, panel row and column number, support edge number, panel joint data, and positioning status of each photovoltaic panel. The corresponding purlin number is not determined solely by proximity, but rather by establishing a mapping based on the relationship between the support edge and the purlin's support band. If a panel's support edge corresponds to multiple purlin centerlines, the modular positioning data records multiple purlin numbers and their overlapping sections. If the panel is located in the purlin segment intersection area, the segment number and segment endpoints are recorded to avoid mistaking different segments for continuous purlins during subsequent verification. This embodiment transforms the photovoltaic panel positioning process from geometric capture to constraint solving through unified coordinates, semantic constraints, and coordinate write-back, reducing coordinate inconsistencies caused by repeated manual panel movements.

[0037] In a further embodiment, the establishment of the local assembly coordinate system is corrected in conjunction with the slope boundary direction. For regular slopes, the main extension direction of the purlins can be determined by the average direction of the purlin centerline within the same slope. For slopes with many purlin segments, the direction vectors are first weighted according to the segment lengths and then normalized to obtain the main extension direction of the purlins. If there are purlin segments with large directional deviations, these segments are retained as local support objects but are not included in the main direction calculation to prevent a single abnormal segment from changing the assembly coordinate system of the entire slope. The slope boundary direction is used to determine whether the assembly coordinate system is opposite to the actual layout direction. If the angle between the first coordinate axis and the preset layout boundary direction exceeds a right angle, the first coordinate axis is reversed, and the second coordinate axis is adjusted accordingly to keep the increasing direction of the panel row and column index consistent with the layout direction in the 3D modeling data. This processing ensures that the numbering rules between different slopes remain consistent, avoiding the situation where the row and column directions are opposite in the same roof section.

[0038] Specifically, when a slope is formed by piecing together multiple small facets, the normal vectors of the facets are first processed for consistency. If the angle between the normal vectors of adjacent facets is within the allowable range of the same slope, they are grouped into the same slope set; if the normal vector directions are opposite, the normal vector directions are adjusted according to the vertex order of the facets. Then, the normal vectors are weighted and averaged according to the facet area to obtain the normal vector of the slope set. This normal vector is then used for calculation in the aforementioned local assembly coordinate system. For cases where the slope boundary has a broken line, not every small boundary segment is used as the coordinate direction; instead, the boundary segment with the angle closest to the main extension direction of the purlin is taken as the verification direction. If there is a small angular deviation between the purlin direction and the boundary direction, the assembly coordinate system still prioritizes the purlin direction because the photovoltaic panel support relationship is determined by the purlin; the boundary direction is only used to determine the starting reference and row / column numbering.

[0039] In a preferred embodiment, the purlin centerlines in the 3D modeling data may contain breaks, overlapping segments, or short segments. During processing, the purlin centerlines within the same slope are first grouped according to directional similarity, and then sorted within each group based on the projection positions of their endpoints. If two segments have the same direction and the distance between their endpoints is less than the allowable modeling interval, they are merged into the same purlin segment set; if two segments spatially overlap, the segment with the longer length is retained, and the identifier of the merged segment is recorded; if a short segment cannot form a continuous relationship with any purlin set, it is marked as a data object that does not participate in the generation of the support datum. This processing does not change the purlin structure, but rather performs semantic organization on the line objects in the 3D modeling data. Through this organization, subsequent support datum nodes can correspond to the actual support direction, avoiding duplicate line segments that cause the same photovoltaic panel to be mapped to multiple duplicate purlin numbers.

[0040] In this embodiment, after the local assembly coordinate system is established, all purlin centerlines and roof boundaries are included in the slope parameter domain. The slope parameter domain can be understood as... and The calculation domain is based on the purlin direction, where the first parameter represents the position along the purlin direction and the second parameter represents the position across the purlin direction. Since the photovoltaic panel positioning occurs on the roof slope, the slope normal coordinates are fixed or nearly fixed under theoretical positioning conditions. Therefore, the calculations for support, panel joints, and boundary setbacks can be completed in the slope parameter domain. The three-dimensional coordinates are then written back after the calculations are complete. This embodiment uses parameter domain processing to ensure that the panel boundary line and the purlin support band are expressed in the same calculation plane, avoiding support determination deviations caused by inconsistent line-plane projection directions in three-dimensional space.

[0041] refer to Figure 4 In a further embodiment, the purlin support strip is obtained by extending the purlin centerline in a strip shape within the slope parameter domain. Let the first... The line object of the purlin centerline in the slope parameter domain is... The purlin can support a width corresponding to half the strip width. The purlin support band is defined as follows:

[0042] in, Indicates the first The support strip of the purlin. Represents any point in the slope parameter domain. Point to the center line of the purlin The shortest distance, This indicates a distance not exceeding half the width. The physical meaning of this formula is to transform a centerline into a strip-shaped area with a permissible support range. For example, if the distance from a point to the purlin centerline is... Half width for Then the point belongs to If the distance to a certain point is Then the point does not belong to This calculation is only used to express the constraints of the 3D modeling and positioning data, and does not change the structural dimensions of the purlin itself.

[0043] When calculating the support placement relationship, the support edges of the plate module nodes are mapped to the slope parameter domain and intersected with the corresponding purlin support strips. Let the first... The supporting edge of each module node is Its corresponding purlin can support the belt as The bearing overlap ratio is defined as:

[0044] in, Indicates the first The support edge of the first plate and the first The overlap ratio of the purlin support strips. This indicates the calculation of line segment length. This represents geometric intersection, and physically, it yields the portion of the support edge that lies within the supportable zone. For example, if the length of a support edge is... For each model unit, the length of the line segment falling into the corresponding purlin support strip is... For each model unit, then If the length of the supporting edge remains unchanged while the coincident length is only... ,but This indicates that a significant portion of the supporting edge of the plate has not entered the corresponding supportable zone. This proportion, as an input to the support placement constraint, does not determine the final positioning result alone; it must be solved in conjunction with boundary constraints and the gap between adjacent plates.

[0045] In this embodiment, the input data for support placement constraints includes the support edge number, corresponding purlin number, support edge length, starting point of the overlapping section, ending point of the overlapping section, and support overlap ratio. If the same support edge intersects with multiple purlin support zones, the target purlin is selected according to the purlin mapping relationship. The mapping relationship can be determined by the initial array position or by the distance between the theoretical support line of the slab and the center line of the purlin. For slabs near the slope boundary, if the target purlin is truncated by the roof boundary, the overlapping section is only calculated within the truncated support zone, avoiding the erroneous inclusion of purlin extensions outside the roof boundary into the support range. This embodiment, through the support zone and the overlapping support section, transforms the support relationship from distance approximation to geometric determination of the line segment entry area, and can better handle the situation where purlin segmentation, slope polygonal boundary, and slab edge setback coexist.

[0046] In a preferred embodiment, the constraint solution employs a hierarchical objective function. Preliminary constraints are used to exclude positioning states that do not meet boundary, overlap, and support conditions, while subsequent constraints are used to adjust plate seams and edge allowances within the feasible positioning range. Let the set of position variables for the plate module nodes be... This includes the translation, rotation, and local gap amounts of each plate; the boundary violation penalty is... The support deviation penalty term is The overlapping penalty term is The board seam deviation item is The edge allowance deviation term is The arrangement direction deviation term is The objective for locating and solving is defined as follows:

[0047] in, The total cost representing the location status. , , Indicates the weight of the prior constraints. , , This indicates the weight of subsequent constraints; addition indicates that different constraint terms participate in the evaluation together, while multiplication indicates that each constraint term participates in the calculation according to its solution level. Physically, it means simultaneously measuring the boundary, support, overlap, plate joint, allowance, and orientation state under the same set of location variables. For example, if in a certain solution... , , , , , and take , , , , , ,but If the adjusted support deviation penalty term is reduced to If other terms remain unchanged, then This indicates that the adjustment is closer to a feasible positioning state at the support constraint level. The above values ​​are only used to illustrate the solution logic and do not constitute fixed engineering parameters.

[0048] Specifically, the boundary violation penalty is calculated based on the negative distance from the corner point to the boundary restriction area; if all corner points of the panel are within the restriction area, this penalty is zero. The support deviation penalty is calculated based on the difference between the support overlap ratio and the support requirement; the lower the overlap ratio, the larger this penalty. The overlap penalty is calculated based on the intersection area or line segment intersection relationship of adjacent panel boundary areas; if there is no overlap, it is zero. The panel joint deviation is calculated based on the difference between the actual panel joint and the standard panel joint. The edge allowance deviation is calculated based on the distribution of the roof boundary setback distance. The layout direction deviation is calculated based on the angle between the panel boundary direction and the purlin main extension direction or the preset layout direction. During the solution process, if there are non-zero penalty terms in the prior constraints, the translation and rotation are adjusted first; after the prior constraints reach an acceptable state, the gap and edge allowance are adjusted. This solution method avoids placing the panel joints evenly before the support is in place, reducing the possibility that the panels appear to be neatly arranged but the support edges deviate from the purlin support band.

[0049] In a preferred embodiment, the rotation parameter is not used indiscriminately on individual plates, but is only enabled when there is a small angular difference between the slope partition boundary, the purlin direction and the boundary direction, or when there is a directional deviation in the imported model. For a normal plate array, the rotation parameter can be locked to zero to keep the plate boundaries in the same direction; for local plates near the polyline boundary, the plate group can be allowed to share a single rotation variable. The translation parameter is divided into whole-column translation, whole-row translation, and single-plate fine-tuning according to the plate row and column relationship. Whole-column translation is used to correct the support placement problem of a column of plates parallel to the purlin direction; whole-row translation is used to correct the overall deviation between multiple plates continuously arranged along the purlin direction and the boundary; single-plate fine-tuning is only used for local anomalies and requires re-verification of adjacent gaps. By classifying the variables, the positioning solution process can maintain the integrity of the modular arrangement and avoid misalignment of adjacent plates in the same plate column due to independent solutions.

[0050] In this embodiment, the semantic constraint graph is updated using a local propagation method. When the position variable of a module node changes, only the support constraint edges, adjacent constraint edges, gap constraint edges, and boundary setback constraint edges directly associated with it are updated. If the change causes the joint deviation of adjacent modules to exceed the allowable range, the propagation continues to the adjacent modules. The propagation stops when the new change no longer causes changes in the state of adjacent constraint edges, or when the propagation range reaches the current slope partition boundary. This method prevents local corrections from triggering repeated solutions for the entire roof, making it suitable for 3D modeling data processing of large-area building-integrated photovoltaic (BIPV) arrays. After each update, the module node retains both the coordinate versions before and after the update, facilitating subsequent anomaly location recording and rollback processing.

[0051] In a further embodiment, the continuous arrangement of adjacent photovoltaic panels along the same purlin direction is expressed through panel group constraint edges. These constraints connect multiple panel module nodes in the same row or column and record the adjacent order, standard gap, adjustable gap, and common supporting purlin set within the group. When a single panel needs to move due to support positioning constraints, if this movement causes the gap between it and adjacent panels to exceed a preset allowable range, the single-pane adjustment is no longer continued. Instead, multiple panel module nodes with panel group constraint edges are merged into a panel group to be solved. The panel group to be solved is configured with a unified translation variable and a local gap variable. The unified translation variable is used to maintain the overall relative position of the panels within the group, while the local gap variable is used to distribute necessary gap variations between adjacent panels within the group.

[0052] Let the block group to be solved be The first in the group The adjustment amount for each module node is The variable for unified translation of the plate group is , No. The local gap variables are: , sector With the The correlation coefficient between the gap variables is The unit basis vector across the purlins is The adjustment within the group can then be expressed as:

[0053] in, Indicates the first The position adjustment amount of each component in the local assembly coordinate system. This indicates the translation amount used by all modules within the group. This indicates the superposition operation of multiple local gap variables. This indicates the number of gap variables involved in the allocation. Used to indicate the first The change in the gap affects the first... The direction and extent of influence on each sector. If This indicates that the gap variable does not affect the plate; if This indicates that the plate is along Positively affected by this gap variable; if This indicates that the plate is along It is inversely affected by this gap variable. For example, the uniform translation amount of a certain plate group is... A certain plate is affected by a local gap variable. , ,and The adjustment volume of this sector is The calculation shows that the plate underwent local gap allocation in addition to the overall translation of the group.

[0054] In this embodiment, the plate group solution is applicable to continuous plate rows, continuous plate runs, and slope transition zones. For continuous plate rows, the uniform translation variable is typically configured along the purlin direction to improve the matching degree between the supporting edge and the purlin support band. For continuous plate runs, the uniform translation variable is typically configured along the purlin direction to correct boundary setback and cumulative deviation of plate joints. For slope transition zones, the uniform translation variable and local gap variables can participate simultaneously to coordinate the plate boundaries around the zone boundary line. The gap variable within the group is not directly applied to all plate joints, but rather to several adjacent plate joints associated with the anomaly location. If the anomaly is located in the middle of the plate row, the gap variable is distributed to both sides; if the anomaly is located near the boundary, the gap variable is preferentially distributed towards the interior of the slope to reduce the risk of insufficient boundary setback. This group solution method can maintain the continuity of the plate group and reduce the disturbance of single-block positioning correction to adjacent plates.

[0055] In a preferred embodiment, the merging range of the panel groups is determined by the adjacency relationships and anomaly propagation range in the semantic constraint graph. If the insufficient support overlap of a panel only affects its gap with the adjacent panel on one side, then the panel and its adjacent panel on one side are merged. If the adjustment affects the support relationships of multiple panels in the same column, then the group is extended along the column to both ends until it encounters a slope boundary, partition boundary, or a stable panel that already satisfies the support relationship. For roofs with gaps or irregular boundaries, panel groups do not cross gap boundaries. If the same panel is simultaneously in row and column constraints, the panel groups corresponding to the support placement direction are processed first, followed by the panel groups corresponding to the continuous direction of the panel joint. Each panel group merging and splitting is recorded in the positioning iteration record to verify the source of its coordinate changes. This embodiment uses panel group constraint edges, unified translation variables, and local gap variables to make modular positioning independent of the independent movement of individual panels, reducing repeated adjustments between panel joint anomalies and support offsets.

[0056] refer to Figure 5 In a further embodiment, after the positioning results are generated, they undergo 3D model rule verification. The verification objects include the photovoltaic panel boundary line, support edges, corresponding purlin support strips, adjacent panel boundaries, roof boundary setback relationships, and slope zoning connections. The verification process is still completed within the slope parameter domain, and the verification results are written back to the 3D modeling data. For each photovoltaic panel, a verification data unit is generated, recording its global corner coordinates, local corner coordinates, support edge projection, support overlap ratio, adjacent panel numbers, actual panel joints, boundary setback distance, and corresponding purlin number. If the verification data does not meet the corresponding rules, an abnormal positioning identifier is generated, and the abnormal positioning identifier is written to the position associated with the panel module node in the semantic constraint diagram.

[0057] Table 3 shows the correspondence between location rule verification data and abnormal location identifiers. This table is used to explain the data source for closed-loop correction of location results.

[0058] Table 3. Correspondence between location rule verification data and abnormal location identifiers

[0059] Specifically, the support matching check maps the photovoltaic panel support edge and the corresponding purlin support strip to the same slope parameter domain, reading the support overlap section and the support overlap ratio; the panel joint continuity check reads the shortest distance and direction angle between the corresponding boundary lines of adjacent panels to determine whether the panel joint is continuous in the same direction; the boundary setback check reads the signed distance between the panel corner point and the roof boundary restriction area, and determines whether the minimum boundary distance meets the setback requirements; the slope partition connection check reads the endpoint positions of the panel boundaries on both sides of the boundary line in the direction of the boundary line to determine whether the panel joints on both sides are misaligned; the number association check reads the mapping relationship between the panel row and column numbers and the purlin numbers to determine whether the same column of panels is abnormally mapped to discontinuous purlin segments. Each check generates traceable data items, rather than just generating a pass or fail conclusion.

[0060] In this embodiment, after the anomaly location identifier is written into the semantic constraint graph, subsequent rearrangement does not recalculate all panels of the entire roof. Instead, rearrangement variables are selected based on the anomaly type. If the anomaly location identifier is insufficient overlap of the entire column of supports, an overall offset variable for the entire panel column is selected, and the variable's scope is limited to that column and its adjacent columns. If the anomaly location identifier is a local deviation from the continuity of panel joints, an adjacent panel gap redistribution variable is selected, and the variable's scope is limited to the panel module nodes on both sides of the abnormal panel joint. If the anomaly location identifier is insufficient boundary setback or anomaly at the slope junction, a local reference edge replacement variable is selected, and the relevant panel corner points are recalculated using the roof boundary line or slope junction line as the new local reference. If the anomaly location identifier is a conflict in purlin mapping relationships, a purlin mapping replacement variable is selected, and the correspondence between the support edge and the candidate purlin support band is recalculated. By limiting the rearrangement variables to the abnormal panel and its adjacent panels, areas that already meet the positioning rules can be preserved, reducing repeated modifications.

[0061] In a preferred embodiment, the severity of the anomaly is represented by an anomaly cost. Let the first... The anomaly cost after the second rearrangement is The number of support anomalies is The number of abnormal board seams is The number of boundary anomalies is The number of mapping anomalies is The corresponding category weight is , , , The abnormal cost is:

[0062] in, Indicates the first The cost of anomalies that still exist after the second rearrangement , , , These represent the number of different anomaly categories. , , , This represents the category weights. The physical meaning of multiplication is to convert different anomaly categories into costs based on their priority in localization, while the physical meaning of addition is to summarize the remaining anomalies in the current rearrangement state. For example, if after a certain rearrangement the number of support anomalies is 2, the number of plate seam anomalies is 3, the number of boundary anomalies is 1, and the number of mapping anomalies is 0, and the weights of each category are 5, 2, 4, and 3 respectively, then... If, after rearrangement, the number of support anomalies decreases to 0, the number of plate joint anomalies is 2, the number of boundary anomalies is 0, and the number of mapping anomalies is 0, then... This calculation is used to determine whether the rearrangement process is changing in the direction of abnormal reduction, and does not require specific projects to use the same weights.

[0063] In this embodiment, the rearrangement process employs iterative record management. Before each rearrangement begins, the abnormal location identifier, associated plate module nodes, adjacent plate module nodes, corresponding purlin numbers, and current location coordinates are read. After rearrangement, the rearrangement variable type, variable scope, coordinates before rearrangement, coordinates after rearrangement, plate joint change, support overlap ratio change, and boundary setback distance change are recorded. If a rearrangement reduces the abnormal cost, the result is retained; if a rearrangement causes new abnormalities in the prior constraints, the process reverts to the previous location state, and the same rearrangement variable is prohibited from being used again on the same abnormal identifier. This process avoids cyclical adjustments between supports, plate joints, and boundaries. The iteration termination condition can be clearing the abnormal location identifier or all candidate rearrangement variables have been tried and have failed to reduce the abnormal cost. After termination, the current location data is used as a modular location output file in the 3D modeling environment.

[0064] In a further embodiment, the modular positioning output file organizes data according to the photovoltaic panel number. Each photovoltaic panel number records corner coordinates, panel gap parameters, support reference nodes, boundary constraint nodes, purlin centerline numbers, support overlap sections, abnormal positioning identifiers, and positioning iteration records. Corner coordinates include local assembly coordinates and global 3D coordinates; panel gap parameters include gap values ​​between the panel and adjacent panels on the left, right, top, and bottom sides; support reference nodes record the corresponding purlin centerline and supportable strip; boundary constraint nodes record the corresponding roof boundary and setback relationship; and positioning iteration records the input and output of each rearrangement. The output file can be read by a 3D modeling environment to generate the photovoltaic panel module outline, and can also be used for collision checks or support relationship verification with the purlin model. This output file does not rely on manual annotation of each photovoltaic panel in the model, and can maintain the correspondence between the positioning results and the semantic constraint diagram.

[0065] In a preferred embodiment, when there are multiple sections on the slope, a local assembly coordinate system and semantic constraint diagram are first established for each slope section, and then cross-section connection relationships are established at the boundary lines of the sections. The cross-section connection relationship does not directly merge all the module nodes of the two sections, but only connects the boundary sections near the boundary line. For sections with different slope normals but continuous boundary lines, the distance between the section boundary and the boundary line is calculated in their respective parameter domains, and then the endpoint coordinates on the boundary line are written back to the global three-dimensional coordinate system for comparison. If the joints on both sides of the section are misaligned in the direction of the boundary line, a slope connection anomaly indicator is generated, and the section boundaries on both sides of the boundary line are recalculated using local reference edges to replace variables. This method is suitable for multi-slope roofs, folded roofs, or roof sections with different local slopes, and can avoid forcibly including sections from different slopes into the same plane for solution.

[0066] In this embodiment, the calculation of the local reference edge replacement variable uses the boundary line within the abnormal area as the new reference. If the original positioning uses the outer boundary of the roof as the reference, but the abnormality occurs near the slope boundary line, the boundary line is used as the local reference edge, and the corner points of a column or row of slabs near the boundary line are recalculated. If the original positioning uses the purlin centerline as the reference, but the boundary setback is insufficient, the inner feasible boundary is used as the local reference edge, and the slab positions in the edge area are redistributed. After the local reference edge is replaced, the slab row and column indices are not renumbered; instead, the coordinates and reference reference relationships are updated based on the original numbers. This maintains the continuity of the model data and avoids historical record breaks between slab numbers and purlin numbers due to local rearrangement.

[0067] In a further embodiment, the purlin mapping replacement variable is used to handle the situation where the support edge does not overlap sufficiently with the original mapped purlin support band. During processing, firstly, several purlin support bands closest to the support edge are retrieved in the same slope parameter domain, and the overlap ratio between the support edge and each candidate support band is calculated; then, candidate purlins that are inconsistent with the row and column relationship of the slab are excluded; if a candidate purlin can make the support edge fall into the support band without disrupting the gap between adjacent slabs, then the support reference node of the slab module node is updated to a candidate purlin. If no candidate purlin satisfies the constraint, then the overall slab column offset variable is used. This processing distinguishes between two technical states: mapping error and slab column position error, avoiding meaningless translation of slabs that should be remapped, and also avoiding associating slab column errors that should be offset as a whole with adjacent purlins.

[0068] Table 4 shows the correspondence between anomaly location markers and rearranged variables. This table is used to explain the variable selection rules for closed-loop correction.

[0069] Table 4. Correspondence between anomaly location markers and rearrangement variables

[0070] In one embodiment, the 3D model rule verification also includes plate number continuity processing. Plate number continuity is not used to change the photovoltaic panel coordinates, but rather to ensure the traceability of the mapping between plates and purlins in the output file. When generating numbers, a base number is formed by combining the slope number, row index, and column index. If a local rearrangement changes the row and column relationship of a plate, the original base number is retained, and a rearrangement version record is added. If a local reference edge replacement causes a change in the adjacency relationship of a plate, its adjacent plate numbers are updated, but the original adjacency relationship is not deleted; instead, it is marked as a historical relationship. This processing ensures that the same plate remains identifiable across multiple iterations, facilitating the 3D modeling environment to replace the original geometric object when updating the plate outline, rather than generating duplicate plates.

[0071] In a further embodiment, continuous gap verification is expressed using a distance sequence between adjacent boundary lines. For two adjacent photovoltaic panels, multiple sampling points are extracted from the adjacent boundary lines, the shortest distance from each sampling point to the other boundary line is calculated, and a distance sequence is formed. If the dispersion of the distance sequence is too large, it indicates that there is an angle or local misalignment between the two adjacent boundary lines; if the distance sequence deviates from the standard gap as a whole, it indicates that the gap between the two panels needs to be redistributed. The number of sampling points is determined by the line segment length and the model calculation accuracy and is not a hardware parameter setting. During verification, the angle between the direction vectors of adjacent boundary lines is used to assist in the judgment. If the direction angle is within the allowable range, the gap redistribution variable is used first; if the direction angle exceeds the allowable range, the rotation variable or the local reference edge replacement variable is used. This processing enables the gap anomaly to be distinguished into gap anomalies caused by translation and misalignment anomalies caused by direction.

[0072] In a preferred embodiment, boundary setback verification employs different processing logics for different boundary types. For the outer contour boundary of the roof, neither the corner points nor the boundary lines of the photovoltaic panels may exceed the boundary restriction area; for the internal boundaries of a partition, the two panels are allowed to perform setback calculations based on the intersection line; for openings or gaps, the boundary restriction area is treated as a closed boundary, and the panels may not cross this area. The boundary setback calculation is not based on a simple bounding rectangle, but rather on the geometric relationship between the panel corner points and boundary lines and the restriction area. If the panel boundary line crosses the opening boundary, a boundary setback anomaly flag is generated even if the four corner points do not fall within the opening area. This processing can identify boundary crossing problems that cannot be detected by corner point checks alone.

[0073] In this embodiment, the positioning iteration record can also serve as review data for the 3D modeling process. Each record contains an anomaly positioning identifier that triggered the rearrangement, rearrangement variables, the panel number involved in the rearrangement, coordinates before and after rearrangement, the corresponding purlin centerline number, and the rearrangement result status. If the positioning output file is imported back into the 3D modeling environment, the program can read the version information in the iteration record to determine whether the current model has already undergone the corresponding rearrangement, avoiding the repeated application of the same variable. If the designer modifies the roof boundary or purlin centerline, the program can find the affected panel module node based on the modified object's number and re-execute the positioning solution only for the relevant nodes and adjacent nodes. This data organization method allows subsequent model changes to be processed locally.

[0074] In one comprehensive embodiment, a roof slope is read to form a slope reference data object, containing multiple purlin centerlines and an outer contour boundary. The program first reads the slope normal vector and the principal direction of the purlin centerlines, establishes a local assembly coordinate system, and transforms the roof boundary, purlin centerlines, and photovoltaic panel module to the slope parameter domain. Subsequently, the program generates initial panel module nodes based on the photovoltaic panel module, generates support reference nodes according to the purlin support band, and generates boundary constraint nodes according to the roof boundary. For each panel module node, the program establishes support constraint edges between it and the target support reference node, adjacency constraint edges and gap constraint edges between it and adjacent panel module nodes, and boundary setback constraint edges between it and the roof boundary. During the solution process, the program first checks for boundary violations, overlaps, and support placement, and then calculates panel joints, edge allowances, and arrangement directions. If the supporting edge deviates from the purlin support strip, the overall position of the panel column is adjusted; if the local panel joints are discontinuous after adjustment, adjacent panels are merged to form a panel group to be solved; if the boundary setback is insufficient, the local panel position is recalculated based on the boundary constraint node. After positioning, the program inversely transforms the local coordinates into global three-dimensional coordinates and generates a mapping relationship between the photovoltaic panel number and the purlin number.

[0075] In the above comprehensive embodiment, if a plate column experiences cumulative offset after moving away from the initial reference edge, the support coincidence check will generate insufficient support coincidence indicators on multiple plates of that plate column. After reading these indicators, the program does not perform independent translation on each plate, but instead merges the plates in that column and related plates in adjacent columns into a plate group to be solved based on the plate group constraint edges. The unified translation variable within the group is used to bring the support edge back to the vicinity of the purlin support zone, and the local gap variable is used to distribute the plate gap changes caused by the overall translation. After the rearrangement is completed, the program re-executes the support matching check, plate gap continuity check, and boundary retreat check. If the anomaly cost decreases and no new out-of-bounds or overlapping anomalies are introduced, the rearrangement result is retained; if a new boundary anomaly is introduced, the process is rolled back and the local reference edge is used to replace the variable. This process forms a data closed loop from anomaly identification, variable selection, local rearrangement to re-checking.

[0076] In another comprehensive embodiment, a slope boundary is a polygonal shape. After the initial array is generated, although some photovoltaic panel corners near the polygonal boundary do not cross the boundary, the overlap ratio between their supporting edges and the corresponding purlin support strips is low. The program generates an insufficient support overlap flag during support verification, but does not generate a boundary crossover flag during boundary setback verification. At this time, the program first attempts to replace the purlin mapping variable, calculating the overlap ratio between the supporting edge and the support strips of adjacent candidate purlins. If the candidate purlin can satisfy the support relationship and does not damage the adjacent panel joints, the support reference node is updated. If the candidate purlin conflicts with the row and column relationship of the panel, the mapping replacement is abandoned, and the overall panel column offset variable is used instead. By distinguishing between candidate purlin mapping and overall panel column offset, the program can avoid incorrectly pulling the panels to the outside of the boundary in the polygonal boundary region.

[0077] In another comprehensive embodiment, a multi-sloped roof exhibits discontinuities in the gaps between the panels on both sides near the boundary line. The program establishes local assembly coordinate systems for each of the two slope zones, using the boundary line as the cross-zone connection object. For the panels on both sides of the boundary line, the program calculates the projection positions of the boundary endpoints in the global 3D coordinate system and then compares the continuity of the panel gaps on both sides in the direction of the boundary line. If a boundary connection anomaly is detected, the program does not merge all semantic constraint diagrams of the two slopes, but instead only applies local reference edge replacement variables to the panels near the boundary line. During rearrangement, the boundary line serves as the new local reference, and the corner coordinates of the panel column closest to the boundary line are recalculated, maintaining the support relationship with the purlin support strips within their respective slopes. After rearrangement, the program re-checks the continuity of the panel gaps on both sides and the coincidence of the supports. This implementation allows the local positioning of different slopes to maintain their respective slope coordinate characteristics while handling connection anomalies near the boundary line.

[0078] In this embodiment, the data write-back process in the 3D modeling environment includes geometric write-back and attribute write-back. Geometric write-back generates or updates the photovoltaic panel outline based on the global corner coordinates in the output file; attribute write-back writes the panel number, purlin number, support overlap section, boundary setback status, and iteration record into the corresponding object attributes. If a photovoltaic panel object already exists in the original model, its corner coordinates are updated using the panel number as the matching field; if no corresponding object exists, a new panel outline object is created and its attributes are written. If a panel is determined to be unlocatable after rearrangement, its abnormal location identifier is retained, and no final outline object is generated, avoiding the formation of panel geometry that does not meet constraints in the 3D model. By separating geometric write-back and attribute write-back, the positioning results can be displayed in the 3D model while retaining the data basis for constraint solving and verification processes.

[0079] In a preferred embodiment, to reduce the impact of anomalies in 3D model data on the positioning results, the program performs a data consistency check before entering the positioning solution. This check includes consistency of slope normal vectors, consistency of purlin centerline directions, boundary line closure, integrity of slab modules, and uniqueness of object numbers. If slope normal vectors are inconsistent, facets are grouped and normals are corrected; if purlin centerline directions are mixed, they are grouped by direction and the main direction participating in support is selected; if boundary lines are not closed, the distance between endpoints is used to determine if they can be filled in, and if not, the boundary is marked as not participating in the positioning output; if slab modules are missing, slab module nodes are not generated; if object numbers are duplicated, internal calculation numbers are regenerated and the original numbers are retained as source attributes. This consistency check is part of the 3D modeling data processing stage and does not change the building structure objects. Through this processing, the input data of the semantic constraint diagram has stable reference relationships, and subsequent positioning solutions are less likely to produce erroneous results due to duplicate objects, confused directions, or broken boundaries.

[0080] In a further embodiment, the program performs version management on the support reference nodes. The purlin centerline may undergo position adjustments or segment changes after design modifications. If it directly overwrites the original support reference node, existing positioning iteration records will become untraceable. Therefore, the support reference node stores the current version number, the source purlin number, the centerline endpoint, and the supportable strip data. When the purlin centerline changes, the program generates a new support reference node version and marks the affected slab module nodes as requiring recalculation. The recalculation range is determined by the slabs associated with the original support reference node and their adjacent slabs. After recalculation, the new positioning coordinates and support mapping are written to the output file, and the old version record is retained as historical data. This process ensures that the repositioning of purlins after position changes is limited to the affected area, reducing redundant calculations for unaffected slope zones.

[0081] In this embodiment, the module nodes can also be version-managed. Each module node includes an initial positioning version, a constraint-solving version, a rule-verification version, and a rearrangement version. The initial positioning version records the theoretical coordinates generated by the photovoltaic panel module and the initial datum; the constraint-solving version records the coordinates after satisfying the prior and subsequent constraints; the rule-verification version records the verification data and abnormal positioning identifiers; and the rearrangement version records the coordinates after each variable adjustment. Different versions are associated with the same module number. If a rollback is needed, the program selects the most recent version that did not introduce any prior constraint anomalies as the restored coordinates. This version management method makes the positioning process repeatable and verifiable, suitable for multi-round detailed design of building-integrated photovoltaic panels and purlins in a 3D modeling environment.

[0082] In another embodiment, the semantic constraint graph can be stored as multiple subgraphs by slope partition. Each subgraph contains the plate module nodes, support datum nodes, boundary constraint nodes, and constraint edges within its slope. Cross-partition connection relationships are stored separately as connecting edges between subgraphs. During the solution process, local positioning is first completed within each subgraph, and then the boundary plates associated with the connecting edges are checked for connection and locally rearranged. If the purlin centerline or roof boundary in a subgraph is modified, only that subgraph and its directly connected edges are reconstructed; other subgraphs are not reconstructed. This storage method allows complex roofs to be calculated by partition while preserving the constraint representation of cross-slope connections.

[0083] In this embodiment, the output file can be in the form of structured text or a data table recognizable by the 3D modeling environment. Each record corresponds to a photovoltaic panel and includes basic positioning fields, constraint fields, verification fields, and iteration fields. The basic positioning fields include panel number, slope number, row and column index, and corner coordinates; the constraint fields include support reference node number, boundary limit node number, adjacent panel number, and panel joint parameters; the verification fields include support overlap ratio, boundary setback distance, panel joint continuity status, and abnormal positioning identifier; the iteration fields include rearrangement times, rearrangement variable type, coordinates before rearrangement, and coordinates after rearrangement. When writing, the program sorts by slope number and row and column index, so that panel records within the same slope are arranged continuously. This data organization method facilitates the reconstruction of panel outlines by the 3D modeling environment and also facilitates subsequent querying of the panel range supported by a purlin number.

[0084] In one embodiment, to ensure consistency between the positioning results and the objects in the 3D modeling view, the program performs a coordinate closure check before writing back. The coordinate closure check includes checking whether the four corner points of a plate can form a closed profile, whether adjacent edges satisfy the plate's modular relationship, whether the supporting edges correspond to the recorded supporting reference nodes, and whether the plate remains on its slope after the global coordinate inverse transformation. If the four corner points of a plate cannot form a closed profile, the plate will not proceed to the final geometric write-back, and an abnormal positioning flag will be generated. If the adjacent edges do not conform to the plate's modular relationship, the program will recalculate using the constraint solution version. If the supporting edges do not correspond to the supporting reference nodes, the purlin mapping will be triggered to replace variables. If the global coordinates are not on the slope, the local coordinate system transformation and inverse transformation will be re-executed. This check reduces data inconsistencies between coordinate transformation, rearrangement, and write-back processes.

[0085] In a further embodiment, the program imposes consistency constraints on the arrangement direction of the slabs. Consistency in arrangement direction does not simply require all slabs to have the same orientation, but rather requires that the boundary directions of adjacent slabs within the same slope section correspond to the main extension direction of the purlins or the direction across the purlins. If a slab's boundary direction deviates from that of other slabs in the same group due to local rotation correction, the program checks whether the rotation was caused by the slope boundary or the intersection line; if not, it restores the slab's rotation parameters and handles the anomaly through translation or gap redistribution. For slabs near the slope intersection line, they are allowed to adjust their orientation using the intersection line as a local reference, but this adjustment range does not extend to the entire slope. Through this process, the positioning results maintain the orientation consistency of the modular array while satisfying local boundaries.

[0086] In this embodiment, the recording of the panel gap parameters distinguishes between theoretical gap, solved gap, and output gap. The theoretical gap comes from the photovoltaic panel module; the solved gap is the variable adjusted during the constraint solving process; and the output gap is the actual gap between adjacent panels that is finally written into the 3D modeling data. If a gap is adjusted by a local gap variable, the output file records the source of the adjustment and the associated anomaly identifier. If subsequent modifications to the purlin centerline or roof boundary cause the panel containing that gap to be recalculated, the program prioritizes reading the theoretical gap and resolving it, rather than continuing to accumulate adjustments based on the existing output gap. This process avoids the superposition of gap changes caused by multiple rounds of modifications, ensuring that each positioning recalculation is based on the original module and the current constraints.

[0087] In one embodiment, the program writes the results of support matching verification, panel seam continuity verification, and boundary setback verification into the panel module node as status values. Status values ​​include Unverified, Verified, Pending Rearrangement, and Unlocatable. The initially generated panel module node is in the Unverified state; if rule verification is completed and there are no abnormal positioning indicators, it is rewritten to the Verified state; if there are abnormal positioning indicators but rearrangement variables can be selected, it is rewritten to the Pending Rearrangement state; if none of the candidate rearrangement variables can eliminate the anomalies in the prior constraints, it is rewritten to the Unlocatable state. The Unlocatable state does not indicate that the entity structure is unrealizable; it only indicates that coordinates satisfying the positioning rules cannot be generated under the currently input 3D modeling data, photovoltaic panel module, and constraint rules. This status value is written along with the output file, providing clear data basis for subsequent model modifications.

[0088] In a further embodiment, the program can establish multiple local assembly coordinate systems based on different roof slopes, but all output coordinates are written back to the same global 3D coordinate environment. Coordinates are not directly mixed between different local assembly coordinate systems; cross-zone comparisons are all completed using global coordinates. If the same photovoltaic panel spans two slope zones, it is not treated as a regular module node, but rather marked as a cross-zone module during data consistency checks. It is required to be split into two positioning objects at the boundary before entering the semantic constraint graph. This process avoids a single module being simultaneously controlled by two different slope normals, which could lead to uncertainty in local coordinate transformations. For regular modules that do not cross zones, they are still positioned independently according to their respective slopes.

[0089] In this embodiment, the entire calculation process revolves around 3D modeling data, semantic constraint graphs, local assembly coordinate systems, constraint solving, and positioning output files. The method reads the 3D modeling object, converting the support relationship between the photovoltaic panel and the purlin into support reference nodes and support constraint edges, converting the roof boundary into boundary constraint nodes, and converting panel adjacency and panel seam into adjacency constraint edges and gap constraint edges. Then, positioning coordinates are obtained through layered solving, rule verification, anomaly rearrangement, and iterative recording. This implementation covers the complete process of generating 3D positioning coordinates for the photovoltaic panel relative to the purlin centerline, and ensures that each piece of positioning data can be traced back to the corresponding slope, purlin, boundary, and panel module nodes.

Claims

1. A modular positioning method for BIPV photovoltaic panels and purlins, characterized in that, include: Obtain 3D modeling data including roof slope, purlin centerline, roof boundary, and BIPV photovoltaic panel module; A local assembly coordinate system is established based on the roof slope and the purlin centerline; The purlin centerline, the roof boundary, and the BIPV photovoltaic panel module are converted into support reference nodes, boundary constraint nodes, and panel module nodes in the semantic constraint diagram; The constraints of the module nodes are solved based on the semantic constraint graph to generate the three-dimensional positioning coordinates of the BIPV photovoltaic panel relative to the center line of the purlin.

2. The modular positioning method for BIPV photovoltaic panels and purlins according to claim 1, characterized in that, A local assembly coordinate system is established based on the roof slope and the purlin centerline, including: Extract the normal vector of the roof slope, the slope boundary direction and the main extension direction of the purlin, take the main extension direction of the purlin as the first coordinate axis, take the direction of the roof slope perpendicular to the first coordinate axis as the second coordinate axis, and take the normal vector of the roof slope as the third coordinate axis. The center line of the purlin is transformed according to the local assembly coordinate system to form slope parameter coordinate data for three-dimensional modeling and positioning.

3. The modular positioning method for BIPV photovoltaic panels and purlins according to claim 1, characterized in that, The purlin centerline, roof boundary, and BIPV photovoltaic panel module are converted into support reference nodes, boundary constraint nodes, and panel module nodes in a semantic constraint diagram, including: Based on the BIPV photovoltaic panel module, generate panel module nodes with corner points, boundary lines, and support edges; Based on the purlin centerline, a support reference node corresponding to the allowable support area is generated; Based on the roof boundary, generate boundary restriction nodes that limit the arrangement range of the module nodes; Constraint edges representing support, adjacency, clearance, and boundary setback relationships are established between the plate module node, the support reference node, and the boundary restriction node.

4. The modular positioning method for BIPV photovoltaic panels and purlins according to claim 1, characterized in that, The constraints of the module nodes are solved based on the semantic constraint graph, including: Different solution levels are configured for the constraint edges in the semantic constraint graph. Among them, the boundary crossing constraint, overlap constraint and support placement constraint are configured as constraints to be solved first, while the plate seam balance constraint, edge margin balance constraint and consistent arrangement direction constraint are configured as constraints to be solved later. According to the solution level, the translation parameters, rotation parameters, and gap parameters of the plate module nodes are adjusted sequentially to obtain the plate positioning solution that satisfies the semantic constraint graph.

5. The modular positioning method for BIPV photovoltaic panels and purlins according to claim 1, characterized in that, Generating the three-dimensional positioning coordinates of the BIPV photovoltaic panel relative to the center line of the purlin includes: The corner coordinates of each BIPV photovoltaic panel in the local assembly coordinate system are determined based on the positioning solution of the module nodes. Transform the corner coordinates inversely to the global coordinate system where the 3D modeling data is located; Establish a numbering mapping relationship between each BIPV photovoltaic panel and at least one purlin centerline, and write the numbering mapping relationship and the corner coordinates together into the modular positioning data.

6. The modular positioning method for BIPV photovoltaic panels and purlins according to claim 2, characterized in that, After the purlin centerline undergoes coordinate transformation according to the local assembly coordinate system, the following is also included: Project the purlin centerline onto the parameter domain of the roof slope, and extend the projected purlin centerline in a strip shape according to the effective support width of the purlin to obtain the purlin support strip; Map the support edge of the plate module node to the parameter domain, calculate the overlapping section between the support edge and the purlin support strip, and use the overlapping section as the input data for the support placement constraint.

7. The modular positioning method for BIPV photovoltaic panels and purlins according to claim 3, characterized in that, The constraint edges include panel group constraint edges, which are generated according to the continuous arrangement of adjacent BIPV photovoltaic panels in the same purlin direction; When the individual adjustment of the plate module node causes the gap between adjacent plates to exceed the preset allowable range, multiple plate module nodes with the plate group constraint edge are merged into a plate group to be solved. A unified translation variable and a local gap variable are configured for the plate group to be solved, and the unified translation variable participates in the constraint solution first.

8. The modular positioning method for BIPV photovoltaic panels and purlins according to claim 4, characterized in that, After obtaining the plate location solution, the following steps are also included: The three-dimensional model rule verification is performed on the plate positioning solution. The three-dimensional model rule verification includes mapping the boundary line, support edge and corresponding purlin support strip of the BIPV photovoltaic panel to the same slope parameter domain to form support matching verification data, plate joint continuity verification data and boundary setback verification data. When any verification data does not meet the corresponding rule, an abnormal location identifier associated with the module node of the segment is generated, and the abnormal location identifier is written into the semantic constraint graph.

9. The modular positioning method for BIPV photovoltaic panels and purlins according to claim 8, characterized in that, After the semantic constraint graph is written to the anomaly location identifier, it also includes: The rearrangement variables are selected according to the type of the abnormal location identifier. The rearrangement variables include the overall offset variable of the plate column, the redistribution variable of the gap between adjacent plates, the local reference edge replacement variable, and the purlin mapping replacement variable. The rearranged variables are limited to the block module nodes associated with the abnormal location identifier and their adjacent block module nodes. The constraint solution is re-executed, and the re-solved location solution replaces the corresponding three-dimensional location coordinates.

10. The modular positioning method for BIPV photovoltaic panels and purlins according to claim 9, characterized in that, After re-executing the constraint solution, the following is also included: Establish a positioning iteration record, which includes the node number of the block module participating in the re-solution, the rearranged variables adopted, the three-dimensional positioning coordinates before rearrangement, the three-dimensional positioning coordinates after rearrangement, and the corresponding purlin centerline number. Based on the positioning iteration record, a modular positioning output file is generated in the 3D modeling environment. The modular positioning output file is associated with the corner coordinates, panel seam parameters, support reference nodes and boundary limit nodes according to the BIPV photovoltaic panel number.