Arch Workbench: Difference between revisions

From FreeCAD Documentation
(V0.22 -> V1.0)
 
(187 intermediate revisions by 25 users not shown)
Line 1: Line 1:
<languages/>
This page is an attempt to collect ideas about parametric design in the field of architecture. Since it is a bit different than the mech engineering field, I want to define concepts a bit better before thinking about how to start implementing it... Feel free to add your ideas!
<translate>


<!--T:33-->
== similar software ==
{{Docnav
|[[Std_Base|Std Base]]
|[[Assembly_Workbench|Assembly Workbench]]
|IconL=Freecad.svg
|IconR=Workbench_Assembly.svg
}}


<!--T:38-->
* [http://en.wikipedia.org/wiki/Revit Revit]
[[Image:Workbench_Arch.svg|thumb|128px|Arch workbench icon]]


</translate>
* [http://en.wikipedia.org/wiki/Archicad Archicad]
{{TOCright}}
<translate>


== Introduction == <!--T:1-->
* [http://en.wikipedia.org/wiki/Generative_Components Generative Components]


<!--T:36-->
== file formats ==
The [[File:Workbench_Arch.svg|24px]] [[Arch_Workbench|Arch Workbench]] provides a modern [http://en.wikipedia.org/wiki/Building_Information_Modeling '''B'''uilding '''I'''nformation '''M'''odelling] (BIM) workflow to FreeCAD, with support for features like fully parametric architectural entities such as walls, beams, roofs, windows, stairs, pipes, and furniture. It supports [[Arch_IFC|'''I'''ndustry '''F'''oundation '''C'''lasses]] (IFC) files, and production of 2D floor plans in combination with the [[File:Workbench_TechDraw.svg|24px]] [[TechDraw_Workbench|TechDraw Workbench]].


<!--T:32-->
* [http://en.wikipedia.org/wiki/ISO_10303 STEP] - already fully working in FreeCAD
The Arch Workbench imports all tools from the [[File:Workbench_Draft.svg|24px]] [[Draft_Workbench|Draft Workbench]], as it uses its 2D objects to build 3D parametric architectural objects. Nevertheless, Arch can also use solid shapes created with other workbenches like [[File:Workbench_Part.svg|24px]] [[Part_Workbench|Part]] and [[File:Workbench_PartDesign.svg|24px]] [[PartDesign_Workbench|PartDesign]].


<!--T:13-->
* [http://en.wikipedia.org/wiki/Industry_Foundation_Classes IFC]
The BIM functionality of FreeCAD is now progressively split into this Arch Workbench, which holds basic architectural tools, and the [[File:Workbench_BIM.svg|24px]] [[BIM_Workbench|BIM Workbench]], which is available from the [[File:Std_AddonMgr.svg|24px]] [[Std_AddonMgr|Addon Manager]]. This BIM Workbench adds a new interface layer on top of the Arch tools, with the aim of making the BIM workflow more intuitive and user-friendly. See [https://yorik.uncreated.net/blog/2020-010-freecad-bim-guide FreeCAD BIM migration guide].
** http://forge.osor.eu/plugins/wiki/index.php?id=175&type=g an IFC sdk
** http://www.bimserver.org/
** http://konstruct.nl/parsing-ifc-stepexpress-files-in-python-and-s


<!--T:40-->
== general concepts ==
The developers of Draft, Arch, and BIM also collaborate with the greater [https://osarch.org OSArch community], with the ultimate goal of improving building design by using entirely free software.


</translate>
* FreeCAD is perfect for the task. Designing with parametric objects will greatly reduce the only real problem I see in FreeCAD, which is dealing with thousands of objects. Everything needed is there already, like custom object types, custom properties, etc. The main difficulty, designing a general model for dealing with interaction between objects, is now potentially over, since FreeCAD introduced a dependency graph especially for that purpose.
[[Image:Screenshot arch window.jpg|600px]]
<translate>


== Tools == <!--T:8-->
* [http://en.wikipedia.org/wiki/Building_Information_Modeling BIM] (building information modeling) is a concept invented by a couple of building parametric design software vendors, principally autodesk. It means that you don't project a building by drawing anymore, but by inserting information (parameters). The software would then produce a drawing automatically. This is <strike>totally bullshit</strike> highly questionable in my opinion and only a propaganda concept. Even in most advanced BIM software around (Revit, Archicad and Microstation GC), you can't abstract the act of drawing unless you want to kill any creativity. The goal here is not to be the most automatic, but to keep flexible.


<!--T:3-->
* Mech engineering parametric design is usually based on changes history and constraint solving. Those two concept have much less importance in building design, since you rarely want to crawl back in the steps you did (they are usually very simple), and keeping constraints like horizontality, angle, or distance, even if they are useful, is not as important as in mech design.
These are tools for creating architectural objects.


<!--T:41-->
* Arch parametric design is based on archetypes: wall, door/window, roof, slab, beam, are the basic ones. Outside them, what you'll mostly have are derivatives of those
* [[Image:Arch_Wall.svg|32px]] [[Arch_Wall|Wall]]: Creates a wall from scratch or using a selected object as a base.


<!--T:42-->
* It makes heavy use of assembly: for example several windows are grouped together to form a curtain wall
* [[Image:Arch_Structure.svg|32px]] [[Arch_Structure|Structure]]: Creates a structural element from scratch or using a selected object as a base.


<!--T:43-->
* Relationship is the key. Elements are rarely very complex or require much modeling work, but they must often be transformed by the juxtaposition or inclusion of other elements. For example a wall is nothing else than a simple extrusion, but it must connect to other walls, or take a hole when a window is inserted into it. How to build that relationship model and how/where to store it is the big problem.
* [[Image:Arch_CompRebarStraight.png|48px]] [[Arch_CompRebarStraight|Rebar tools]]: These tools, except the last, are only available if the [[Reinforcement_Workbench|Reinforcement Workbench]] has been installed.


<!--T:44-->
* A problem of about all parametric building modeling software is that they rely heavily on those archetype objects. Creating new, not-in-the-library parts, is extremely hard (Archicad) or much easier (Revit) but always a bit of a problem, and there is always a big communication problem between "parametric" parts and "non-parametric" parts. Basically you only gain the full power of the software if you use parts that are made for the job. For example transforming a simple solid into a wall is extremely problematic.
:* [[Image:Reinforcement_StraightRebar.svg|32px]] [[Reinforcement_StraightRebar|Straight Rebar]]: Creates a straight reinforcement bar in a selected structural element.


<!--T:45-->
* An autodesk paper about Revit: http://images.autodesk.com/adsk/files/bim_parametric_building_modeling_jan07_1_.pdf this article is mostly a propaganda for Revit, and several concepts are IMHO unimportant, like "generated" 2d drawings vs the ability to modify your model in 2d, but it is interesting anyway.
:* [[Image:Reinforcement_UShapeRebar.svg|32px]] [[Reinforcement_UShapeRebar|U-Shape Rebar]]: Creates a U-shape reinforcement bar in a selected structural element.


<!--T:46-->
* 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.
:* [[Image:Reinforcement_LShapeRebar.svg|32px]] [[Reinforcement_LShapeRebar|L-Shape Rebar]]: Creates an L-shape reinforcement bar in a selected structural element.


<!--T:47-->
* 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.
:* [[Image:Reinforcement_StirrupRebar.svg|32px]] [[Reinforcement_StirrupRebar|Stirrup]]: Creates a stirrup reinforcement bar in a selected structural element.


<!--T:48-->
* 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.
:* [[Image:Reinforcement_BentShapeRebar.svg|32px]] [[Reinforcement_BentShapeRebar|Bent-Shape Rebar]]: Creates a bent-shape reinforcement bar in a selected structural element.


<!--T:49-->
* 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).
:* [[Image:Reinforcement_HelicalRebar.svg|32px]] [[Reinforcement_HelicalRebar|Helical Rebar]]: Creates a helical reinforcement bar in a selected structural element.


<!--T:50-->
* 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).
:* [[Image:Reinforcement_ColumnRebars.svg|32px]] [[Reinforcement_ColumnRebars|Column Reinforcement]]: Creates reinforcement bars in a selected column.


<!--T:51-->
* An edit mode, so one can modify the original shape that generated the part.
:* [[Image:Reinforcement_BeamRebars.svg|32px]] [[Reinforcement_BeamRebars|Beam Reinforcement]]: Creates reinforcement bars in a selected beam.


<!--T:52-->
== about archetypes ==
:* [[Image:Reinforcement_SlabRebars.svg|32px]] [[Reinforcement_SlabRebars|Slab Reinforcement]]: Creates reinforcement bars in a selected slab.


<!--T:53-->
* All archetypes should always behave like object-oriented programming objects: You can make a new class based on another class.
:* [[Image:Reinforcement_FootingRebars.svg|32px]] [[Reinforcement_FootingRebars|Footing Reinforcement]]: Creates reinforcement bars in a selected footing.


<!--T:54-->
* All archetypes should be able to interact with common object. For this, probably common objects would need custom properties.
:* [[Image:Arch_Rebar.svg|32px]] [[Arch_Rebar|Custom Rebar]]: Creates a custom reinforcement bar in a selected structural element using a sketch.


<!--T:55-->
* 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.
* [[Image:Arch_CurtainWall.svg|32px]] [[Arch_CurtainWall|Curtain Wall]]: Creates a curtain wall from scratch or using a selected object as a base.


<!--T:56-->
* Walls should connect to crossing/touching walls
* [[Image:Arch_BuildingPart.svg|32px]] [[Arch_BuildingPart|Building Part]]: Creates a building part including selected objects.


<!--T:57-->
* Walls could be made of different layers (materials). Same materials would connect together.
* [[Image:Arch_Project.svg|32px]] [[Arch_Project|Project]]: Creates a project including selected objects.


<!--T:58-->
* 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.
* [[Image:Arch_Site.svg|32px]] [[Arch_Site|Site]]: Creates a site including selected objects.


<!--T:59-->
* 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.
* [[Image:Arch_Building.svg|32px]] [[Arch_Building|Building]]: Creates a building including selected objects.


<!--T:60-->
* 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...
* [[Image:Arch_Floor.svg|32px]] [[Arch_Floor|Level]]: Creates a floor including selected objects.


<!--T:61-->
* 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
* [[Image:Arch_Reference.svg|32px]] [[Arch_Reference|External reference]]: Links objects from another FreeCAD file into the current document.


<!--T:62-->
* 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.
* [[Image:Arch_Window.svg|32px]] [[Arch_Window|Window]]: Creates a window from scratch or using a selected object as a base.


<!--T:63-->
* 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.
* [[Image:Arch_Roof.svg|32px]] [[Arch_Roof|Roof]]: Creates a sloped roof from a selected wire.


<!--T:64-->
== archetypes (object types) ==
* [[Image:Arch_CompAxis.png|48px]] [[Arch CompAxis|Axis tools]]


<!--T:65-->
=== Wall ===
:* [[Image:Arch_Axis.svg|32px]] [[Arch_Axis|Axis]]: Adds a 1-direction array of axes.


<!--T:66-->
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.
:* [[Image:Arch_AxisSystem.svg|32px]] [[Arch_AxisSystem|Axis System]]: Adds an axis system composed of several axes.


<!--T:67-->
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:
:* [[Image:Arch_Grid.svg|32px]] [[Arch_Grid|Grid]]: Adds a grid-like object.
- level in which wall is placed( i.e. first floor, basement, fifth floor, etc.)
- width
- height
- composition


<!--T:68-->
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.
* [[Image:Arch_SectionPlane.svg|32px]] [[Arch_SectionPlane|Section Plane]]: Adds a section plane object.


<!--T:69-->
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.
* [[Image:Arch_Space.svg|32px]] [[Arch_Space|Space]]: Creates a space object.


<!--T:70-->
=== Door/Window (Insert element) ===
* [[Image:Arch_Stairs.svg|32px]] [[Arch_Stairs|Stairs]]: Creates a stairs object.


<!--T:71-->
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.
* [[Image:Arch_CompPanel.png|48px]] [[Arch_CompPanel|Panel tools]]


<!--T:72-->
=== Roof ===
:* [[Image:Arch_Panel.svg|32px]] [[Arch_Panel|Panel]]: Creates a panel object from a selected 2D object.


<!--T:73-->
Roof is simply a handy way to calculate roof slope intersections
:* [[Image:Arch_Panel_Cut.svg|32px]] [[Arch_Panel_Cut|Panel Cut]]: Creates a 2D cut view from a panel.


<!--T:74-->
=== Slab ===
:* [[Image:Arch_Panel_Sheet.svg|32px]] [[Arch_Panel_Sheet|Panel Sheet]]: Creates a 2D cut sheet including panel cuts or other 2D objects.


<!--T:75-->
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
:* [[Image:Arch_Nest.svg|32px]] [[Arch_Nest|Nest]]: Allows to nest several flat objects inside a container shape.


<!--T:76-->
=== Beam/Pillar (Structural element) ===
* [[Image:Arch_Equipment.svg|32px]] [[Arch_Equipment|Equipment]]: Creates an equipment or furniture object.


<!--T:77-->
A closed wire or face extruded in any direction, can have a number of appendices (union) or holes subtraction).
* [[Image:Arch_Frame.svg|32px]] [[Arch_Frame|Frame]]: Creates a frame object from a selected layout.


<!--T:78-->
=== Assembly ===
* [[Image:Arch_Fence.svg|32px]] [[Arch_Fence|Fence]]: Creates a fence object from a selected post and path.


<!--T:79-->
A group of windows that can be shaped as a whole
* [[Image:Arch_Truss.svg|32px]] [[Arch_Truss|Truss]]: Creates a truss from a selected line or from scratch.


<!--T:80-->
== generic mechanisms ==
* [[Image:Arch_Profile.svg|32px]] [[Arch_Profile|Profile]]: Creates a parametric 2D profile.


<!--T:81-->
* Dependency: windows must know which wall they are inserted, walls must know which window they contain, etc... See part booleans
* [[Image:Arch_CompSetMaterial.png|48px]] [[Arch CompSetMaterial|Material tools]]
* 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


<!--T:82-->
=== Energy Analysis ===
:* [[Image:Arch_SetMaterial.svg|32px]] [[Arch_SetMaterial|Material]]: Creates a material and attributes it to selected objects, if any.


<!--T:83-->
* 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 Sidney (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.
:* [[Image:Arch_MultiMaterial.svg|32px]] [[Arch_MultiMaterial|Multi-Material]]: Creates a multi-material and attributes it to selected objects, if any.


<!--T:84-->
=== Daylight Simulation ===
* [[Image:Arch_Schedule.svg|32px]] [[Arch_Schedule|Schedule]]: Creates different types of schedules.


<!--T:85-->
* 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.
* [[Image:Arch_CompPipe.png|48px]] [[Arch CompPipe|Pipe tools]]


<!--T:86-->
=== HVAC & Natural Ventilation ===
:* [[Image:Arch_Pipe.svg|32px]] [[Arch_Pipe|Pipe]]: Creates a pipe.


<!--T:87-->
* 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.
:* [[Image:Arch_PipeConnector.svg|32px]] [[Arch_PipeConnector|Connector]]: Creates a corner or T-connection between 2 or 3 selected pipes.


===Modification tools=== <!--T:20-->
== Capturing Building Knowledge ==


<!--T:21-->
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 in the early and later design stages. 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.
These are tools for modifying architectural objects.


<!--T:88-->
=== Procedure Descriptions to Identify Objects ===
* [[Image:Arch_CutPlane.svg|32px]] [[Arch_CutPlane|Cut with plane]]: Cuts an object according to a plane.


<!--T:90-->
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.
* [[Image:Arch_Add.svg|32px]] [[Arch_Add|Add component]]: Adds objects to a component.


<!--T:91-->
==== Object 1: Building Site ====
* [[Image:Arch_Remove.svg|32px]] [[Arch_Remove|Remove component]]: Subtracts or removes objects from a component.


<!--T:92-->
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.
* [[Image:Arch_Survey.svg|32px]] [[Arch_Survey|Survey]]: Enters or leaves surveying mode.


===Utilities=== <!--T:23-->
==== Object 2: North-Direction ====


<!--T:24-->
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.
These are additional tools to help you in specific tasks.


<!--T:93-->
==== Object 3: SetBack ====
* [[Image:Arch_Component.svg|32px]] [[Arch_Component|Component]]: Creates a non-parametric Arch component.


<!--T:94-->
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.
* [[Image:Arch_CloneComponent.svg|32px]] [[Arch_CloneComponent|Clone component]]: Produces Arch Components that are clones of selected Arch objects (not to be confused with [[Draft_Clone|Draft Clone]]).


<!--T:95-->
==== Object 4: Building Level ====
* [[Image:Arch_SplitMesh.svg|32px]] [[Arch_SplitMesh|Split Mesh]]: Splits a selected mesh into separate components.


<!--T:96-->
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.
* [[Image:Arch_MeshToShape.svg|32px]] [[Arch_MeshToShape|Mesh to Shape]]: Converts a mesh into a shape, unifying coplanar faces.


<!--T:97-->
==== Object 5: Building Space ====
* [[Image:Arch_SelectNonSolidMeshes.svg|32px]] [[Arch_SelectNonSolidMeshes|Select non-manifold meshes]]: Selects all non-manifold meshes from the current selection or from the document.


<!--T:98-->
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.
* [[Image:Arch_RemoveShape.svg|32px]] [[Arch_RemoveShape|Remove Shape from Arch]]: Turns cubic shape-based Arch object fully parametric.


<!--T:99-->
==== Object 6: Space Object ====
* [[Image:Arch_CloseHoles.svg|32px]] [[Arch_CloseHoles|Close holes]]: Closes holes in a selected shape-based object.


<!--T:100-->
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.
* [[Image:Arch_MergeWalls.svg|32px]] [[Arch_MergeWalls|Merge Walls]]: Merge two or more walls.


<!--T:101-->
==== Object 7: Building Container ====
* [[Image:Arch_Check.svg|32px]] [[Arch_Check|Check]]: Check if the selected objects are solids and don't contain defects.


<!--T:102-->
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.
* [[Image:Arch_ToggleIfcBrepFlag.svg|32px]] [[Arch_ToggleIfcBrepFlag|Toggle IFC Brep flag]]: Forces a selected object to be exported as an [http://www.buildingsmart-tech.org/ifc/IFC4/final/html/schema/ifcgeometricmodelresource/lexical/ifcfacetedbrep.htm IfcFacetedBrep].


<!--T:103-->
=== Object Diagram ===
* [[Image:Arch_3Views.svg|32px]] [[Arch_3Views|3 Views from mesh]]: Creates top, front and side views from a [[Mesh_Workbench|mesh]].


<!--T:104-->
The following diagram illustrates the relationship between all objects described so far.
* [[Image:Arch_IfcSpreadsheet.svg|32px]] [[Arch_IfcSpreadsheet|Create IFC spreadsheet...]]: Creates a spreadsheet to store [[Arch_IFC|IFC]] properties of an object.


<!--T:105-->
[[File:BldgComponents.png|800px|thumb|left|Objects for capturing building knowledge]]
* [[Image:Arch_ToggleSubs.svg|32px]] [[Arch_ToggleSubs|Toggle subcomponents]]: Shows or hides the subcomponents of an Arch object.

==Obsolete tools== <!--T:106-->

<!--T:89-->
* [[Image:Arch_CutLine.svg|32px]] [[Arch_CutLine|Cut with line]]: Cuts an object according to a line. Not available in {{VersionPlus|1.0}}.

===Preferences=== <!--T:26-->

<!--T:27-->
* [[Image:Preferences-arch.svg|32px]] [[Arch_Preferences|Preferences]]: preferences for the default appearance of walls, structures, rebars, windows, stairs, panels, pipes, grids and axes.

===File formats=== <!--T:4-->

<!--T:5-->
* [[Arch_IFC|IFC]]: industry foundation classes
* [[Arch_DAE|DAE]]: Collada mesh format
* [[Arch_OBJ|OBJ]]: OBJ mesh format (export only)
* [[Arch_JSON|JSON]]: JavaScript Object Notation format (export only)
* [[Arch_3DS|3DS]]: 3DS format (import only)
* [[Arch_SHP|SHP]]: GIS Shapefiles (import only)

== API == <!--T:9-->

<!--T:10-->
The Arch module can be used in [[Python|Python]] scripts and [[Macros|macros]] using the [[Arch_API|Arch Python API]] functions.

== Tutorials == <!--T:11-->

<!--T:12-->
* [[Migrating_to_FreeCAD_from_Revit|Migrating to FreeCAD from Revit]]
* [http://yorik.uncreated.net/guestblog.php?tag=freecad Architecture workflow]: An example of how FreeCAD can begin to have its preliminary place in an architecture workflow.
* [[Arch tutorial|Arch tutorial]] (v0.14)
* [http://yorik.uncreated.net/guestblog.php?2012=180 Quick arch overview on Yorik's blog] (v0.13)
* [https://www.youtube.com/watch?v=lTDOeHapv_E Video presentation of the Arch workbench] (2016)
* [[Arch_panel_tutorial|Arch panel tutorial]] (v0.15)
* [[Manual:BIM modeling|BIM modeling chapter from the FreeCAD manual]]
* [[Import_from_STL_or_OBJ|Import from STL or OBJ]]
* [[Export_to_STL_or_OBJ|Export to STL or OBJ]]


<!--T:6-->
{{Docnav
|[[Std_Base|Std Base]]
|[[Assembly_Workbench|Assembly Workbench]]
|IconL=Freecad.svg
|IconR=Workbench_Assembly.svg
}}

</translate>
{{Arch_Tools_navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
[[Category:Workbenches{{#translation:}}]]

Latest revision as of 10:50, 21 April 2024

Arch workbench icon

Introduction

The Arch Workbench provides a modern Building Information Modelling (BIM) workflow to FreeCAD, with support for features like fully parametric architectural entities such as walls, beams, roofs, windows, stairs, pipes, and furniture. It supports Industry Foundation Classes (IFC) files, and production of 2D floor plans in combination with the TechDraw Workbench.

The Arch Workbench imports all tools from the Draft Workbench, as it uses its 2D objects to build 3D parametric architectural objects. Nevertheless, Arch can also use solid shapes created with other workbenches like Part and PartDesign.

The BIM functionality of FreeCAD is now progressively split into this Arch Workbench, which holds basic architectural tools, and the BIM Workbench, which is available from the Addon Manager. This BIM Workbench adds a new interface layer on top of the Arch tools, with the aim of making the BIM workflow more intuitive and user-friendly. See FreeCAD BIM migration guide.

The developers of Draft, Arch, and BIM also collaborate with the greater OSArch community, with the ultimate goal of improving building design by using entirely free software.

Tools

These are tools for creating architectural objects.

  • Wall: Creates a wall from scratch or using a selected object as a base.
  • Structure: Creates a structural element from scratch or using a selected object as a base.
  • Straight Rebar: Creates a straight reinforcement bar in a selected structural element.
  • U-Shape Rebar: Creates a U-shape reinforcement bar in a selected structural element.
  • L-Shape Rebar: Creates an L-shape reinforcement bar in a selected structural element.
  • Stirrup: Creates a stirrup reinforcement bar in a selected structural element.
  • Bent-Shape Rebar: Creates a bent-shape reinforcement bar in a selected structural element.
  • Helical Rebar: Creates a helical reinforcement bar in a selected structural element.
  • Custom Rebar: Creates a custom reinforcement bar in a selected structural element using a sketch.
  • Curtain Wall: Creates a curtain wall from scratch or using a selected object as a base.
  • Building Part: Creates a building part including selected objects.
  • Project: Creates a project including selected objects.
  • Site: Creates a site including selected objects.
  • Building: Creates a building including selected objects.
  • Level: Creates a floor including selected objects.
  • Window: Creates a window from scratch or using a selected object as a base.
  • Roof: Creates a sloped roof from a selected wire.
  • Axis: Adds a 1-direction array of axes.
  • Axis System: Adds an axis system composed of several axes.
  • Grid: Adds a grid-like object.
  • Space: Creates a space object.
  • Stairs: Creates a stairs object.
  • Panel: Creates a panel object from a selected 2D object.
  • Panel Cut: Creates a 2D cut view from a panel.
  • Panel Sheet: Creates a 2D cut sheet including panel cuts or other 2D objects.
  • Nest: Allows to nest several flat objects inside a container shape.
  • Equipment: Creates an equipment or furniture object.
  • Frame: Creates a frame object from a selected layout.
  • Fence: Creates a fence object from a selected post and path.
  • Truss: Creates a truss from a selected line or from scratch.
  • Profile: Creates a parametric 2D profile.
  • Material: Creates a material and attributes it to selected objects, if any.
  • Multi-Material: Creates a multi-material and attributes it to selected objects, if any.
  • Schedule: Creates different types of schedules.
  • Pipe: Creates a pipe.
  • Connector: Creates a corner or T-connection between 2 or 3 selected pipes.

Modification tools

These are tools for modifying architectural objects.

  • Survey: Enters or leaves surveying mode.

Utilities

These are additional tools to help you in specific tasks.

  • Component: Creates a non-parametric Arch component.
  • Split Mesh: Splits a selected mesh into separate components.
  • Mesh to Shape: Converts a mesh into a shape, unifying coplanar faces.
  • Close holes: Closes holes in a selected shape-based object.
  • Check: Check if the selected objects are solids and don't contain defects.

Obsolete tools

  • Cut with line: Cuts an object according to a line. Not available in version 1.0 and above.

Preferences

  • Preferences: preferences for the default appearance of walls, structures, rebars, windows, stairs, panels, pipes, grids and axes.

File formats

  • IFC: industry foundation classes
  • DAE: Collada mesh format
  • OBJ: OBJ mesh format (export only)
  • JSON: JavaScript Object Notation format (export only)
  • 3DS: 3DS format (import only)
  • SHP: GIS Shapefiles (import only)

API

The Arch module can be used in Python scripts and macros using the Arch Python API functions.

Tutorials