Arch Concept/fr

Cette page est une tentative de recueil d'idées sur la conception paramétrique dans le domaine de l'architecture, pour la construction du module Arch. Comme il est un peu différent de celui du domaine de l'ingénierie mécanique, je tiens à définir un peu mieux les concepts, avant de penser à la façon de l'appliquer ... N'hésitez pas à ajouter vos idées !

Programmes similaire

 * Revit


 * Archicad


 * Generative Components

Formats de fichiers

 * STEP - pleinement fonctionnel dans FreeCAD


 * IFC
 * http://forge.osor.eu/plugins/wiki/index.php?id=175&type=g et IFC sdk
 * http://www.bimserver.org/
 * http://konstruct.nl/parsing-ifc-stepexpress-files-in-python-and-s

Concepts généraux

 * FreeCAD est parfait pour cette tâche. La conception avec des objets paramétriques, permet de réduire considérablement le seul vrai problème que je vois dans FreeCAD qui est, le traitement de milliers d'objets. Tout le reste est déjà présent, comme les types d'objets personnalisés, les propriétés personnalisées, etc . . . La principale difficulté est, la conception d'un modèle général pour faire face à l'interaction entre les objets, depuis que FreeCAD a introduit un graphe de dépendance spécialement conçu à cette fin est potentiellement un plus.


 * BIM (Building Information Modeling) est un concept inventé par un groupe de constructeurs et éditeurs de logiciels de conception paramétrique, principalement Autodesk. Cela signifie que vous ne projetez pas un bâtiment en dessinant, mais en insérant des informations (paramètriques). Le rôle du logiciel serait alors, de produire le dessin automatiquement. Ce sont à mon avis des histoires très discutable et seulement un concept "publicitaire". Même dans les logiciels de BIM les plus avancés comme (Revit, Archicad et Microstation GC), vous ne pouvez pas vous soustraire à l'acte de dessiner, sauf, si vous voulez tuer toute créativité. Le but ici, n'est pas de tout automatiser, mais de garder une souplesse créative.


 * La conception paramétrique Génie mécanique est généralement basée sur l'historique des modifications et la résolution des contraintes. Ces deux notions ont beaucoup moins d'importance dans la conception de bâtiments, puisque vous revenez rarement dans les étapes de la construction que vous avez faite (elles sont généralement très simple), et le maintien des contraintes comme l'horizontalité, l'angle ou la distance, même si elles sont utiles, ne sont pas aussi importantes que dans la conception mécanique.


 * Arch conception paramétrique est basée sur des archétypes : mur, porte/fenêtre, toiture, dalle, poutre, qui sont les archétypes de base. En dehors d'eux, ce que vous aurez surtout, ce sont des dérivés personnels.


 * Il est fait ici, un usage intensif de l'assemblage : par exemple plusieurs fenêtres sont regroupées pour former un mur-rideau.


 * La clé, est la relation : Les éléments sont rarement très complexes et relèvent beaucoup plus de travaux de modélisation, mais, ils doivent souvent être transformés par juxtaposition ou inclusion d'autres éléments. Par exemple, un mur n'est rien d'autre qu'une simple extrusion, mais il doit se connecter à d'autres murs, ou faire un trou quand une fenêtre est insérée. Comment construire ce modèle relation, et, comment et ou le stocker, c'est là le grand problème.


 * Un problème de pratiquement tous les logiciels de modélisation paramétriques est, que les bâtiments dépendent beaucoup de ces objets archétypes. La création de nouvelles bibliothèques d'éléments, est extrêmement difficile dans Archicad ou beaucoup plus facile dans Revit, mais il y a toujours quelques problèmes, problèmes de communications importants entre pièces paramétriques et pièces non-paramétriques. Fondamentalement, vous profiterez de tout le potentiel du logiciel si vous utilisez des pièces qui sont faites spécialement pour ce travail. Par exemple la transformation d'un simple solide dans un mur est extrêmement difficile.


 * Un document sur ​​Autodesk Revit : cet article parametric_building_modeling est surtout une publicité en faveur de Revit, et plusieurs concepts sont à mon humble avis sans importance, comme, "générer" un dessins 2D et avoir la possibilité de modifier le modèle en 2D, mais c'est de toute façon une option intéressante.


 * Speed of object calculation is not a very big issue IMHO. Modifying an object shouldn't affect many other objects, and it is usually made in a phase of adjustments, so it's not so important to have lightning-speed updates. One important thing, though, is to always save the final shape of objects, so opening saved models should not require calculations. Before saving, everything should always be recomputed.


 * A state-of-the-art section tool is very important. Floor plans, Elevations, Sections, Ceiling Plans - all are similar BIM tools, as they are axonometric/orthographic "cut planes" through the BIM model.


 * There is the problem of annotation. Where to draw dimensions? on the model? Directly on the svg sheet? Not very practical... This point must be investigated further. Dimensions will belong to a layer that can be turned on/off on the plots. Also, since plots are made to a specific scale, dimensions will be scaled to match the selected scale or a custom one, chosen by user.


 * A "parametric building" should be understood as a mix of relationship-capable objects (archetype-based) and other, non-archetype based. Transforming one object from one category to another should be feasible, and all should behave the same way under sectioning (and dimensioning).


 * A system for creating new components and assemblies, graphically if possible. Assemblies would work as "sub-models" that can be inserted/imported/linked to any BIM model. That way, a sub-model can be updated/changed and that will reflect automatically into the BIM model (if the sub-model is "linked", if it is "imported", then user can select to "update" the model to reflect the latest version of the sub-model, otherwise that will remain as last imported).


 * An edit mode, so one can modify the original shape that generated the part.

About archetypes

 * All archetypes should always behave like object-oriented programming objects: You can make a new class based on another class.
 * All archetypes should be able to interact with common object. For this, probably common objects would need custom properties.
 * Walls should be defined by a simple wire (that would be extruded horizontally, then vertically), a planar shape (that would simply be added a thickness) or a solid (that would be done nothing). The result would always be a solid. Its parameters would therefore vary, depending of your data at the time of creation.
 * Walls should connect to crossing/touching walls
 * Walls could be made of different layers (materials). Same materials would connect together.
 * Walls don't really need a drawing tool. You make them easily by converting something else. But in that case, the draft module could gain a "double-line" tool.
 * Doors/Windows are quite simple objects, their parameter almost only concerns their internal look. But they must have a "box" that creates holes in other objects.
 * Beams and Slabs are simple too, but depending on their materials they must be able to connect to other slabs, beams and walls. Beams and slabs could also be joined into one single "structural" element. There are pillars too. All of them could be defined the same way as walls, by a wire, a shape or a solid. They could even be based on the same basis as walls...
 * Roofs are a special type of object, not very interesting in their own actually, but useful because it's painful to calculate a roof manually. Basically you need to create a shape based on a contour and inclination. Should be easy to do and to extend later to other roof types.
 * Assemblies need to be defined further. They are basically made of other parts, that could be anything, shapes, windows, etc... and custom properties, such as array repetition, deformation (follow a shape?), etc.
 * Site Builder - a special set of tools must handle site creation and update. This toolbox needs to be compatible with other major Open Source terrain/site modelers and GIS applications (like GRASS). SiteBuilder will allow for creation of a site based on topo curves, and easy manipulation/update of the site. That will allow easy creation of: sidewalks, curbs and curb cuts, roads, landscaping, parking lots with all required sewer/runoff systems, etc. The database generated will allow for estimating cut and fill as well as other info required to do the site work. SiteBuilder will be useful also to generate the excavation required for a project.

Wall
Wall is a vertical building component that follows a path on a defined level (i.e. first floor, third floor, etc.) or is extruded horizontally from a vertical surface. Walls are made of several layers (materials, each one with specific thickness and thermal properties), and allow for openings (resulted from subtractions) or appendices (unions). When two different walls intersect, user can select the option to connect the two walls (with similar structure). All parameters of a wall are available for future structural and thermal calculations, as well to generate reports (bill of materials). So for a wall, face areas, volumes, material quantities, etc. are directly inserted in the bill of materials and cost estimate.

As mentioned, walls in BIM are defined by a line/polyline/etc. that represents the "center-line" of the wall. This line can be aligned with the exterior face of the wall, interior face of the wall, or the center or the wall, or if user chose to, it can be custom defined. Walls have several parameters that define them:
 * - level in which wall is placed( i.e. first floor, basement, fifth floor, etc.)
 * - width
 * - height
 * - composition

The level in which walls are placed, require a previous insertion of that "level" by user. Once a level is inserted in the BIM model, that creates automatically a horizontal section, that in turn will generate a "sheet" (i.e. once I insert level called "First Floor" at height 0.00 that will automatically section all the visible elements at that height (plus and minus up and down so doors/windows/openings will be visible in that floor plan). Levels and elevations are similar in concept, as basically both are "section planes" located to a certain position/rotation in the 3D space.

Walls allow for insertions of libraries like: doors, windows, curtain walls, and other custom made objects that require an opening in that wall. If just an opening is required, that can be inserted as well.

Door/Window (Insert element)
Doors and windows are really the same thing, a totally object which can have a lot of parameters to define its shape, and an invisible volume that is used to cut openings through receiving walls. They are typically inserted into a wall, but not always. since they can differ much, they should be easy to design.

Roof
Roof is simply a handy way to calculate roof slope intersections

Slab
Slab is horizontal, made from extruding vertically a closed wire or face, should connect by material to other structural members, and can have a number of appendices (union) or holes subtraction), and layers (materials). The horizontal areas and volume must be calculated

Beam/Pillar (Structural element)
A closed wire or face extruded in any direction, can have a number of appendices (union) or holes subtraction).

Assembly
A group of windows that can be shaped as a whole

Generic mechanisms

 * Dependency: windows must know which wall they are inserted, walls must know which window they contain, etc... See part booleans
 * Joints: walls must know which other wall connect to them and correctly connect their materials together. Moving a wall must therefore recalculate the neighbours. Establish a chart of possible joint types
 * Edge categories: some edges must not be drawn when they are between 2 objects of same material. Mark edges for choosing later how to render them.
 * Auto-grouping: Objects of a certain type go automatically into specific groups
 * "Window designer": An easy way to design parametric windows, based on profiles

Energy Analysis

 * Building needs to perform appropriate to the program that serves as well to the particular geographical location. For example a single project can be built in Miami, Florida (US) or Frankfurt (Germany) or Sydney (Australia). However, it will perform with large differences. What is appropriate for one location, might be inappropriate for another location. Designs we generate with FCBIM should be "tested" and see how they performs in terms of energy consumption. At this moment there are few tools available out there that allows energy performance of buildings. Major Freeware/Open Source players are: EnergyPlus, OpenStudio (an GUI interface for EnergyPlus) and ESP-r.

Daylight Simulation

 * Harvesting daylight is one of the basic approaches in sustainable design. Many modern designs turn their back to natural light and result in undesirable solutions for human beings. In US a large percentage of buildings create the so-called Sick Building Syndrome, that lead to health issues for people that live and work in these. Using daylight alleviate part of this problem. FCBIM should incorporate tools that allows daylight simulations, maybe Radiance or LuxRender or Yaf(a)ray.

HVAC & Natural Ventilation

 * Tools to insert draw and calculate HVAC and allow to calculate for use of natural ventilation. Maybe OpenFOAM should be a candidate in this area, that will complement FCBIM.

Capturing Building Knowledge
The effort to create a module that will make it possible for FreeCAD to provide a contemporary building information modeling (BIM) environment is underway. The effort is geared towards bringing its capabilities to compare to those of more mature architectural modeling systems such as Revit. We recognize the limitations in available implementations of BIM one of which is the ignorance of building knowledge. For this reason we are also pursuing a parallel goal of developing capabilities that will enable FreeCAD capture such knowledge typically created mostly in the early design stage but also in the later detail design stage. In the following sections, we document capabilities that are not so common in available tools but which we believe are more appropriate and efficient in capturing building knowledge and information from concept to demolition. The following sections provide specifications and guidelines regarding the "what" part of this effort. We shall fill in the "how" as our effort progresses. Needless to say, things will change or be amended as our understanding and implementation comes together.

Procedure Descriptions to Identify Objects
The building design session begins on the site where the designer establishes the north-direction and introduces appropriate setbacks according to the building code applicable in the design locale. By doing this the maximum footprint for the new building is established.

Object 1: Building Site
There is only one building site in a project. This object should be created as soon as the decision to design a house is made by the designer. It should exist as a form of container (because it secludes a space. More on this later) with sides, a top and a bottom. The sides can then be interactively defines in terms of length and angle. It should also be possible to add or remove sides as needed. Although the bottom is created flat, it can also be redefined with contours to provide appropriate slope. The bottom is the only part of the site that should be visible.

Object 2: North-Direction
The north direction is an object that establishes the angle in the direction of true north. It is a part of the site and makes it possible for the site to determine the prevailing winds, the movement of the sun, etc.

Object 3: SetBack
These are distances from the boundaries of the site which are required by code. They are part of the site but require certain parameters to be provided in order to determine which boundaries and what distances. For example the setback from the boundary next to the street may be different from the setback from a boundary next to a neighboring site. This information can be provided interactively but with the north-direction established, it is possible for the designer to enter this information during the collection of the requirements for the design. The setback, like the site, is a type of container object.

Object 4: Building Level
At this point the maximum footprint for the building has been established. This footprint represents the first building level. The building level is an object that makes it possible to integrate the different building systems. Examples of building systems are architectural, structural, electrical, etc. The building level, like the building site, is a form of container. There can be one or more levels which are typically stacked on top of each other starting from the bottom. The first level is established after designating the setback for all site boundaries. Additional levels can be created but only the elevation of the bottom is modified as the boundaries of the level are invisible.

Object 5: Building Space
The space is defined to satisfy the main function of the building such as a space for sleeping, eating, relaxing, working, etc. Spaces are created and grouped inside levels. There are different types of spaces which provide the appropriate functions in different building types. For example in a residential building type there are 4 main types including sleeping, living, service and traffic.

Object 6: Space Object
This represents everything else that can be located in a space. Each object will have certain fundamental knowledge of its requirements. For example to describe an area for sitting, an object with at least a seat area, a leg room and maximum height requirements will be necessary.

Object 7: Building Container
Most of the objects described so far are types of containers. Containers have an interior area that are secluded by boundaries. There are Bottom, Top and Side boundaries. Two containers can share a side boundary. When this sharing occurs a special Share-Side object replaces the individual sides from each of the participating containers. It establishes a link between the two containers and makes it possible for them to communicate. For example when there is a shared side between a sleeping and a service space such as a bathroom and a bedroom, that side will expect some form of treatment for noise dampening to avoid flooding the sleeping area with too much noise. Each boundary in a container has a Form. A form is a container-type object that can have the necessary descriptions or Property of materials typical in building envelops.

Object Diagram
The following diagram illustrates the relationship between all objects described so far.