All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added new base class for timber elements
TimberElement
. - Added property
is_beam
toBeam
class. - Added property
is_plate
toPlate
class. - Added property
is_wall
toWall
class. - Added
side_as_surface
tocompas_timber.elements.Beam
. - Added
opposing_side_index
tocompas_timber.elements.Beam
. - Added
Plate
element. - Added attribute
plates
toTimberModel
. - Added new temporary package
_fabrication
. - Added new
compas_timber._fabrication.JackRafterCut
. - Added new
compas_timber._fabrication.JackRafterCutParams
. - Added new
compas_timber._fabrication.Drilling
. - Added new
compas_timber._fabrication.DrillingParams
. - Added new
compas_timber._fabrication.StepJoint
. - Added new
compas_timber._fabrication.StepJointNotch
. - Added new
compas_timber._fabrication.DovetailTenon
. - Added new
compas_timber._fabrication.DovetailMortise
. - Added new
compas_timber.connections.TStepJoint
. - Added new
compas_timber.connections.TDovetailJoint
. - Added new
utilities
module inconnections
package. - Added new
compas_timber._fabrication.DoubleCut
. - Added new
compas_timber.connections.TBirdsmouthJoint
.
- Changed incorrect import of
compas.geometry.intersection_line_plane()
tocompas_timber.utils.intersection_line_plane()
- Renamed
intersection_line_plane
tointersection_line_plane_param
. - Renamed
intersection_line_line_3D
tointersection_line_line_param
.
- Removed module
compas_timber.utils.compas_extra
.
- Added bake component for
Plate
elements. - Added default paramteters for
Surface Model
in the GH Component
- Fixed wrong image file paths in the Documentation.
- Changed
TimberModel.beams
to return generator ofBeam
elements. - Changed
TimberModel.walls
to return generator ofWall
elements. - Changed
TimberModel.plates
to return generator ofPlate
elements. - Changed
TimberModel.joints
to return generator ofJoint
elements. - Fixed polyline analysis for generating
SurfaceModel
- Fixed errors in debug info components.
- Implemented a workaround for gramaziokohler#280.
- Added
SurfaceModelJointOverride
GH Component. - Added
Plate
element. - Added attribute
plates
toTimberModel
. - Added
SurfaceModelJointOverride
GH Component - Added
ShowSurfaceModelBeamType
GH Component - Re-introduced attribute
key
inBeam
. - Added attribute
key
toPlate
. - Added generation of
plate
elements to theSurfaceModel
- Updated documentation for Grasshopper components.
- Fixed missing input parameter in
SurfaceModelOptions
GH Component. - Fixed error with tolerances for
SurfaceModel
s modeled in meters. - Renamed
beam
toelement
in different locations to make it more generic. - Fixed
AttributeError
inSurfaceModel
. - Updated example scripts.
- Calling
process_joinery
inSurfaceModel
. - Changed how
BeamDefinition
andPlate
types are handled inSurfaceModel
- Changed the
get_interior_segment_indices
function to work when there are multiple openings. - Renamed
ShowSurfaceModelBeamType
toShowBeamsByCategory
. - Changed
SurfaceModel
component input handling to give warnings instead of errors.
- Removed
add_beam
fromTimberModel
, useadd_element
instead. - Removed
add_plate
fromTimberModel
, useadd_element
instead. - Removed
add_wall
fromTimberModel
, useadd_element
instead.
- Added
ref_frame
attribute toBeam
. - Added
ref_sides
attribute toBeam
. - Added
ref_edges
attribute toBeam
.
- Fixed error in BakeWithBoxMap component.
- Added
add_extensions
toJoint
interface. - Added
process_joinery
toTimberModel
. - Features are not automatically added when creating a joint using
Joint.create()
. - Features are not automatically added when de-serializing.
- Added
birdsmouth
parameter tobutt_joint
which applies abtlx_double_cut
process to the part. - Added
BTLxDoubleCut
BTLx Processing class. - Added BTLx support for
TButtJoint
andLButtJoint
- Added
BTLxLap
process class.
- Moved module
workflow
from packageghpython
to new packagedesign
. - Moved
compas_timber.ghpython.CategoryRule
tocompas_timber.design
. - Moved
compas_timber.ghpython.DirectRule
tocompas_timber.design
. - Moved
compas_timber.ghpython.JointRule
tocompas_timber.design
. - Moved
compas_timber.ghpython.TopologyRule
tocompas_timber.design
. - Moved
compas_timber.ghpython.JointDefinition
tocompas_timber.design
. - Moved
compas_timber.ghpython.FeatureDefinition
tocompas_timber.design
. - Moved
compas_timber.ghpython.DebugInfomation
tocompas_timber.design
.
- Fixed import errors in GH components.
- Updated GH example file.
- Added attribute
geometry
toBeam
. - Added
center_of_mass
property to Assembly class. - Added
volume
property to Assembly class. - Added new element type
Wall
.
- Reduced some boilerplate code in
Joint
subclasses. - Added argument
beams
toJoint.__init__()
which expects tuple containing beams from implementing class instance. - Renamed
TimberAssembly
toTimberModel
. - Renamed
compas_timber.assembly
tocompas_timber.model
. - Renamed
compas_timber.parts
tocompas_timber.elements
. - Based
Beam
on newcompas_model.elements.Element
. - Based
TimberModel
on newcompas_model.model.Model
. - Based
Joint
on newcompas_model.interactions.Interaction
. - Removed support for Python
3.8
.
- Removed
joint_type
attributes from allJoint
classes. - Removed argument
cutoff
fromLMiterJoint
as it was not used anywhere. - Removed argument
gap
fromTButtJoint
as it was not used anywhere. - Removed argument
gap
fromFrenchRidgeLap
as it was not used anywhere. - Removed class
JointOptions
as not used anymore. - Removed module
compas_timber.consumers
. - Removed unused method
TButtJoint.get_cutting_plane()
.
- Added
debug_geometries
attribute toBeamJoiningError
. - (Re)added
BooleanSubtraction
feature. - Added flag
modify_cross
toL-Butt
joint. - Added flag
reject_i
toL-Butt
joint. - Added new
NullJoint
. - Added
mill_depth
argument to butt joints, with geometric representation of milled recess in cross beam. - Added
ButtJoint
class with methods common toLButtJoint
andTButtJoint
- Added new
L_TopologyJointRule
,T_TopologyJointRule
,X_TopologyJointRule
GH components - Added GH component param support functions in
compas_timber.ghpython.ghcomponent_helpers.py
- Added
topos
attribute toCategoryRule
to filter when joints get applied - Added new
SurfaceAssembly
class - Added GH component
SurfaceAssembly
which directly generates aTimberAssembly
with standard wall framing from a planar surface. - Added GH component
SurfaceAssemblyOptions
- Added GH component
CustomBeamDimensions
forSurfaceAssembly
BeamFromCurve
GH component accepts now referenced Rhino curves, referenced Rhino object IDs and internalized lines.BeamFromCurve
GH component accepts now referenced Rhino curves, referenced Rhino object IDs and internalized lines.- Fixed
FeatureError
when L-Butt applies the cutting plane. - Fixed T-Butt doesn't get extended to cross beam's plane.
SimpleSequenceGenerator
updated to work withcompas.datastructures.assembly
and generates building plan acording to type.- Changed GH Categories for joint rules.
- Made
beam_side_incident
astaticmethod
ofJoint
and reworked it. - Extended
DecomposeBeam
component to optionally show beam frame and faces. - Changed
CategoryJointRule
andDirectJointRule
to a dynamic interface where joint type is selected with right click menu - Changed
Assembly
GH component to apply category joints if the detected topology is inCategoryRule.topos
- Changed
TopologyJoints
GH component toDefaultJoints
Component, which applies default joints based on topology.
- Removed component
ShowBeamFrame
. - Changed GH Categories for joint rules
BrepGeometryConsumer
continues to apply features even after the first error.DrillHole
component calculates length from input line.DrillHole
has default diameter proportional to beam cross-section.- Removed input
Length
fromDrillHole
component. - Fixed broken
TrimmingFeature
component. - Removed all
JointOption
components. these are accessed in context menu of joint rules.
- Updated COMPAS dependency to
2.0.0
!
- Added missing documentation for module
ghpython.workflow.py
. - Added missing documentation for package
connections
. compas_timber.__version__
now returns current version.
- Added class
DebugInformation
toworkflow.py
. - Added new component
ShowFeatureErrors
. - Added new component
ShowJoiningErrors
. - Added
FeatureApplicator
classes which report errors during feature application. - Added
L-HalfLapJoint
. - Added
T-HalfLapJoint
. - Added
ShowTopologyTypes
GH Component.
- Feature application now fails more gracefully (un-processed geometry is returned).
- Attempting to join beams which are already joined raises
BeamJoiningError
instead ofAssemblyError
Joint.add_features
which fails to calculate anything raisesBeamJoiningError
.- Changed COMPAS dependency to
compas==2.0.0beta.4
. - Assembly component shows blanks when
CeateGeometry
flag is set toFalse
.
- Removed
JointDef
GH components. - Removed
AutomaticJoint
GH Component. Joint rules are now input directly intoTimberAssembly
.
- Added
fabrication
package - Added
BTLx
as a wrapper forTimberAssembly
to generate .btlx files for machining timber beams - Added
BTLxPart
as wrapper forBeam
- Added
joint_factories
folder and factories for existing joints exceptX-HalfLap
- Added
btlx_processes
folder and processesJackCut
andFrenchRidgeHalfLap
- Added
BTLx
Grasshopper component - Added
FrenchRidgeHalfLap
joint - Added
DrillHole
Feature. - Added
DrillHoleFeature
Grasshopper component. - added
JointOptions
GH Components for all current joint types. This allows joint parameter definition in GH - added
DirectJointRules
GH Component - added
TopologyJointRules
GH Component - added
BTLx
as a wrapper forTimberAssembly
to generate .btlx files for machining timber beams - added
BTLxPart
as wrapper forBeam
- added
joint_factories
folder and factories for existing joints exceptX-HalfLap
- added
btlx_processes
folder and processesJackCut
andFrenchRidgeHalfLap
- added
BTLx
Grasshopper component - added
FrenchRidgeHalfLap
joint
- Changed
Beam
definition to includeblank_frame
andblank_length
attributes - Replaced
Artist
with the newScene
. - Changed type hint for argument
Centerline
of GH componentBeamFromCurve
toGuid
. - Curve ID of beam curves are now always stored in
Beam.attributes["rhino_guid"]
. - Fixed
FindBeamByGuid
component. - Bumped required COMPAS version to
2.0.0beta.2
. - Changed docs theme to the new
sphinx_compas2_theme
. - Re-worked component
BakeBoxMap
to advanced mode. - Removed call to
rs.Redraw()
inBakeBoxMap
which was causing GH document to lock (cannot drag).
- Added now released COMPAS
2.0.0a1
to requirements.
- Explicitly added attribute
key
to (de)serialization ofBeam
.
- Added new joint type: Half-lap joint.
- Beam transformed geometry with features is available using property
geometry
. - Adapted the
Data
interface ofBeam
andAssembly
according to the changes in COMPAS core. - Beam geometry is created on demand.
- Adapted the
Data
interface ofJoint
and its implementations according to the changes in COMPAS core. - Explicitly choosing
Grasshopper
context for theArtist
inShowAssembly
component.
- Removed method
Beam.get_geometry
.
- Integrated RTree search for neighboring beams using Rhino and CPython plugins.