| 
 | 
| Menu location | 
|---|
| Utils → Check | 
| Workbenches | 
| BIM | 
| Default shortcut | 
| None | 
| Introduced in version | 
| - | 
| See also | 
| Arch CloseHoles | 
This tool checks the current document or the selected objects for non-solid Part or BIM objects, that might give problems, since most operations of the BIM Workbench require solid objects.
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)
objectslist contain only solids.includehidden is True it will include all hidden objects, otherwise it will omit them from the search.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 BIM or Draft wires and profiles that aren't solids.
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.Example:
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)
FreeCAD.ActiveDocument.recompute()
Wall2 = Arch.makeWall(None, length=2000, width=200, height=1000)
FreeCAD.ActiveDocument.recompute()
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)
print(list_bad)
 User documentation
 User documentation