Skip to content

Importing

LoomFlow has two importers, both under the file menu: click the button in the top-left of the workspace, then open the Import submenu.

Menu itemSource formatWhat it does
KiCad project / schematic… (desktop) / KiCad schematic(s)… (browser).kicad_sch / .kicad_pro, KiCad 6+Adds connectors (and optionally signals and a device) to the current document
harness.design…harness.design 0.8 JSON exportReplaces the current document with the imported one

The KiCad importer reads the schematic and extracts every placed symbol with its pins. That’s deliberately all it reads: for harness design the useful question is which connectors exist and what cavities do they have. Nets, wires, and graphics describe the PCB side of each connector, so they’re ignored.

KiCad 6, 7, 8, and 9 schematics all work — the parts of the file LoomFlow reads are the same across those versions.

  • Desktop app: choose ImportKiCad project / schematic… and pick either the .kicad_pro or the root .kicad_sch. Hierarchical designs are followed automatically — every child sheet is read from disk and merged into one project-wide symbol list. A sheet that can’t be read is reported and skipped; the rest still import.
  • Browser: choose ImportKiCad schematic(s)… and multi-select the .kicad_sch files yourself (the browser can’t follow sheet references from a single picked file). Files that fail to parse are reported; good ones still import.

Reading the file never touches your document directly — a review dialog (Import from KiCad schematic) opens first, listing every symbol with its reference, value, pin count, and library ID. Here you can:

  • Choose which symbols become connectors. Each row has a checkbox. Likely connectors are pre-checked: references starting with J, P, or X, or a library ID containing “conn”. Everything else (resistors, ICs, …) is listed unchecked so you can pull in anything the heuristic missed.
  • Create signals from pin names (on by default). Pin numbers always become cavity labels; with this on, pin names become signals, matched find-or-create by exact name against the document. A labeled schematic lands with its nets already assigned, and pins named GND join your existing GND net.
  • Mount all on a new device (on by default). Creates one layout device — the board or box the schematic describes — sized to fit, with every imported connector mounted on it in a grid. The name field is pre-filled from the sheet title (or file name); edit it before importing. See Devices.

Click Import N connectors to apply, or Cancel to walk away without changes. The whole import is a single undo step.

What the KiCad importer does and doesn’t handle

Section titled “What the KiCad importer does and doesn’t handle”

Handled:

  • Multi-unit parts — pins are collected across all units and deduped by pin number, so a part split over several unit symbols imports as one connector with the full pin set.
  • Derived symbols — library aliases using extends inherit the base symbol’s pins.
  • Reused hierarchical sheets — a sheet placed N times yields N physical parts, each with its real per-instance reference (e.g. J5, not J?).
  • Natural ordering — pins and references sort humanly: 10 after 9, A10 after A2.
  • Malformed input — truncated files and unrecognized content are tolerated; the only hard error is a file that isn’t a KiCad schematic at all.

Not imported:

  • Nets, wires, labels, junctions, graphics — only symbols and their pins.
  • Power symbols (#-prefixed references like #PWR01) — net decorations, not physical parts.
  • Pins with no name (KiCad’s ~ or empty name) — the cavity is created but gets no signal.
  • Footprints, part properties, positions — imported nodes are placed in a fresh cascade (or gridded on the new device), not at their schematic coordinates.

Importharness.design… opens a version 0.8 JSON export from harness.design as a whole document. If you have unsaved changes you’ll be asked to confirm discarding them first; the undo history is cleared and the document starts unsaved (save it under a new name).

The mapping is nearly 1:1, since LoomFlow’s document format was modeled on that format:

  • Connectors and terminals, including their schematic and layout positions
  • Wires — including cores nested inside cables and wires inside twisted pairs — become connections with their cable and twist groupings intact
  • Bundles and mates
  • Connector parts, and signals created from cavity signal names
  • Color names ("Red") decoded to hex via the default palette
  • Length and gauge units (mm/in, AWG/mm²)

Entity IDs are stable across re-imports, so bringing in a revised export lines up with the previous one instead of scrambling everything — see Collaboration.

Either way, the result is ordinary document content — edit it like anything you drew by hand:

  1. Wire cavities together in the schematic view (Schematic).
  2. Assign real connector parts from the library so the BOM has part numbers (Parts library).
  3. Route trunks and enter lengths in the layout view (Layout).
  4. Export the cut list, BOM, or drawing (Exporting).