Skip to content

Releases: carlopav/bonsai_salad

v0.0.6

Choose a tag to compare

@carlopav carlopav released this 02 Jul 21:44

ifc_dxf

  • New Accurate export method (default): real OCC/HLR section cuts for walls/columns via ifcopenshell's native SVG serializer (same engine as Bonsai's own SVG export), fused and hatched exactly like the Approximate pipeline. Doors, windows, furniture and sanitary fixtures use native 2D plan symbols with shared per-type blocks.
  • Below-cut "view" walls/columns (visible but not sliced by the section plane) are now shown, reusing the Approximate pipeline's Shapely profile projection.
  • Approximate pipeline unchanged in behaviour; both methods now share the DXF writer, template handling, curve extraction and plan-symbol logic (refactored into curves.py / plan_symbols.py / dxf_writer.py).
  • Options panel moved above the Export button, with a new Approximate/Accurate toggle and descriptive tooltips.

Root README

  • Documents the two ifc_dxf export methods; removed a stale note about Pset_DXFSource (dropped from dxf_ifc earlier).

v0.0.5

Choose a tag to compare

@carlopav carlopav released this 02 Jul 11:41

dxf_ifc

  • Source panel: import the full drawing, a single block, or a single layer (auto-scanned when toggled)
  • Destination panel: overwrite the active element's context, pick another context, or create a new IfcAnnotation assigned to a spatial container
  • INSERT blocks expanded inline via ezdxf virtual_entities() instead of IfcMappedItem (fixes a Bonsai switch_representation crash)
  • Removed the Pset_DXFSource writer

ifc_dxf

  • Walls with IfcMaterialLayerSetUsage now decompose their section into per-material-layer hatches (IfcWall_Hatches_), coloured by a keyword-based classifier (concrete/insulation/masonry/wood)
  • New IfcWall_LayersSubdivision layer draws the boundary lines between material layers
  • Fixed a regression where enabling material-layer hatches suppressed the standard hatch on IfcColumn and any wall without a material layer set

v0.0.4

Choose a tag to compare

@carlopav carlopav released this 28 Jun 22:41

Changes

  • Refactored ifc_dxf core into ifc_dxf/core/ package (no Blender dependency)
  • DXF template moved to ifc_dxf/templates/
  • Annotative text styles and cartiglio auto-fill from IFC drawing data
  • Annotation scale XREC updated per viewport scale
  • Test infrastructure: tests/ifc_dxf/ with pytest suite and first IFC fixture
  • English documentation in ifc_dxf/README.md

v0.0.3

Choose a tag to compare

@carlopav carlopav released this 28 Jun 14:57

ifc_dxf

  • New template ifc_dxf_template_metric.dxf: cartiglio A1 con campi Identification, Name, Scale, Date; stili di testo annotative; dimstyle dimensions_metric_m con frecciaquota
  • Compilazione automatica del cartiglio all'export (dati dalla vista IFC, data generazione in dd.mm.yyyy)
  • Viewport annotation scale aggiornata al volo in base alla scala del disegno
  • Dimstyle export usa dimensions_metric_m dal template (no più BONSAI_DIM extra)

v0.0.2

Choose a tag to compare

@carlopav carlopav released this 28 Jun 08:32

ifc_dxf: annotative TEXT export

TEXT annotations are now exported as annotative DXF entities, responding to CANNOSCALE changes in BricsCAD/AutoCAD.

Changes

  • Annotation scale: full architectural scale list in ACAD_SCALELIST; current scale set via AcDbVariableDictionary/CANNOSCALE
  • Annotative text styles: paper-space heights in template (regular=2.5mm, large=3.5mm, etc.)
  • Annotative TEXT entities: AcadAnnotative XDATA + extension dict (AcDbContextDataManager → ACDB_ANNOTATIONSCALES → ACDB_TEXTOBJECTCONTEXTDATA_CLASS) referencing the current SCALE handle
  • Font fallback: resolves to best available system font from Bonsai CSS chain at export time
  • Fix: DXFTagStorage coordinate group codes written as separate 10/20/30 tags

v0.0.1

Choose a tag to compare

@carlopav carlopav released this 27 Jun 14:29

bonsai_salad v0.0.1

First release. Contains two tools:

sheets_to_pdf

Export Bonsai drawing sheets to PDF directly from Blender.

ifc_dxf

Pure-Python IFC → DXF exporter (ezdxf + shapely + ifcopenshell), no Rust or OCC required.

Features:

  • Bucket A: 2D native plan representations (IfcMappedItem, IfcIndexedPolyCurve, IfcTrimmedCurve, arcs, ellipses) → exact DXF LINE/ARC/CIRCLE/ELLIPSE entities, no tessellation
  • Bucket B: wall sections from IfcExtrudedAreaSolid via Shapely — LWPOLYLINE outline + HATCH solid fill, openings subtracted
  • Slab occlusion: elements hidden under floor slabs (XY footprint check, multi-building safe)
  • Overhead windows/doors: fill elements above cut plane re-added after frustum culling, drawn on IfcWindow_Overhead / IfcDoor_Overhead layers (dashed)
  • Block naming via GlobalId (unique), BYBLOCK colour/linetype/lineweight on block entities
  • Layer styles via layer_styles.json (ACI color, lineweight, linetype)
  • Only layers actually used in the drawing are written to the DXF
  • $LTSCALE from EPset_Drawing.Scale (e.g. 1/100 → 0.01)
  • Zoom extents set automatically on open