A method and device for creating building window elements based on Building Information Modeling

Through the method of creating architectural window primitives in BIM design software, the operability and data application problems of window design intention expression in the prior art are solved, and refined modeling and visual display are realized to meet the needs of designers.

CN120030665BActive Publication Date: 2025-07-29CHINA SOUTHWEST ARCHITECTURAL DESIGN & RES INST CORP LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202510511761.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-04-23
Publication Date
2025-07-29
Estimated Expiration
2045-04-23

AI Technical Summary

Technical Problem

When existing BIM design software expresses the design intention of building windows, there are barriers in terms of operability and data application, which cannot meet the needs of architectural designers.

Method used

A method of creating architectural window primitives based on building information model is proposed. By creating commands, dynamic functions and constructors, instantiated data of window primitives are generated and visually displayed, supporting the definition and editing of window primitives, window panel primitives and window type primitives.

Benefits of technology

It realizes the refined modeling and expression of architectural windows in BIM software, conforms to the designer's usage habits, has coordination, visualization and accuracy, and improves operability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120030665B_ABST
    Figure CN120030665B_ABST
Patent Text Reader

Abstract

The present invention belongs to the field of building BIM design software, and particularly relates to a method and device for creating building window graphic elements based on a building information model. The method includes: respectively creating a command, a dynamic function, and a constructor according to the type of the window graphic element; calling the corresponding dynamic function through the command; the dynamic function passes the type parameter to the constructor corresponding to the type parameter to generate corresponding window type construction data; the dynamic function also calls the activation function corresponding to the constructor, and the activation function calculates the instantiation data of the window graphic element according to the type parameter, the instance parameter, and the window graphic element construction data, and performs visual display of the window graphic element according to the instantiation data. This method discloses a method for creating window graphic elements of a building based on a building information model, realizes the operability of fine-grained modeling expression of building windows in existing BIM software, and can effectively define and use building window graphic elements based on different graphic platforms.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the field of building BIM design software, and particularly relates to a method and device for creating building window elements based on building information models. Background Art

[0002] Digital technology is an important technology supporting social development, but the construction industry faces the current situation of rough development and low digitalization. As an upstream industry in the construction industry chain, the digitalization level of architectural design directly affects the downstream work mode, and thus affects the digital development pace of the entire construction industry.

[0003] Since the 1990s, the construction industry has actively developed and applied production digital technologies, and has successively formed two-dimensional digital design technologies led by Autodesk CAD and BIM technologies led by Autodesk Revit. Tianzheng Architectural Plug-ins developed on CAD have gradually occupied the domestic two-dimensional architectural design market, and various architectural design plug-ins developed on the basis of Revit have also become the mainstream software for domestic BIM design. In recent years, with the development trend of software localization in key fields, domestic BIM modeling software such as PKPM-BIM, Shuwe, and AECMate have gradually emerged.

[0004] After decades of product iteration, two-dimensional architectural design software can better meet the needs of architectural designers, but it cannot meet the needs of three-dimensional expression and data transmission. Although Revit, GCL, and Shuwe in BIM architectural software can perform BIM modeling, they do not start from the design perspective, but rather perform model conversion after the design is completed. In addition, in the design process, using these BIM modeling software has a larger workload compared to two-dimensional architectural design software, which does not conform to the usage logic of designers.

[0005] As one of the most commonly used elements in architectural design, building windows cannot be truly expressed by two-dimensional design software. Although existing BIM design software can express the design intent of building windows in detail, there are still significant barriers in terms of operability and data application. Summary of the Invention

[0006] In order to achieve refined modeling expression of building windows in existing BIM software and have operability, from the perspective of designers, a method and device for creating building window elements based on building information models are proposed. This method has the fluency of architectural design, and the generated results have the characteristics of BIM coordination, visualization, accuracy, etc., and are more in line with the design habits of architectural designers and the requirements for expressing the final design results.

[0007] To achieve the above objectives, the following technical solutions are proposed:

[0008] A method for creating building window elements based on Building Information Modeling includes the following steps:

[0009] Create commands, dynamic functions, and constructors respectively according to the types of window elements;

[0010] Call the corresponding dynamic function through the command;

[0011] The dynamic function passes the type parameters to the constructor corresponding to the type of the window element to generate the corresponding window element construction data;

[0012] The dynamic function also calls the activation function of the window element. The activation function calculates the instantiation data of the window element based on the type parameters, instance parameters, and window element construction data, and performs visual display of the window element according to the instantiation data.

[0013] Preferably, the types of the window elements include window grid elements and window panel elements.

[0014] Preferably, the type parameters of the window panel elements include corner coordinates and the form of the window panel. The form of the window panel includes fixed sash, casement sash, sliding sash, awning sash, and louver sash; the instance parameters of the window panel elements include the insertion point of the window panel.

[0015] Preferably, the activation function of the window panel elements performs the following steps:

[0016] Calculate the corner coordinates based on the insertion point of the window panel, and calculate the window panel element construction data in the constructor corresponding to the form of the window panel. The corner coordinates and the window panel element construction data constitute the instantiation data of the window panel, and generate a planar schematic diagram of the window panel according to the instantiation data of the window panel.

[0017] Preferably, the type parameters of the window grid elements include the starting point, ending point, grid height, and grid width of the grid frame; the instantiation parameters of the window grid elements include the window grid type.

[0018] Preferably, the activation function of the window grid elements performs the following steps:

[0019] First, determine whether it is an outer frame or an inner grid. Determine the control lines of the outer frame and the inner grid by determining two points, and then calculate the auxiliary expression lines of the outer frame and the grid through the points and lines; generate a planar schematic diagram of the window grid according to the auxiliary expression lines of the outer frame and the grid; where determining the control lines of the outer frame and the inner grid by determining two points includes: First, generate the control lines of the outer frame and the inner grid from the default parameters of the window type when generating the default window type; Second, obtain the control lines of the outer frame and the inner grid by clicking two coordinate points in the editing interface.

[0020] Preferably, the type of the window graphic element further includes a window type class, which defines a certain type of window; the type parameters of the window type class include a set field of window panel graphic elements and window grid graphic elements;

[0021] The set field of the window panel graphic elements and the window grid graphic elements is used to pass into the constructor of the window type class graphic element to generate a single-pane window.

[0022] Preferably, the type of the window graphic element further includes a window graphic element class graphic element, which defines a combined window spliced by multiple window type class graphic elements. The type parameters of the window graphic element class graphic element include window type, insertion point, bottom elevation, rotation angle, whether to be placed on the wall, and thickness; the instantiation parameters of the window graphic element class graphic element include the thickness when not placed on the wall, clear height, effective smoke exhaust area, ventilation area, heat transfer coefficient, solar heat gain coefficient, whether to be displayed as a high window, switching between inside and outside, whether to be edited, whether on the wall, and whether to be mirrored.

[0023] Preferably, the activation function of the window graphic element class is used to complete the planar expression of the window graphic element. The specific steps include: calculating the planar expression line of the window form; calculating the planar expression line of the window panel; calculating the planar expression line of the vertical window grid; calculating the planar expression style of the window; calculating the entire window ventilation area and calculating the entire window effective smoke exhaust area.

[0024] Preferably, it is characterized in that the visualization of the window graphic element according to the instantiation data includes:

[0025] Calling a behavior function or a three-dimensional calculation function to generate a three-dimensional visualization graphic of the window instance. The behavior functions include a graphic element mirroring function, a stretching function, a copying function, a moving function, a saving function, and a reading function.

[0026] Preferably, it is characterized in that the parameters of the type of the window graphic element are stored in the graphic element layer;

[0027] The commands, dynamic functions, and constructors are stored in the command layer;

[0028] The interaction layer realizes the construction and display of the window instance and realizes the editing of the window graphic element type by inputting data into the graphic element layer and the command layer.

[0029] Based on the same concept, a device for creating a building window graphic element based on a building information model is also proposed, including at least one processor and a memory communicatively connected to the at least one processor; the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute a method for creating a building window graphic element based on a building information model as described in any one of the above.

[0030] Compared with the existing technology, the beneficial effects of the present invention are as follows: the present invention proposes a method for creating building window elements based on BIM, which discloses a method for constructing window elements in a hierarchical manner, and can effectively realize the definition and use of building window elements based on different graphics platforms. BRIEF DESCRIPTION OF THE DRAWINGS

[0031] Figure 1 is a flow chart of a method for creating a building window element based on a building information model in Example 1;

[0032] Figure 2 This is a specific schematic flow of a method for creating a building window element based on a building information model in Example 1;

[0033] Figure 3 This is a schematic diagram of the overall technical route in Example 1;

[0034] Figure 4 This is a schematic diagram of the overall construction logic of the graphic element layer in Example 2;

[0035] Figure 5 is an illustration of the elevations of different window panels in Example 2;

[0036] Figure 6 This is the overall logic diagram of the primitive activation function in Example 2;

[0037] Figure 7 This is a schematic diagram of the window grid format in Example 2;

[0038] Figure 8 This is a schematic diagram of the effect of using the window grid primitive in Example 2;

[0039] Figure 9 This is the overall logic diagram of the window primitive activation function in Example 2;

[0040] Fig.10 a is a schematic diagram of the plane expression of the fixed window, casement window, hanging window and combination window in Example 2;

[0041] Fig.10 b is a schematic diagram of the sliding window in Example 2;

[0042] Fig.10 c is a schematic diagram of the shutter window in Example 2;

[0043] Figure 11 is a schematic diagram of a planar representation of panels of different window types in Example 2;

[0044] Fig.12 This is a schematic diagram of the vertical grid plane expression of multiple windows in Example 2;

[0045] Figure 13It is the command layer construction logic diagram in Embodiment 2;

[0046] Fig.14 It is the construction logic diagram of the interaction layer in Embodiment 2;

[0047] Fig.15 It is to create a WPF panel for window instances in Embodiment 2;

[0048] Fig.16 It is the overall function implementation logic diagram for window type editing in Embodiment 2;

[0049] Figure 17 It is the WPF panel for window type editing in Embodiment 2;

[0050] Figure 18 It is a schematic diagram of the composition method of window type numbers in Embodiment 2;

[0051] Fig.19 It is the flowchart of the window type number setting method in Embodiment 2. Specific implementation manners

[0052] The present invention will be further described in detail below in conjunction with test examples and specific implementation manners. However, it should not be understood that the scope of the above-mentioned subject matter of the present invention is limited to the following embodiments, and all technologies implemented based on the content of the present invention belong to the scope of the present invention.

[0053] Embodiment 1

[0054] A method for creating building window graphic elements based on a building information model, the flowchart is as Figure 1 shown, and includes the following steps:

[0055] Create commands, dynamic functions, and constructor functions respectively according to the types of window graphic elements;

[0056] Call the corresponding dynamic function through the command;

[0057] The dynamic function passes the type parameters to the constructor function corresponding to the type of the window graphic element to generate the corresponding window graphic element construction data;

[0058] The dynamic function also calls the activation function of the window graphic element. The activation function calculates the instantiation data of the window graphic element according to the type parameters, instance parameters, and window graphic element construction data, and performs visual display of the window graphic element according to the instantiation data.

[0059] Furthermore, a specific schematic process of a method for creating building window graphic elements based on a building information model is as Figure 2As shown. The constructor is used to create commands and dynamic functions to generate primitive instantiation classes, and can set the parameters in the primitive instantiation class, and call the activation function for the visual expression of the primitive. The activation function calculates points and lines according to the parameters set in the class, and interfaces with the underlying display platform for visualization. The window type and other type parameters together construct the window primitive. The parameters of the window primitive and the window instance parameters are passed to the constructor through the creation command and dynamic function to generate the construction data of the window primitive, and the dynamic function calls the activation function for the visual expression of the window primitive to display the created window instance.

[0060] Furthermore, the types of window primitives include window grid division primitive classes, window panel primitive classes, window type primitive classes, and window primitive classes. Usually, a window primitive is composed of window grids and window panels. Therefore, multiple window grid division primitives are defined and grouped as one category to form window grid division primitive classes, and multiple window panel primitives are also defined and grouped as one category to form window panel primitive classes. Selecting window panels and window grids from the window panel primitive classes and window grid division primitive classes respectively constitutes various types of windows, which is convenient for design and editing.

[0061] The window type primitive class means that in the actual design process, a certain type of window will be reused, and the same type of window has the need for unified creation and modification. Therefore, a specific window structure is defined as a certain window type. Windows of this type have the same common parameters, which can achieve the purpose of quickly modifying the same type of window in the same project. Therefore, instead of repeatedly selecting window panels and window grids every time a window primitive is constructed, the set fields of window panel primitives and window grid division primitives are selected, integrated into the parameters of a type of window, and then the set fields of window panel primitives and window grid division primitives and other identification parameters for the execution of window type calculation functions are encapsulated together and defined as the window type primitive class.

[0062] The window primitive class means that after constructing the window type primitive class, multiple window type primitive classes are combined to form the same type of window primitive class. That is, the window type primitive class is a sub-primitive of the window primitive class, and the window primitive class defines a combined window spliced by multiple window type primitive classes.

[0063] Generally speaking, the types of window primitives are divided into different types from part to whole, providing a data structure for subsequent hierarchical calls to the constructor to generate the corresponding window primitive construction data.

[0064] Furthermore, corresponding commands, dynamic functions, and constructors are created according to the types of window primitives.

[0065] The commands are divided into: window panel primitive command classes, window grid division primitive command classes, window type primitive command classes, and window primitive command classes.

[0066] The use of the window panel primitive command class is in the window type editing scenario of the interaction layer. When using it, select the window panel type. Then, the window panel primitive command in the window panel primitive command class calls the dynamic function in the window panel dynamic function class. The dynamic function passes the obtained parameters into the constructor and activation function of the window panel primitive class, creates an instance of the window panel primitive class, and displays the corresponding window panel in the current view. At the same time, the 3D expression calculation of the window panel is completed.

[0067] After the creation of the window panel primitive is completed, it is also possible to select the window panel to switch the panel type, and the relevant planar expression and 3D expression will be recalculated.

[0068] The use of the window grid primitive command class is in the window type editing scenario of the interaction layer. The window grid primitive commands are divided into the outer frame, inner horizontal grid, and inner vertical grid. Among them, the outer frame represents the outer contour boundary of the entire window, the inner horizontal grid represents the grid division relationship of the window in the horizontal direction, and the inner vertical grid represents the grid division relationship of the window in the vertical direction. The window grid primitive is created by clicking two points on the screen. These two points are passed into the constructor of the window grid primitive, and the activation function and 3D calculation function are called to generate the window grid primitive. Use a transaction to create an instance of the window grid primitive class (here, "transaction" means being able to use the software's built-in backspace key to backtrack, for example, being able to cancel the previous creation operation through the shortcut key Ctrl+Z. The following "transaction" is understood in this way). Finally, it is activated and added to the current view, and at the same time, the 3D expression calculation of the window grid primitive is completed. The generated window grid primitive can be type-switched, and the relevant planar expression and 3D expression will be recalculated.

[0069] The window primitive command class is a class of commands formed by the commands for creating window primitives. After executing the command for creating a window primitive, a window type selection panel can be popped up. The user selects the required window type and specifies the window bottom elevation as the instance parameter of the window. The type parameter and instance parameter of the window primitive are passed into the constructor of the window primitive through the dynamic function to generate window primitive data. Then, the window primitive activation function is called to create an instance of the window primitive class and display it in the current view. At the same time, the 3D expression calculation of the window is completed.

[0070] The dynamic functions include: the window panel primitive dynamic function class, the window grid primitive dynamic function class, the window type primitive dynamic function class, and the window primitive dynamic function class.

[0071] The main function of the window panel primitive dynamic function class is to receive the window panel primitive command and pass the input parameters to the window panel constructor to generate the window panel primitive construction data through the constructor.

[0072] In particular, after the user selects the command to arrange the window panel and before the user finally clicks the screen mode element, if the closed window grid element enclosed area is not captured during the arrangement process, the default constructor and default parameters of the window panel are used to generate a preview of the selected window panel element. If the closed area enclosed by the window grid element instance is captured, the preview of the selected window panel element is generated in the closed area.

[0073] The main function of the window panel element dynamic function class is to generate a real-time preview of the window panel element layout after the command is executed and the user clicks the first point on the screen, but before the user clicks the second point. During the execution process, the user can change the panel type to be created and generate a preview of the new panel type.

[0074] The main function of the window element dynamic function class is to call the constructor of the window element according to the current mouse position after the command is executed and before the user finally clicks the screen element to generate a layout preview of the window element in real time.

[0075] Window primitives must be placed on the wall. During the execution of the dynamic function, the preview of the current window instance must be captured in real time to determine whether it intersects the wall. If so, the wall's width and rotation angle are obtained, and the "Is on the wall" field is set to true. These parameters are passed as instance parameters to the window primitive's constructor, and the constructor's activation function is called to generate a preview of the current layout in real time. If not, the default parameters for the window primitive's width and rotation angle are used, and the "Is on the wall" field is set to false. The constructor's activation function is called to generate a preview of the current layout in real time.

[0076] Activation functions include window panel primitive activation function classes, window grid primitive activation function classes, window type primitive activation function classes, and window primitive activation function classes. These activation functions are called by corresponding dynamic functions and are used for instantiation calculation and visualization expression.

[0077] Furthermore, the type parameters of the window panel class element include corner point coordinates and the form of the window panel, and the forms of the window panel include fixed sash, casement sash, sliding sash, hanging sash and louver sash; the instance parameters of the window panel class element include the insertion point of the window panel.

[0078] The activation function of the window panel primitive performs the following steps:

[0079] The corner point coordinates are calculated based on the insertion point of the window panel, and the window panel primitive construction data in the constructor corresponding to the form of the window panel is calculated. The corner point coordinates and the window panel primitive construction data constitute the instantiation data of the window panel, and a plan schematic diagram of the window panel is generated based on the instantiation data of the window panel.

[0080] The type parameters of the window grid type primitive include the starting point, ending point, grid height, and grid width of the grid frame; the instantiation parameters of the window grid type primitive include the window grid type.

[0081] The activation function of the window grid type primitive performs the following steps:

[0082] First, determine whether it is an outer frame or an inner grid. Determine the control lines of the outer frame and inner grid by determining two points, and then calculate the auxiliary expression lines of the outer frame and grid through the points and lines; generate a planar schematic diagram of the window grid according to the auxiliary expression lines of the outer frame and grid; among them, there are two ways to determine the two points. The first is generated by the default parameters of the window type when generating the default window type, and the second is obtained by clicking two coordinate points in the editing interface.

[0083] The type of the window primitive also includes the window type class, and the window type class defines a certain type of window; the type parameters of the window type class include the set fields of the window panel type primitive and the window grid type primitive;

[0084] The set fields of the window panel type primitive and the window grid type primitive are used to pass into the constructor of the window type class primitive to generate a single-pane window.

[0085] The type of the window primitive also includes the window primitive class primitive, and the window primitive class primitive defines a combined window spliced by multiple window type class primitives. The type parameters of the window primitive class primitive include the window type, insertion point, bottom elevation, rotation angle, whether it is placed on the wall, and thickness; the instantiation parameters of the window primitive class primitive include the thickness when not placed on the wall, clear height, effective smoke exhaust area, ventilation area, heat transfer coefficient, solar heat gain coefficient, whether it is displayed as a high window, switching inside and outside, whether it is being edited, whether it is on the wall, and whether it is mirrored.

[0086] The activation function of the window primitive class is used to complete the planar expression of the window primitive. The specific steps include: calculating the planar expression line of the window body; calculating the planar expression line of the window panel; calculating the planar expression line of the window vertical grid; calculating the planar expression style of the window; calculating the entire window ventilation area; calculating the entire window effective smoke exhaust area.

[0087] Furthermore, the visualization of the window primitive according to the instantiation data includes:

[0088] Call the behavior function or the three-dimensional calculation function to generate the three-dimensional visualization graph of the window instance. The behavior functions include the primitive mirror function, stretch function, copy function, move function, save function, and read function.

[0089] The overall architecture of the present invention is as Figure 3As shown in the figure, the creation of window graphic elements is divided into a graphic element layer, a command layer, and an interaction layer. The parameters defining the types of window graphic elements are stored in the graphic element layer; commands, dynamic functions, and constructor functions are stored in the command layer; the interaction layer realizes the construction and display of window instances and the editing of window graphic element types by inputting data into the graphic element layer and the command layer.

[0090] Embodiment 2

[0091] Embodiment 2 explains and illustrates the concept of the present invention from Figure 3 another dimension of the overall architecture shown in the figure.

[0092] I. Overall technical route

[0093] The overall technical route is as Figure 3 shown in the figure. Based on the C# language, it is proposed that the creation of window graphic elements be divided into a graphic element layer, a command layer, and an interaction layer. The graphic element layer and the command layer are in different namespaces, which can prevent the problem of circular references, that is, the classes in the command layer can only reference the classes in the graphic element layer, and vice versa. The interaction layer determines different namespaces according to the usage scenarios.

[0094] The graphic element layer mainly includes the window graphic element class and the attached panel graphic element class and window grid graphic element class. Due to the requirements of window types in architectural design, the window type class is formed by using the window panel graphic element class, window grid graphic element class, and related type parameters, and then instantiated in the window graphic element class for unified application of data.

[0095] In the command layer, corresponding to the graphic element layer, each type of graphic element has its corresponding creation command and dynamic function. The dynamic function is used to show the state of the graphic element changing with the mouse before the user finally confirms the layout of the window instance, and the creation command class is to execute the graphic element creation command using events.

[0096] The interaction layer is the main way for users to use window graphic elements. Users can set the parameters for creating window graphic element instances in the window instance creation WPF. These parameters will interact with the creation commands of the window through the data class and be passed to the constructor function of the window, thereby driving the creation of window graphic elements. Users can edit the window type through the window type editing WPF, including the window panels, window grids, and related type parameters included in the current window type.

[0097] The specific creation methods and application methods of each layer are introduced in detail as follows.

[0098] II. Construction method of the graphic element layer

[0099] Windows are mainly composed of window panels and window grids. For the need to uniformly create and modify windows of the same type, the graphic element layer includes a window graphic element class, a window panel graphic element class, a window grid graphic element class, and a window type class. The overall construction logic schematic diagram of the graphic element layer is as Figure 4 shown in the figure.

[0100] The window primitive class, window panel primitive class, and window grid primitive class all contain parameter definitions, constructors, primitive activation functions, primitive mirror functions, primitive stretching functions, primitive hint functions, primitive copying functions, primitive moving functions, primitive saving functions, primitive reading functions, and primitive 3D calculation functions. Among them, parameter definitions and constructors are essential components of the C# class concept; the primitive activation function determines the creation logic of the primitive in the plane, and the primitive 3D calculation function expresses the 3D creation logic of the primitive; the primitive mirroring, stretching, copying, moving, saving, and reading functions are essential behavior functions for architectural primitives and are used for the routine operations of primitives during the architectural design process.

[0101] 1. Construction of the window panel primitive class

[0102] Common architectural window panel forms include fixed panels, casement windows, sliding windows, awning windows, and louvered windows. Among them, fixed panels need to support both rectangular and special-shaped forms, while other types of panels only need to support rectangular creation methods to meet the architectural window design requirements.

[0103] Fixed panels usually exist in the form of single panels, casement windows can exist in single or double panels, sliding windows exist in multiple panels (two or more), awning windows exist in single panels, and louvered windows exist in single panels. Different elevation diagrams of window panels are as Figure 5 shown.

[0104] The main application scenarios of window panel primitives include three. The first is when initializing the window type in the program, passing in default parameters and calling the constructor to generate a default fixed window panel. The second is when the user is editing the window type and has not captured the window grid. According to the selected window panel type, use default parameters to generate a preview of the window panel. The third is when the user captures the window grid during window type editing, and use the captured window grid data to call the constructor to form the window panel, which is also the main usage scenario of the window panel primitive.

[0105] (1) Parameter definition

[0106] In the parameter definition of the window panel primitive class, its geometric parameters and non-geometric parameters are defined respectively. Geometric parameters include default width, height, thickness, opening angle, opening distance, and non-geometric parameters include panel type, opening direction, whether it is a fire rescue window, single-panel smoke exhaust area, single-panel ventilation area, material, and various flag variables for assisting program execution. For the encapsulation of the program, private fields are used inside the program, and public properties are used externally to achieve program encapsulation. Attributes related to the 2D or 3D expression of the window panel can be loaded into the property bar of the program, and users can operate on them to control the expression form of the window panel.

[0107] After setting properties related to the window panel plane or three-dimensional expression, the user can call the activation function or three-dimensional calculation function to recalculate the window panel primitive.

[0108] (2) Constructor

[0109] Based on the different application scenarios of the primitive, this invention divides the constructors of the window panel primitive into three types: the first type accepts the insertion point and the window panel form as parameters, allowing the user to generate a panel using default parameters without entering panel corner points; the second type accepts the insertion point, four rectangular corner points, and the window panel form as parameters, allowing the user to generate a panel by entering panel corner points; and the third type accepts the insertion point, a list of corner points, and the window panel form as parameters to accommodate the irregular shapes of fixed window sashes. All three constructors set a function execution flag to call different execution sections in the activation function and the 3D calculation function.

[0110] (3) Element activation function

[0111] The primitive activation function determines the plane creation logic of the primitive. After the user modifies the parameters, the activation function will be called again. The window panel primitive will face various situations when used, so the activation function first defines three layers of function execution flags. The first layer is whether the default window type is generated by default, the second layer is the window panel primitive form, and the third layer is whether the first constructor is called. The overall logic diagram of the primitive activation function is as follows Figure 6 shown.

[0112] The first layer is used to generate the default window type, working with the second constructor to generate the default fixed sash type. Once generated, this condition is set to false. It is then set to true when subsequently using or editing the window panel primitive. When false, a fixed sash panel is generated based on the passed panel corner points, and further generates the panel's flat glass infill.

[0113] The second-level window panel primitive exists as an enumeration value, which specifies the specific window panel type: fixed sash, casement sash, sliding sash, hung sash, or louvered sash. Different window sash types have different representations, and the 2D plane calculation method is determined based on the window panel type. For fixed sashes, the plane only has a flat glass infill representation. For other sash types, the corresponding representation symbol, panel frame line, and flat glass infill representation are generated.

[0114] The third layer determines whether the default constructor has been called. If the user does not enter panel corner points, the default parameters are used to calculate the panel corner points and generate the panel, and then further calculate the plan schematic and flat glass infill. If the user enters panel corner points, the panel is generated using the entered panel corner points, and then further generates the plan schematic and flat glass infill.

[0115] In addition, the ventilation area and effective smoke exhaust area of the window are calculated based on the window panel. Except for fixed panels and louver panels, for other types of window panels, after the planar expression is completed, according to the ventilation area calculation rules in the "Design Standard for Energy Efficiency of Public Buildings" GB50189-2015, relevant parameters are called to calculate the ventilation area of a single panel and saved as the attributes of the single panel. Except for fixed panels, in accordance with the smoke exhaust area calculation rules in the "Technical Standard for Building Smoke Prevention and Exhaust Systems" GB 51251-2017, relevant parameters are called to calculate the smoke exhaust area of a single panel and saved as the attributes of the window panel graphic element, preparing for further calculation of the ventilation area and effective ventilation area of the entire window.

[0116] (4)Graphic element behavior functions

[0117] Graphic element mirroring, stretching, copying, moving, saving, and reading functions are essential behavior functions for building panel graphic elements. Using general mathematical methods, graphic element mirroring, stretching, copying, and moving in the plane and three dimensions can be completed.

[0118] Saving and reading use BinaryWriter and BinaryReader in the System.IO namespace in the C# language to achieve writing and reading of raw data in binary form.

[0119] (5)Three-dimensional calculation functions

[0120] The logic for generating three-dimensional entities of window panels is to stretch the planar graphic elements in three-dimensional space, and the stretching height is the panel thickness. When the window panel type is a fixed panel, calculate the three-dimensional entity of the glass panel; when it is a casement, sliding window, or awning window panel, calculate the three-dimensional entities of the glass panel and the panel outer frame; when it is a louver panel, calculate the three-dimensional entities of the louver panel and the outer frame. After calculating the three-dimensional entities, assign relevant materials accordingly.

[0121] 2. Construction of the window grid graphic element class

[0122] The window grid graphic element includes the outer frame and internal grids of the window. A schematic diagram of the window grid form is as Figure 7 shown.

[0123] (1)Parameter definition

[0124] In the parameter definition of the window grid primitive, its geometric parameters and non-geometric parameters are defined separately. Geometric parameters include the default width and height, and non-geometric parameters include materials and various flag variables that assist program execution. To ensure the encapsulation of the program, private fields are used internally and public properties are used externally to achieve program encapsulation. Properties related to the two-dimensional or three-dimensional expression of the window grid can be loaded into the program's property bar, and users can modify them to control the expression of the window panel. After setting the properties related to the two-dimensional or three-dimensional expression of the window grid, users can call activation functions or three-dimensional calculation functions to recalculate the window grid primitive.

[0125] (2) Constructor

[0126] The constructor of the window grid element needs to specify the geometric parameters of the grid frame, such as the starting point, end point, grid height, and grid width, as well as the expression line color, expression line type, whether it is a single line, and the plane expression parameters of the grid type, depending on the usage scenario.

[0127] (3) Element activation function

[0128] In the window primitive activation function, first determine whether it is an outer frame or an inner grid, determine the control lines of the outer frame and inner grid by determining two points, and then calculate the auxiliary expression lines of the outer frame and grid by points and lines. There are two ways to determine the two points. The first is to generate them by the default parameters of the window type when generating the default window type, and the second is to obtain them by clicking two coordinate points in the type editing interface. In specific use, the parameters passed in are used to distinguish them into outer frames, inner horizontal grids, and inner vertical grids. The schematic diagram of the use effect of the window grid primitive is as follows Figure 8 shown.

[0129] (4) Element behavior function

[0130] The functions of mirroring, stretching, copying, moving, saving, and reading are necessary behavioral functions for building panel elements. Using general mathematical methods, the mirroring, stretching, copying, and moving of elements can be completed in two dimensions and three dimensions.

[0131] Saving and reading use BinaryWriter and BinaryReader under the System.IO namespace in C# language to write and read raw data in binary form.

[0132] (5) Three-dimensional calculation function

[0133] The logic of generating three-dimensional entities from window grids is to stretch the plane primitives in three-dimensional space, and the stretching height is the width of the window grid primitives.

[0134] 3. Window type class construction

[0135] In architectural design, windows of the same type must be created and modified uniformly. Therefore, using the window type as a common parameter for windows of the same type can achieve the purpose of quickly modifying windows of the same type in the same project.

[0136] (1) Parameter definition

[0137] The window type defines a class of public parameters for windows, which are also the type parameters of the window primitives. When any parameter of the window type changes, a new type is formed. Geometric parameters of the type parameters include window width and window height. Non-geometric parameters include the window type ID, window type, window type number, window grid material, fire rating, and serial number for initializing and modifying the window type number, collection fields for collecting window panel primitives and window grid primitives, and other identification parameters used for executing window type calculation functions. To ensure program encapsulation, private fields are used internally and public properties are used externally to achieve program encapsulation.

[0138] (2) Constructor

[0139] Depending on how the window type is used, the window type class constructor must pass in the window type, fire rating, window width, and window height. The window type is an identifier whose primary purpose is to initialize the default window type and call the window panel and window grid primitive classes to generate different types of single-sash windows. These single-sash windows include fixed windows, casement windows, sliding windows, hung windows, and shutters.

[0140] (3) Type calculation function

[0141] The window type calculation function involves two layers of validation. The first layer determines the code block to execute based on the window type identifier passed in the constructor. The second layer determines whether to call the default code block, which generates a default single-sash window type. After execution, the calculated window panel and window grid elements are collected into the window panel element and window grid element collection fields. For the same window type, the default code block will not be executed again after executing it once.

[0142] Subsequent window types will be passed to the window element for window instance creation, or passed to the window type editor for window grid, window panel and type parameter editing.

[0143] (4) Type saving and reading functions

[0144] Saving and reading use BinaryWriter and BinaryReader under the System.IO namespace in C# language to write and read raw data in binary form.

[0145] 4. Window element class construction

[0146] The window types included in the present invention mainly consist of fixed windows, casement windows, sliding windows, awning windows, louver windows, and combined windows composed of different window sashes. These windows are composed of multiple window panels and grids.

[0147] (1) Parameter Definition

[0148] In the parameter definition of the window primitive, its geometric parameters and non - geometric parameters are defined respectively. Geometric parameters include the floor where the window is located, bottom height, top height, width, height, rotation angle, thickness when not placed on the wall. Non - geometric parameters include fire protection grade. Data application parameters include clear height, effective smoke exhaust area, ventilation area, heat transfer coefficient, solar heat gain coefficient. Function execution identifiers include whether it is displayed as a high window, switching inside and outside, whether it is editable, whether it is on the wall, whether it is mirrored, and other list fields for assisting the operation of other programs. Among them, width, height, and fire protection grade belong to the window type parameters, which are given by the window type, and other parameters belong to the window instance parameters.

[0149] For the encapsulation of the program, private fields are used inside the program, and public properties are used externally to achieve program encapsulation. The properties related to the 2D or 3D expression of the window can be loaded into the property bar of the program, and users can modify them to control the expression form of the window panel. After the user sets the properties related to the 2D or 3D expression of the window, they can call the activation function or 3D calculation function to recalculate the window primitive.

[0150] (2) Constructor

[0151] According to the usage method of the window primitive, the constructor of the window needs to pass in the window type, insertion point, bottom elevation, rotation angle, whether it is placed on the wall, and thickness. Among them, the window type is the common data of the same type of window; the insertion point is the point arranged by the user in the creation software; the bottom elevation is the height of the window instance relative to the layout elevation; the rotation angle is the angle of the wall when the window is placed on the wall; whether it is placed on the wall involves the color expression of the window plane line, which is true when captured by the wall and false when not captured; the thickness is the window plane preview when not placed on the wall, and it is the actual thickness of the wall when placed on the wall.

[0152] (3) Activation Function

[0153] The activation function of the window primitive mainly completes the plane expression. The activation function is divided into 6 steps as a whole. The first step is to calculate the plane expression line of the window body, the second step is to calculate the plane expression line of the window panel, the third step is to calculate the plane expression line of the vertical grid of the window, the fourth step is to calculate the plane expression style of the window, the fifth step is to calculate the ventilation area of the whole window, and the sixth step is to calculate the effective smoke exhaust area of the whole window. The overall logic diagram of the window primitive activation function is as Figure 9 shown.

[0154] 1) Calculate the plane expression line of the window body

[0155] Building windows mainly include fixed windows, casement windows, sliding windows, hanging windows, shutters and combination windows. The plane representation diagram of fixed windows, casement windows, hanging windows and combination windows is as follows: Fig.10 As shown in a, the schematic diagram of the sliding window form is as follows Fig.10 As shown in b, the schematic diagram of the shutter window expression is as follows Fig.10 As shown in c.

[0156] By calculating points, lines, and related point movements, line offsets, and other calculation methods, the default expression lines of different window planes can be obtained. The window plane expression style is further calculated according to step 4 to determine the color and linearity of the line.

[0157] 2) Calculate the window panel plane expression line

[0158] Casement windows, sliding windows, hung windows, and combination windows require further calculation of the window panel plane expression diagram, while fixed windows and shutters do not require calculation of the window panel plane expression diagram. The window panel plane expression diagrams for casement windows, sliding windows, and hung windows are shown in the figure below. The combination window plane expression diagram is a combination of multiple window panels and is not listed separately. Figure 11 shown.

[0159] By calculating points, lines, and related point movements, line offsets, and other calculation methods, the default expression lines for different window panel planes can be obtained. The window plane expression style is further calculated according to step 4 to determine the line color and linearity.

[0160] 3) Calculation window vertical grid plane expression line

[0161] When a window has multiple sashes, the vertical grid lines of the window are expressed on the plane. The schematic diagram of the vertical grid line of multiple windows is as follows: Fig.12 shown.

[0162] By calculating points, lines, and related point movements, line offsets, and other calculation methods, the default plane expression lines for different window vertical grids can be obtained. The window plane expression style is further calculated according to step 4 to determine the line color and linearity.

[0163] 4) Calculation window plane expression style

[0164] According to the drawing rules and habits of windows in architectural design, when the user captures a wall when arranging windows, the window plane expression line on the wall is expressed as the color with index number 161. The window panel plane expression line and the window vertical grid plane expression line do not find the color with index number 8. When the wall is not captured, all lines are set to the color with index number 1 to remind the user that the window is not arranged in a standardized manner.

[0165] 5) Calculate the ventilation area of the entire window

[0166] According to the "Energy-Saving Design Standard for Public Buildings" (GB50189-2015), operable windows provide some natural ventilation in buildings. Collaborative design requires that architectural professionals share window ventilation area data with green building professionals for energy-saving design. Section 3.2.9 of GB50189-2015 details ventilation calculation rules for different window types.

[0167] The present invention calculates the ventilation area of a single casement, sliding, or hanging window panel when defining the window panel primitive above. Therefore, the ventilation area values of the single window panels are accumulated in the window primitive and saved as window attributes.

[0168] 6) Calculate the effective smoke exhaust area of the entire window

[0169] According to the Technical Standard for Smoke Control and Exhaust Systems in Buildings (GB 51251-2017), openable windows serve as natural smoke exhaust systems in the event of a building fire. Collaborative design requires that the architecture department communicate the effective smoke exhaust area data of these windows to the HVAC department for smoke control and exhaust design. Section 4.3.5 of the Technical Standard for Smoke Control and Exhaust Systems in Buildings (GB 51251-2017) details the calculation rules for the effective smoke exhaust area of different window types.

[0170] The present invention calculates the smoke exhaust area of a single casement sash, sliding sash, hung sash, and louvered sash panel when defining the window panel graphic element above. After specifying the instance parameter clear height in the window graphic element, the effective smoke exhaust area of the entire window can be obtained.

[0171] (4) Behavioral function

[0172] The functions of mirroring, stretching, copying, moving, saving, and reading are necessary behavioral functions for architectural window elements. Using general mathematical methods, the mirroring, stretching, copying, and moving of elements can be completed in two dimensions and three dimensions.

[0173] After the window element is mirrored, stretched, copied, or moved, it will determine whether it intersects with the wall. If it intersects, the activation function will be called again using the wall parameters to generate the mirrored, stretched, copied, or moved window instance. If it does not intersect, the default parameters will be used to generate the mirrored, stretched, copied, or moved window instance.

[0174] Saving and reading use BinaryWriter and BinaryReader under the System.IO namespace in C# language to write and read raw data in binary form.

[0175] (5) Three-dimensional calculation function

[0176] Since the window element uses the window type, when calculating the 3D representation of the window instance, a copy of the 3D of the window panel element and the 3D of the window grid element in the window type are each copied, and after combination, they are jointly used as the 3D representation of the window instance.

[0177] III. Command Layer Construction Method

[0178] The command layer is jointly composed of the primitive creation command class and the primitive dynamic function class. The construction logic diagram of the command layer is as Figure 13 shown.

[0179] The main function of the primitive creation command class is to pass parameters into the constructor of the primitive, and finally generate a primitive instance according to the creation logic of the primitive in the primitive layer, and jointly complete the expression of the design intention with other primitives in the current view.

[0180] The main function of the primitive dynamic function class is to interact with the current page through the set interaction logic, obtain the parameters required by the primitive constructor, generate a real-time generation preview of the primitive, and pass the parameters for generating the primitive preview to the primitive creation command as the parameters when the final primitive is created.

[0181] 1. Construction of the Window Panel Primitive Command Class and the Dynamic Function Class

[0182] (1) Window Panel Primitive Creation Command Class

[0183] The window panel primitive command class is used in the window type editing scenario of the interaction layer. When using it, the required window panel type needs to be selected, and the window panel dynamic function class is called. According to the constructor of the window panel primitive class and the primitive calculation logic, the parameters obtained during the execution of the dynamic function are passed into the command class, and then a transaction is used to create an instance of the window panel primitive class. Finally, activation and addition to the current view are completed, and at the same time, the 3D expression calculation of the panel is completed.

[0184] After the user completes the window panel primitive, it is also possible to select the window panel to switch the panel type, and the relevant planar expression and 3D expression will be recalculated.

[0185] (2) Window Panel Dynamic Function Class

[0186] The main function of the window panel primitive dynamic function class is to generate a layout preview of the window panel primitive in real time according to the current mouse position before the user finally clicks on the screen in the way of the primitive after the command is executed.

[0187] The layout of window panel elements needs to interact with window grid element instances. When the user selects the window panel type to be arranged, if the closed window grid element enclosed area is not captured during the layout process, the default constructor and default parameters of the window panel are used to generate a preview of the selected window panel element. If the closed area enclosed by the window grid element instance is captured, the preview of the selected window panel element is generated in the closed area.

[0188] 2. Construction of window grid element command class and dynamic function class

[0189] (1) Window grid element creation command class

[0190] The window grid primitive command class is used in the window type editing scene of the interactive layer. According to the usage scenario and the constructor of the window grid primitive, the window grid primitive command includes outer frame, inner horizontal grid, and inner vertical grid. The outer frame expresses the outer contour boundary of the entire window, the inner horizontal grid expresses the grid division relationship of the window in the horizontal direction, and the inner vertical grid expresses the grid division relationship of the window in the vertical direction.

[0191] The window grid primitive is created by clicking two points on the screen. The two points are passed to the constructor of the window grid primitive, and the activation function and three-dimensional calculation function are called to generate the window grid primitive. A transaction is used to create an instance of the window grid primitive class, and finally the activation is completed and added to the current view, and the three-dimensional expression calculation of the window grid primitive is completed at the same time.

[0192] The generated window grid elements can be switched into different types.

[0193] (2) Window grid element dynamic function class

[0194] The main function of the window grid element dynamic function class is to generate a layout preview of the window grid element in real time, using the current mouse position as the second point after the command is executed and the user clicks the first point on the screen, but before the second point is finally clicked.

[0195] During the execution process, the user can change the grid type to be created and generate a preview of the new type of grid.

[0196] 3. Window element command class and dynamic function construction class

[0197] (1) Window element creation command class

[0198] Window primitives are driven and created by both type parameters and instance parameters. Type parameters control the expression of all window instances of the same type, while instance parameters can only control the expression of a single window instance.

[0199] After executing the command to create a window element, a window type selection panel will pop up for the user to select the required window type and specify the bottom elevation of the window as the instance parameter of the window. The parameters are then passed into the constructor of the window element to generate the window element. Then, a transaction is used to create an instance of the window element class. Finally, the window element is activated and added to the current view, and the calculation of the three-dimensional expression of the window is completed.

[0200] (2) Window element dynamic function class

[0201] The main function of the window element dynamic function class is to call the constructor of the window element according to the current mouse position after the command is executed and before the user finally clicks the screen element to generate a layout preview of the window element in real time.

[0202] Window primitives must be placed on the wall. During the execution of the dynamic function, the preview of the current window instance must be captured in real time to determine whether it intersects the wall. If so, the wall's width and rotation angle are obtained, and the "Is on the wall" field is set to true. These parameters are passed as instance parameters to the window primitive's constructor, and the constructor's activation function is called to generate a preview of the current layout in real time. If not, the default parameters for the window primitive's width and rotation angle are used, and the "Is on the wall" field is set to false. The constructor's activation function is called to generate a preview of the current layout in real time.

[0203] 4. Interaction Layer Construction Method

[0204] The interaction layer consists of a WPF panel for creating window instances and a WPF panel for editing window types.

[0205] WPF (Windows Presentation Foundation) is a user interface framework developed by Microsoft. It is part of the .NET Framework and is primarily used to build Windows client applications. It consists of the front-end XAML language and the back-end C# language. WPF provides a unified, feature-rich programming model, language, and framework that can create various types of user interface elements, from simple buttons to complex 3D graphics and animations. The construction logic diagram of the interaction layer is as follows: Fig.14 shown.

[0206] The window instance creates a WPF panel, which mainly includes window type selection, window bottom height setting, window top height report, window width report, window height report, copy type, and edit type. The window type selection is stored in the static type list in the data class. Users can load the window type from the static list when using the window instance to create a WPF panel.

[0207] The window type editing WPF panel completes the geometric shape and type parameter settings of the window type. After being loaded into the static type list in the data class, it is used by the window instance creation WPF panel.

[0208] The window type data edited by the window type editing WPF panel comes from the copy type and edit type in the window instance creation WPF panel of the window type editing WPF panel, as well as the window type passed in by double-clicking the window instance after the window instance is created.

[0209] 1. Construction of the window instance creation WPF panel

[0210] (1) Panel creation

[0211] The window instance creation WPF panel is written in XAML language and includes a title, a search box written with a TextBox control, a window type selection list written with a ComboBox control, copy type and type editing functions written with Button controls, a bottom height input box, a top height report parameter display box, a width report parameter display box, and a height report parameter display box written with TextBox controls.

[0212] The top height report parameter display box is calculated from the window bottom height and the window height in the window type. The width report parameter display box and the height report parameter display box are passed from the window type, so they are set to non-editable states.

[0213] The native ComboBox cannot fully express the information required by the user when selecting the window type. Therefore, it is rewritten on the basis of the native ComboBox to be able to display both the window type preview and the window type number at the same time.

[0214] (2) Data binding

[0215] The data input or displayed in the panel is bound to the data in the data class. Among them, the window type selection list is bound to the static type list in the data class. Each member in this list consists of the window type elevation preview, the window type number, and the window type. After the user opens the window instance creation WPF panel, the window type selection list ComboBox control will obtain the window type static type list in the data class. When clicking the drop-down button, all window types can be displayed. After the user selects the required window type, they can arrange the window instance on the drawing interface. The window instance creation WPF panel is as Fig.15 shown.

[0216] (3) Function implementation

[0217] The search button in the panel can perform fuzzy search according to the window type number to assist the user in quickly finding the required window type for use.

[0218] Click the "Copy Type" button to create a new window type and copy the window grid elements, window panel elements and related type parameters of the window type currently selected by the user to the new window type, and enter the window type editing WPF panel to edit the window type. After editing is completed, a new window type is formed.

[0219] Clicking the "Type Edit" button will transfer the window grid element, window panel element and related type parameters of the window type currently selected by the user to the window type editing WPF panel for window type editing. After editing is completed, the original window type will be replaced.

[0220] 2. Window type editing WPF interface class construction

[0221] Window type editing is an important function of building windows. Users can enter the editing of key parameters of the current type by clicking the "Copy Edit" button on the window creation instance interface and enter the editing of the current type by clicking the "Type Edit" button. Users can preset window types at the beginning of creation or during the creation process, and can also edit the types of created windows to achieve the effect of unified creation and unified modification. The overall function of window type editing is realized in the following logic diagram: Fig.16 shown.

[0222] (1) Panel creation

[0223] The Window Type Editing WPF panel is written in XAML language, including the title, the window frame, window height, type, size code, and window type number display functions written by TextBox controls, the material, performance, serial number, and sash layout functions written by ComboBox controls, and the outer frame, vertical grid, and horizontal grid creation functions written by Button controls. Figure 17 shown.

[0224] (2) Data Binding

[0225] In addition to the execution of events corresponding to the Button control, the window width, window height, type, size code, window type number display, material, performance, and serial number are all data-bound to the corresponding properties of the data class.

[0226] The window width and height are linked to the window grid in the current type editing interface. The program can obtain the maximum X and Y differences of the current outer frame as the window width and height values, which cannot be modified. In addition, the size code display box is converted and combined by the window width and height. The conversion method is to divide the window width and height by 100 respectively, and then round off to retain only the first two digits for the combination. The first two digits are the window width, and the last two digits are the window height. If the converted window width is less than 10 (i.e., a single digit), leading zeros are added to make it a double digit.

[0227] According to the architectural window design expression rules, the material selection control is bound to the material property list in the data class, and the list includes W, S, A, G; the performance selection control includes F Jia, F Yi, F Bing, G, T, K, P, E; the sequential code control presets "None", 01, 02, 03, 04, 05, 06.

[0228] (3)Function implementation

[0229] Whether it is "Copy Editing" or "Type Editing" or "Double-click Editing", the window type data containing window grid data, window panel data, and window type number data is passed into the window type editing WPF panel, where the functions and roles of "Type Editing" and "Double-click Editing" are the same.

[0230] By clicking the outer frame, vertical grid, and horizontal grid buttons in the window type editing WPF panel, the creation command class and dynamic function class of the window grid primitive can be called to draw the outer frame, vertical grid, and horizontal grid in the type editing interface.

[0231] By selecting the panel type in the window type editing WPF panel through dropdown, the creation command class and dynamic function class of the window panel primitive can be called to create fixed sashes, casement sashes, sliding sashes, awning sashes, and louver sashes in the type editing interface.

[0232] By selecting the dimension code, material, performance, and sequential code in the window type editing WPF panel through dropdown, the window type number can be updated in real-time. After the user executes the outer frame drawing command, the program can automatically calculate the window width and height based on the closed outer frame and automatically update the dimension code and window type number.

[0233] When closing the window type editing WPF panel, if it is "Copy Type", the newly edited type will be added to the window type list in the data class; if it is "Type Editing" and "Double-click Editing", the selected type in the window type list in the data class will be replaced.

[0234] Subsequently, the window type list in the data class is sorted by the window type number for the convenience of the user to select. The schematic diagram of the composition method of the window type number is as Figure 18 shown.

[0235] The sorting of the window type number is divided into four levels. At the first level, the materials are sorted as W, S, A, G; at the second level, the performance is sorted as F Jia, F Yi, F Bing, G, T, K, P, E; at the third level, the dimension codes are sorted from smallest to largest; at the fourth level, the sequential codes are sorted as "None", 01, 02, 03, 04...

[0236] After the sorting of the window type number is completed, the window type list in the data class is updated and set as the data source of the window type dropdown list in the window instance creation WPF panel.

[0237] V. Window Element Usage Process

[0238] The flowchart of the window type number setting method is as Fig.19 shown below.

[0239] First, the user clicks the window creation button in the design software to execute the window command, and a WPF panel for creating window instances will pop up. The program will automatically select the default window type. After the user sets the instance parameters of the window bottom elevation, the window instances can be arranged. The user can directly click the "Copy and Edit" button, "Type Edit" or double-click the arranged window instance to enter the WPF panel for window type editing to perform type editing, including the creation and modification of grid elements, panel elements, and type numbers. When exiting the WPF panel for window type editing, the program will automatically run the WPF panel for creating window instances and select the edited window type for arranging window instances.

[0240] The window type search function can be used during the process of selecting the window type.

[0241] During the process of arranging window type instances, methods such as free arrangement, fixed pier width, wall centering, axis network equal division, wall equal division, and axis network fixed distance can be used to arrange window type instances. Different arrangement preview effects will occur during the execution of the window dynamic function according to different arrangement methods.

[0242] Finally, it should be noted that: The above-described embodiments in detail are only the preferred practices of the present invention, and cannot be used to limit the scope of the rights of the present invention. Making equivalent replacements for the technical solutions recorded in the foregoing embodiments does not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present invention, and they should all be covered within the scope of the claims and the description of the present invention.

Claims

1. A method for creating building window elements based on Building Information Modeling, characterized in that The steps include: Create commands, dynamic functions, and constructors respectively according to the types of window primitives; Call the corresponding dynamic function through the command; The dynamic function passes the type parameter to the constructor corresponding to the type of the window primitive to generate the corresponding window primitive construction data; The dynamic function also calls the activation function of the window primitive. The activation function calculates the instantiation data of the window primitive according to the type parameter, instance parameter, and window primitive construction data, and performs visual display of the window primitive according to the instantiation data; The types of the window primitives include window grid type primitives and window panel type primitives; The type parameters of the window grid type primitives include the starting point, ending point, grid height, and grid width of the grid frame; the instantiation parameters of the window grid type primitives include the window grid type; The activation function of the window grid type primitive performs the following steps: First, determine whether it is an outer frame or an inner grid. Determine the control lines of the outer frame and the inner grid by determining two points, and then calculate the auxiliary expression lines of the outer frame and the grid through the points and lines; generate a planar schematic diagram of the window grid according to the auxiliary expression lines of the outer frame and the grid. Among them, determining the control lines of the outer frame and the inner grid by determining two points includes: First, generate the control lines of the outer frame and the inner grid from the default parameters of the window type when generating the default window type; Second, obtain the control lines of the outer frame and the inner grid by clicking two coordinate points in the editing interface.

2. The method for creating a building window primitive based on a building information model according to claim 1, wherein The type parameters of the window panel type primitives include the corner coordinates and the form of the window panel. The form of the window panel includes fixed sash, casement sash, sliding sash, awning sash, and louver sash; the instantiation parameters of the window panel type primitives include the insertion point of the window panel.

3. The method for creating a building window primitive based on a building information model according to claim 2, wherein, The activation function of the window panel type primitive performs the following steps: Calculate the corner coordinates based on the insertion point of the window panel, and calculate the window panel primitive construction data in the constructor corresponding to the form of the window panel. The corner coordinates and the window panel primitive construction data constitute the instantiation data of the window panel, and generate a planar schematic diagram of the window panel according to the instantiation data of the window panel.

4. The method for creating a building window primitive based on a building information model according to claim 1, wherein The types of the window primitives also include window type classes, and the window type classes define a certain type of window; the type parameters of the window type classes include the set fields of window panel type primitives and window grid type primitives; The set fields of the window panel type primitives and the window grid type primitives are used to pass into the constructor of the window type class primitive to generate a single - sash window.

5. The method for creating a building window primitive based on a building information model according to claim 4, wherein The types of the window primitives also include window primitive class primitives, and the window primitive class primitives define a combined window composed of multiple window type class primitives. The type parameters of the window primitive class primitives include window type, insertion point, bottom elevation, rotation angle, whether it is placed on the wall, and thickness; the instantiation parameters of the window primitive class primitives include the thickness when not placed on the wall, clear height, effective smoke exhaust area, ventilation area, heat transfer coefficient, solar heat gain coefficient, whether it is displayed as a high window, switching inside and outside, whether it is being edited, whether it is on the wall, and whether it is mirrored.

6. The method for creating a building window element based on a building information model according to claim 5, wherein, The activation function of the window graphic element class is used to complete the planar expression of the window graphic element. The specific steps include: calculating the planar expression line of the window body; calculating the planar expression line of the window panel; calculating the planar expression line of the vertical division of the window; calculating the planar expression style of the window; calculating the entire ventilation area of the window and calculating the entire effective smoke exhaust area of the window.

7. A method for creating building window elements based on building information models according to any one of claims 1-6, characterized in that, The visualization of the window graphic element according to the instantiation data includes: Calling a behavior function or a three-dimensional calculation function to generate a three-dimensional visualization graph of the window instance. The behavior functions include a graphic element mirror function, a stretching function, a copying function, a moving function, a saving function, and a reading function.

8. A method for creating a building window primitive based on a building information model according to any one of claims 1-6, characterized in that, The parameters of the type of the window graphic element are stored in the graphic element layer; The commands, dynamic functions, and constructor functions are stored in the command layer; The interaction layer realizes the construction and display of the window instance and the editing of the window graphic element type by inputting data into the graphic element layer and the command layer.

9. An apparatus for creating building window primitives based on a building information model, characterized in that Comprising at least one processor and a memory communicatively connected to the at least one processor; The memory stores instructions executable by the at least one processor. The instructions are executed by the at least one processor so that the at least one processor can execute a method for creating a building window graphic element based on a building information model according to any one of claims 1 to 8.

Citation Information

Patent Citations

  • Complex combined door and window modeling method, system and equipment based on Revit and medium

    CN116257911A