Skip to content

BIMCraft v0.5.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 22:40
· 370 commits to main since this release

BIMCraft 0.5.0: families done (a Family Editor, revolves, voids, doors and windows as families), textures and Paint, favorites kept for every project, packages for Linux and macOS, and an app that checks for new versions and updates itself.

Families

  • The Family Editor (Manage > New Family, or Edit Family on what's selected or being placed). A family's parameters, types, forms and a door's or window's plan symbols are edited as text, with a preview you can turn by dragging. Apply makes it the project's family in one undo step, Save Family and Load Family use a .json file, and Add to Favorites keeps it. What's wrong with it is said inside the window, beside the field.
  • Revolves. A form can be turned about an axis in its own plane, from one angle to another, up to a full turn. A part turn is closed by two caps and shows as a slice in plan.
  • Voids. A void form cuts the solid forms listed before it, exactly and in any shape: a hole, a notch, a sink's bowl, a sash round its pane. It is built so that a hostile or enormous shape ends with an error, never a hang.
  • Doors and windows are families. They are hosted in walls: Width and Height size the hole, Sill Height is a window's sill, and formulas can read Wall Thickness. Frame, leaf, handle, sashes and panes are forms drawn in the opening; a door's swing goes with it as a plan symbol, and a flip mirrors all of it. A new project comes with a Single Door, a Double Door, a Fixed Window and a Casement Window, the sample house is built of them, and the Door and Window tools place them. The project's own door and window types still work, and bimcraft-cli keeps using them unless a command gives a family.
  • IFC export writes each form of a family as a closed face set in its material's colour, named Family:Type.

Textures and Paint

  • A material can have a texture: a pattern drawn in code (brick, block, boards, concrete, plaster, tile, roof, fabric, metal, insulation) or a picture of your own, a PNG or a JPEG, which the project keeps as a PNG of at most 1024 pixels (up to 24 a project). The 3D view lays it on each face at its real size, by the tile's width and height, angle and offset, so brick comes out in courses and a board is as wide as you said. Manage > Materials sets all of it, with a swatch.
  • Paint (Modify > Paint, PT) lays a material over one face of a wall, floor, roof, ceiling or other element, as Revit's Paint does; Remove Paint takes it off the face clicked. A wall has an exterior and an interior face, a floor, roof or ceiling a top and a bottom.
  • Textures and paint show in the 3D view only. Plans, sections and elevations keep their patterns, and IFC carries a material's colour, not its texture or paint.

Favorites

  • Manage > Favorites keeps the materials and families you want in every project in a file of your own, in your configuration folder. Save to Favorites (Materials window) or Add to Favorites (Family Editor) puts one there; Add to Project brings it into the open project, under another name if the project already has that one. A material comes with the picture its texture is made of, and a family with the materials it uses.

Packages for Linux and macOS

  • Linux: an AppImage, a Flatpak, a deb, an rpm, an Arch package and a tarball, each for x86_64 and aarch64, and a deb, an rpm and a tarball for riscv64. They need glibc 2.35 or later (Ubuntu 22.04, Debian 12, Fedora 36), riscv64 glibc 2.39 or later. The deb, the rpm and the Arch package put bimcraft and bimcraft-cli on the path, add BIMCraft to the applications menu and open .bimcraft and .ifc files in it. The AppImage needs nothing installed, not even FUSE.
  • macOS: a universal disk image (Apple silicon and Intel, macOS 11 or later) and the command-line tool as a zip. They are signed ad hoc, so macOS asks the first time: Control-click BIMCraft, then Open.
  • Windows: the MSI, as before. It upgrades 0.4 in place, and isn't code-signed yet, so SmartScreen asks first: More info, then Run anyway.
  • Every release now lists a SHA256SUMS for all its files. The Release workflow builds every package for any commit (Actions > Release > Run workflow), and the scripts behind them are in packaging/.
  • The Linux and macOS packaging is @dansity's (#2); the Flatpak, Arch and riscv64 builds were added to it.
  • Tried: the deb, rpm, tarball, AppImage and Arch package were installed in clean Ubuntu 22.04, Debian 12, Fedora and Arch containers, where the app opened its window; the riscv64 build ran the command-line tool under emulation. Not tried: the macOS app on a Mac, a riscv64 window, the Flatpak's window.

Updates

  • The desktop checks GitHub for a newer release when it starts, on a thread of its own, so the window never waits for it. A banner offers it: Update now, Later, or Skip this version. File > Check for Updates Now looks by hand, and File > Check for updates at startup switches the check off (so does the environment variable BIMCRAFT_NO_UPDATE_CHECK, which stops every request). bimcraft-cli and the MCP server never connect to anything.
  • Update now downloads the file for this kind of install and replaces the app in place, after asking to save: the copy the Windows installer made, an AppImage in a folder you can write to, and the macOS app in a folder you can write to. A package from your distribution, a tarball, a build from source and a Windows copy running as administrator are told of the newer release, with a Download button; a Flatpak has no network and never checks.
  • What comes from the network is treated as hostile. Only this repository's releases on github.com and GitHub's release CDN are fetched, over HTTPS; a file is taken only if it is named exactly for the version and kind of install, and its SHA-256 must equal the digest GitHub lists and the release's SHA256SUMS, when it arrives and again just before it is installed. Nothing runs that failed a check, and if a step fails the old copy stays in place and a note says why.
  • This is the first release with the updater, so 0.4 and earlier can't update themselves: install 0.5.0 by hand once.
  • None of the three install paths has run for real, on Windows, on a Mac or with a real AppImage runtime. In the tests, shell scripts stand in for msiexec, hdiutil, ditto, codesign, open and the AppImage, and the README says what that leaves open. If an update fails for you, the issue form is the way to say so.

For scripts and agents

  • Two new commands, paint (PT) and favorite: 58 in all. material takes a texture; door and window take a family; family forms take an axis with from and to degrees, can be a void, and a door's or window's family takes symbols for its plan. The MCP server's ten tools are the same.

Also

  • A bug report form on GitHub Issues asks for the version, the system and what happened.
  • ROADMAP.md lays out the releases to 1.0, by @dansity (#3).
  • The README has a Downloads section for each system, an Updates section, new screenshots of textures, Paint, the Family Editor and the Materials window, and a redrawn sample house.

Known limits

  • Projects from 0.4 open in 0.5. A project saved by 0.5 doesn't open in 0.4, which refuses a file with fields it doesn't know: the file format has no version yet.
  • The Family Editor edits text, not a sketch. Sections and elevations show a family's door or window beyond their line and never cut it.
  • Textures and paint are for the 3D view; fill patterns of your own, perspective views and a section box are next.

Full Changelog: v0.4.0...v0.5.0