An account or user account is identified to the kBridge system by a user name, password, and security details, such as access to certain Projects or Designs.
An Application or App is a computer program Designed to perform a group of coordinated functions or tasks. A kBridge App is generally used along a broad continuum. On one end, the App can be a "black box" set of functions to further an engineering Design; at the other is a turnkey application that provides a rich set of engineering activities. An example of the latter is a system that automatically routes ductwork in an HVAC system Design, accounting for pressure drops and collision avoidance.
The fundamental Mixin that must be included in all instantiable Designs (Designs that can be used in a Child Rule). The fundamental objects in BaseAssembly are a set of pre-written kBridge Mixins, and their Rules and attributes may be automatically transferred into user-defined Designs when users include a BaseLibrary Mixin in their Designs..
A set of pre-written kBridge objects and Designs. Their Rules and attributes may be inherited by user-defined Designs that tag a base library Design as a Mixin.
A minimal leaf node that is suitable for non-rendered, leaf-only items—that is, Designs with no Children. BaseModel does not have any Mixins.
A box guaranteed to contain all of the geometry of a given object, aligned with the object’s x, y, and z axes. In other words, the bounding box describes the geometric periphery of the object.
A model that is defined by a Child Rule in its Parent. See Child Rule.
A group of children that all defined by the same Child Rule. For example, a Child Group may define the legs of a table. They are placed subordinate to the table (that is, made a Child of the table) and those legs become a Child Group.
A classification of data that tells the computer how the programmer intends to use the data. The type defines the operations that can be done on the or with the data, the human meaning of the data, and the way values of that type can be stored. [en.W].
Dependencies definition coming soon
In kBridge, there are 11 types: array, Boolean, file, number, integer, string, point, frame, vector, model—and a placeholder type, "any."
kBridge Rules are evaluated only when required, that is, evaluated only when they are demanded by the execution of another Rule or due to a request from outside. Only at that point does it become necessary to compute a requested value. This can provide some execution efficiency since the kBridge system knows only to execute the required Rules.
A kBridge Design is an object, that is, a conceptual construct, that encapsulates the engineering Rules and concepts in the specification of an object or concept in the real world. In kBridge terms, Designs are collections of Rules.
Flag
A selection that indicates whether or not a Rule has a certain behavior. It is software switch that controls or indicates how behaves at runtime. Flags include Parameter, Cached, and more. During subsequent operations, the flag influences the operation’s outcome.
A formula is a concise way of expressing information symbolically, a general construct of a relationship between given quantities. In kBridge, formulas are Rules that may be mathematical or conceptual.
Inputs to a Child Group that define how children are to be made, including name, Child Design (type), and quantity, among others.
Inheritance enables one Design to acquire, or inherit Rules from another Design, allowing the encapsulation, modularization and sharing of Designs in many places. Because the Designs are shared (or inherited) rather than copied, future changes to the shared Designs automatically ripple through the Designs that Inherit from them, thus eliminating what can be a very large and tedious maintenance problem.
When a Design "A" inherits another Design "B," Design A simply acquires all of the Rules that are in B. The only exception is when A already has a Rule of the same name, in which case A just keeps its Rule, which is said to Override the Inherited Rule. Similarly, if there is more than one Inherited Design, the Precedence of which Rule is ultimately used is determined by the order of the Inheritance. The early Inherited Designs take Precedence over later Designs.
A value or formula supplied to a Child Group that defines something about the entire group, such as the number of children, the Design or Designs to be used, or how the children"s names are to be generated. Group Inputs are Rules that are supplied to a Child Rule.
Another name for Parameters. Inputs values change a model and are entered by creating or editing a Parameter.
Another name for Model. An Instance is a specific occurrence of any Design that exists during the runtime.
The primary user interface (UI) of kBridge, comprised of the Project Tree, Model Tree, Property Grid, Graphics Window, the Rule Editor, and the Immediate/Messages pane.
A Mixin is a Design that collects related Rules and that is not directly instantiated. By convention, a Mixin Design name should end with "Mixin" to alert authors that it should not be used directly in a Child Rule.
A model is an instance of a Design.
The Model Tree for a given Model is a visual representation of the hierarchy of that model—that is, the root and any children under the root. For a physical product, you can think of this as the final assembly and any sub-assemblies that make up the final. However, the tree can contain children that have no counterpart in physical reality. They can be a Rule or a complex set of Rules, calls to external utilities, apps, or programs, and much more.
The owner of a given Rule is the Design that provides the Rule.
Parameters are set via the Parameter flag while creating or editing a Rule. Once a Rule has this flag set, it is called a Parameter Rule.
Since the root of the model doesn"t have a parent, its Parameters are part of a hidden node in the tree. This node is made from the "World" system Design. These Parameters are called Top Level Parameters.
Sets the datatype for a Rule to that of a Parameter.
A Project is a named collection of Designs, Models, and other resources, which may also include other Projects. As with all engineering Projects, it is better when a Project"s focus is on a specific, well-articulated Design need. Projects can be shared and used internally within an organization along with other Projects.
A Rule is a specification for a computation. It usually contains a Formula, which is evaluated on demand, and a number of other attributes that control how the formula is handled, before, after, and during its evaluation. The name defines what it is called in the system. The label defines what it is called in human-readable UIs. Flags control what "kind" of Rule it is. The data type determines what it is allowed to produce. The category allows it to be organized in various presentations. Note that a Child Rule is still a Rule, but has a very special role that usually requires it to be covered separately.
A Rule- or knowledge-based system is one that manipulates objects and delivers outputs based on Rules and/or information stored within the system. A Rule-based system is capable of creating an app that is, in effect, an engineer in a box, taking inputs, applying engineering Rules and constraints, and delivering Designs, drawings, and documents.
Macros. A means for recording and playing back inputs, operations, and other elements of actions within a system with the aim of automating required development or operational activities.
In kBridge, a system Design is an out-of-the-box, named Design containing a set of pre-written Rules. They can be used as Mixins that give user-defined Designs useful attributes and behavior, or they can be directly used as children in a Model Tree. Most system Designs are found in the Base Library.
Login name for a single user; associated with security settings, Project and Design access privileges, and sharing/team connections.
A hidden instance of a system Design (the "World" Design) that contains the definition of the Child Rule for the Top Level Part, including its Design. Top Level Parameters are stored here and saved when the root Model is saved.