Arch Pipe

From FreeCAD Documentation
THIS COMMAND IS PART OF THE INTEGRATED BIM WORKBENCH IN V1.0
This page has been updated for that version.

Arch Pipe

Menu location
3D/BIM → Pipe
Workbenches
BIM
Default shortcut
P I
Introduced in version
0.17
See also
None

Description

The Arch Pipe tool allows to create pipes from scratch, or from selected objects. The selected objects must be Part-based (Draft, Sketch, etc..) and contain one and only one open Wire.

Usage

  1. Optionally, select a linear Part shape such as a Draft Line, a Draft Wire or an open Sketch.
  2. Invoke this command using several methods:
    • Pressing the Pipe button on the toolbar.
    • Pressing the P then I keyboard shortcut.
    • Pressing the 3D/BIM → Pipe entry from the top menu.

Options

Properties

Data

Component

  • DataBase (Link): The base wire of this pipe, if any.

For the other properties in the group see Arch Component.

Pipe

  • DataDiameter (Length): The diameter of this pipe, if its DataProfile Type is Circle.
  • DataHeight (Length): The height of this pipe, if its DataProfile Type is Rectangle.
  • DataLength (Length): The length of this pipe, if not based on a wire.
  • DataOffset End (Length): The offset from the end point of the pipe. Automatically set if an Arch PipeConnector is added at this point to make the pipe fit the connector. See Typical workflow below.
  • DataOffset Start (Length): The offset from the start point of the pipe. Idem.
  • DataProfile (Link): The base profile of this pipe. If not set, the pipe profile is determined by DataProfile Type.
  • DataProfile Type (Enumeration): The profile of this pipe. Only used if DataProfile is not set. The options are: Circle, Square or Rectangle.
  • DataWall Thickness (Length): The wall thickness of this pipe.
  • DataWidth (Length): The width of this pipe, if its DataProfile Type is Square or Rectangle.

Typical workflow

  • Start by placing sanitary/hydraulic appliance items (below is an imported step file). You turn these objects into Arch Equipments by selecting them, and pressing the Arch Equipment button.

  • Arch Equipments now have a new SnapPoints property, which is a list of 3D vectors. This allows you to add custom snap points, to which you can snap when the new Draft Special snap button is turned on. Currently that property is only available to Python, though. In the case above I added a new snap point at the exit of the WC appliance. The vectors inside SnapPoints appear on the model as white dots:
FreeCAD.ActiveDocument.Equipment.SnapPoints=[FreeCAD.Vector(0,0,100)]

  • With the new "Snap Special" Draft Snap, you can now snap to these custom points:

  • Now we can draw our piping using Draft Lines, Draft Wires, or Sketches. The best way, though, is using only Draft Lines:

  • There is now a new Draft Slope tool that allows to change the slope of Draft lines, to, for example, 5% (0.05). So we can quickly give our waste lines a correct slope. Only z coordinates are change by this tool, so we only need to snap them back to each other, the top projection will stay unchanged.

  • We now only have to select all our lines, and press the Arch Pipe button. Arch Pipe works with any Part-based object that contains one and only one open wire.

  • We can now create connections by selecting 2 or 3 coincident tubes, and press the Arch PipeConnector button. If 3 pipes are selected, two of them must be aligned in order to create a tee element:

  • Changing the connectors radius doesn't change the length of the underlying base line, only the resulting tube (by changing their OffsetStart or OffsetEnd property). So you can still draw your line layout with only straight lines, without the need to care about curves and radius.

It is also possible to create Arch Pipes without a base line, in this case use its "Length" property to define the length.

Scripting

See also: Arch API and FreeCAD Scripting Basics.

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

pipe = makePipe(baseobj=None, diameter=0, length=0, placement=None, name="Pipe")
  • Creates a pipe object from the given baseobj and diameter.
    • baseobj is a Draft Line or Draft Wire.
    • If baseobj is omitted, a straight pipe can be created with just the diameter and the length in the Z direction.
  • If a placement is given, it is used.
import Draft, Arch

p1 = FreeCAD.Vector(1000, 0, 0)
p2 = FreeCAD.Vector(2500, 200, 0)
p3 = FreeCAD.Vector(3100, 1000, 0)
p4 = FreeCAD.Vector(3500, 500, 0)
line = Draft.make_wire([p1, p2, p3, p4])

pipe = Arch.makePipe(line, 200)
FreeCAD.ActiveDocument.recompute()

pipe2 = Arch.makePipe(diameter=120, length=3000)
FreeCAD.ActiveDocument.recompute()