Arch Check

From FreeCAD Documentation
Jump to navigation Jump to search
This page is a translated version of the page Arch Check and the translation is 17% complete.
Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎română • ‎svenska • ‎čeština • ‎русский
Arrow-left.svg Previous: Arch MergeWalls.svg Merge Walls

Arch Check.svg Arch Check

Arch → Utilities → Check
Standard genväg
Introducerad i version
Se även
Arch CloseHoles


This tool checks the current document or the selected objects for non-solid Workbench Part.svg Part or Workbench Arch.svg Arch objects, that might give problems, since most operations of the Arch Workbench require solid objects.


  1. Press the Arch Check.svg Check button, or ArchUtilitiesArch Check.svg Check in the top menu.


See also: Arch API and FreeCAD Scripting Basics.

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

list_bad = check(objectslist, includehidden=False)
  • Checks if the given objects in objectslist contain only solids.
  • If includehidden is True it will include all hidden objects, otherwise it will omit them from the search.
  • Returns list_bad, a list with the objects that are not derived from a Part::Feature, or components that are not closed, not valid, don't contain solids, or that contain faces that are not part of any solid. This is used to detect Arch or Draft wires and profiles that aren't solids.
    • Each element in list_bad is another list [object, message], where object is the detected non-solid, and message indicates the reason why it was included in this list.


import FreeCAD, Draft, Arch

p1 = FreeCAD.Vector(0, 0, 0)
p2 = FreeCAD.Vector(2000, 0, 0)
baseline = Draft.makeLine(p1, p2)
Wall1 = Arch.makeWall(baseline, length=None, width=150, height=2000)

Wall2 = Arch.makeWall(None, length=2000, width=200, height=1000)

Circle = Draft.makeCircle(450)
Wire = Draft.makeWire([FreeCAD.Vector(1000, 0, 0), FreeCAD.Vector(1500, 1000, 0), FreeCAD.Vector(2500, -1000, 0)])

list_bad = Arch.check([Wall1, Wall2, Circle, Wire], includehidden=True)
Arrow-left.svg Previous: Arch MergeWalls.svg Merge Walls