Jump to content

Arch Level

From FreeCAD Documentation

Arch Level

Menu location
3D/BIM → Level
Workbenches
BIM
Default shortcut
L V
Introduced in version
-
See also
None

Description[edit | edit source]

The Arch Level tool is a special type of FreeCAD group object that has a couple of additional properties particularly suited for building levels. Particularly, they have a height property, that its children objects (walls and structures) can use to set their own height automatically. They are mostly used to organize your model.

The Arch Level is derived entirely from the Arch BuildingPart object, which is a general container to organize a building model not limited to levels or storeys. Older Level objects can be converted to the new type by right clicking on them and choosing Convert to BuildingPart.

Usage[edit | edit source]

  1. Optionally, select one or more objects to be included in your new level.
  2. There are several ways to invoke the tool:
    • Press the Level button.
    • Select the 3D/BIM → Level option from the menu.
    • Use the keyboard shortcut: L then V.

Options[edit | edit source]

  • After creating a level, you can add more objects to it by drag and dropping them in the Tree View or by using the Add Component tool.
  • You can remove objects from a level by drag and dropping them out of it the Tree View or by using the Remove Component tool.

Properties[edit | edit source]

An Arch Level object shares all properties from an Arch BuildingPart, with the DataIfc Type set to "Building Storey".

Scripting[edit | edit source]

See also: Arch API and FreeCAD Scripting Basics.

The Level tool can be used in macros and from the Python console by using the following function:

Floor = makeFloor(objectslist=None, baseobj=None, name="Floor")
  • Creates a Floor object from objectslist, which is a list of objects.

Example:

import FreeCAD, Draft, Arch

p1 = FreeCAD.Vector(0, 0, 0)
p2 = FreeCAD.Vector(2000, 0, 0)
baseline = Draft.makeLine(p1, p2)
baseline2 = Draft.makeLine(p1, -1*p2)

Wall1 = Arch.makeWall(baseline, length=None, width=150, height=2000)
Wall2 = Arch.makeWall(baseline2, length=None, width=150, height=1800)
FreeCAD.ActiveDocument.recompute()

Floor = Arch.makeFloor([Wall1, Wall2])

Building = Arch.makeBuilding([Floor])
Site = Arch.makeSite(Building)
FreeCAD.ActiveDocument.recompute()