|
Menu location |
---|
3D/BIM → Roof |
Workbenches |
BIM |
Default shortcut |
R F |
Introduced in version |
- |
See also |
None |
The Arch Roof tool allows for the creation of a sloped roof from a selected wire. The created roof object is parametric, keeping its relationship with the base object. The principle is that each edge is seen allotting a profile of roof (slope, width, overhang, thickness).
Note: This tool is still in development, and might fail with very complex shapes.
View from above a building model showing the roof with certain transparency
Angle
or Run
to 0
and define a Relative Id
, this makes an automatic calculation to find the data relative to the Relative Id
.Angle = 0
and Run = 0
then profile is identical to the relative profile.Angle = 0
then Angle
is calculated so that the height is the same one as the relative profile.Run = 0
then Run
is calculated so that the height is the same one as the relative profile.If your roof has a complex shape (e.g. contains pitched windows or other non-standard features) you can create a custom solid object using various other FreeCAD workbenches (Part, Sketcher etc.). And then use this solid as the DataBase object of your roof:
Roofs have an automatically generated subtraction volume (introduced in 1.0 for roofs with a solid base). When a roof is removed from the walls of a building, both the roof itself as well as everything above it is subtracted from the walls.
introduced in 1.0: It is possible to override the automatic subtraction volume by setting the DataSubvolume property of the roof to a custom solid object.
Solid-based roof before (1st image) and after (2nd image) removing it from walls.
The 3rd image shows the generated subtraction volume.
An Arch Roof object shares the common properties and behaviors of all Arch Components.
Roof
FloatList
): The list of angles of the roof segments.Length
): The total length of the borders of the roof.Integer
): The face number of the base object used to build the roof (not used).Bool
): Specifies if the direction of the roof should be flipped.FloatList
): The list of calculated heights of the roof segments.IntegerList
): The list of IDs of the relative profiles of the roof segments.FloatList
): The list of overhangs of the roof segments.Length
): The total length of the ridges and hips of the roof.FloatList
): The list of horizontal length projections of the roof segments.Link
): The volume to subtract. If specified it is used instead of the auto-generated subvolume. introduced in 1.0FloatList
): The list of thicknesses of the roof segments.See also: Arch API and FreeCAD Scripting Basics.
The Roof tool can be used in macros and from the Python console by using the following function:
Roof = makeRoof(baseobj=None, facenr=0, angles=[45.,], run=[], idrel=[0,], thickness=[50.,], overhang=[100.,], name="Roof")
Roof
object from the given baseobj
, which can be a closed wire or a solid object.
baseobj
is a wire, you can provide lists for angles
, run
, idrel
, thickness
, and overhang
, for each edge in the wire to define the shape of the roof.Example:
import FreeCAD as App
import Arch, Draft
doc = App.newDocument()
rect = Draft.makeRectangle(3000, 4000)
doc.recompute()
roof = Arch.makeRoof(rect, angles=[30.,])
p1 = App.Vector(0, 0, 0)
p2 = App.Vector(1000, 1000, 0)
p3 = App.Vector(0, 2000, 0)
wire = Draft.make_wire([p1, p2, p3], closed=True)
doc.recompute()
roof1 = Arch.makeRoof(wire)
doc.recompute()