Skip to content

Latest commit

 

History

History
705 lines (471 loc) · 24.1 KB

CHANGELOG.md

File metadata and controls

705 lines (471 loc) · 24.1 KB

Changelog

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.

Unreleased

Added

  • Added BTLx_From_Params GH component which contains the definiton for class DeferredBTLxProcessing to allow directly defining BTLx parameters and passing them to the model.
  • Added Shape to BTLx output, showing finished element geometry in BTLx Viewer instead of just blank.

Changed

Removed

[0.14.2] 2025-02-17

Added

Changed

Removed

[0.14.1] 2025-02-17

Added

  • Added missing arguments in configuration set component.
  • Added FlipDirection flag to flip stud direction of a slab.

Changed

  • Fixed rotating stud direction in slab causes breaks plates and connections.
  • Restructured some Gh Toolboxes & added Icons for Walls & Slabs

Removed

[0.14.0] 2025-02-17

Added

  • Added distance_segment_segment to compas_timber.utils
  • Added BTLxFromGeometryDefinition class to replace the depricated FeatureDefinition. This allows deferred calculation of BTLx processings.
  • Added from_shapes_and_element class method to Drilling, JackRafterCut, and DoubleCut as a wrapper for their geometry based constructors for use with BTLxFromGeometryDefinition.
  • Added YButtJoint which joins the ends of three joints where the cross_beams get a miter cut and the main_beam gets a double cut.
  • Added JackRafterCutProxy to allow for deferred calculation of the JackRafterCut geometry thus improving visualization performance.
  • Added class "WallPopulator" to compas_timber.design.
  • Added class "WallPopulatorConfigurationSet" to compas_timber.design.
  • Added class "WallSelector" to compas_timber.design.
  • Added class "AnyWallSelector" to compas_timber.design.
  • Added class "LConnectionDetailA" to compas_timber.design.
  • Added class "LConnectionDetailB" to compas_timber.design.
  • Added class "TConnectionDetailA" to compas_timber.design.
  • Added from_brep to `compas_timber.elements.Wall.
  • Added from_polyline to `compas_timber.elements.Wall.
  • Added WallJoint to compas_timber.connections.
  • Added error handling when BTLx processing from geometry fails in GH.
  • Added new Slab class to compas_timber.elements.
  • Added Slab GH component.

Changed

  • Updated Grasshopper Toolbox and Icons
  • Fixed ValueErrorException in as_dict() method of BTLxProcessingParams class by ensuring precision specifiers are used with floats.
  • Removed model argument from BTLxWriter in the GH component and updated it to always return the BTLx string.
  • Fixed a bug in compas_timber.Fabrication.StepJointNotch related to the orientation and strut_inclination parameters.
  • Fixed the error message when beam endpoints coincide, e.g. when a closed polyline is used as input.
  • Changed index input of ShowFeatureErrors and ShowJoiningErrors do have default value of 0.
  • Fixed spelling of BeamJoinningError to BeamJoiningError.
  • Changed process_joinery() method to handle BeamJoiningError exceptions and return them. Also updated Model GH component.
  • Updated add_joint_error() method in DebugInformation class to handle lists.
  • Changed compas_timber.fabrication.Lap so that the volume is generated fully from the relevant BTLx params.
  • Refactored compas_timber.connections.LapJoint to comply with the new system.
  • Changed THalfLapJoint, LHalfLapJoint, XHalfLapJoint from compas_timber.connections so that they use the Lap BTLx processing.
  • Renamed all X/T/LHalfLapJoint classes to X/T/LLapJoint.
  • Enhanced lap behavior for optimal beam orientation in LapJoint class.
  • Fixed restore_beams_from_keys in LMiterJoint to use the correct variable names.
  • Reworked DoubleCut to more reliably produce the feature and geometry with the from_planes_and_element class method.
  • Renamed intersection_box_line() to intersection_beam_line_param(), which now take a beam input and outputs the intersecting ref_face_index.
  • Added max_distance argument to JointRule subclasses and GH components so that max_distance can be set for each joint rule individually.
  • Changed referenced to beam in Drilling to element.
  • Changed Drill Hole and Trim Feature GH components to generate the relevant BTLxProcessing type rather than the deprecated FeatureDefinition type.
  • Changed Show_beam_faces gh component to Show_ref_sides, which now takes an int index and shows the corresponding face including origin corner.
  • Bug fixes after adding max_distance to joint defs.
  • Using new JackRafterCutProxy in LMiterJoint, LButtJoint and TButtJoint.
  • Changed input type from Element to Beam in components that currently only support beams.
  • Fixed drilling GH component not taking diameter as a string.
  • Reworked Wall class to be defined with a standard polyline, frame and thickness.
  • Changed labels in Show_ref_sides GH component to be 1-based to match the spec.

Removed

[0.13.0] 2025-01-13

Added

  • Added API documentation for design and error packages.
  • Added guess_joint_topology_2beams and set_default_joints functions to design.__init__.py.
  • Added list_input_valid, item_input_valid, get_leaf_subclasses, rename_gh_input functions to ghpython.__init__.py.
  • Added Instruction, Model3d, Text3d, LinearDimension, BuildingPlanParser classes to planning.__init__.py.
  • Added subprocessings property to BTLxProcessing to allow nesting of processings.

Changed

  • Fixed comma incompatible with py27 in Slot module.
  • Updated the API documentation for connections, elements, fabrication, ghpython, planning packages.
  • Refactored all btlx process references to processing, including base classes, properties, variables, and docstrings.
  • Refactored BTLx to BTLxWriter in the compas_timber.Fabrication package.

Removed

  • Removed BeamJoiningError from connections.__init__.py.
  • Removed duplicate entries from the __all__ list in the elements.__init__.py module.
  • Removed package compas_timber._fabrication.
  • Removed btlx_processes anf joint_factories from compas_timber.fabrication package.
  • Removed .btlx files from .gitignore.

[0.12.0] 2025-01-07

Added

  • Added new base class for timber elements TimberElement.
  • Added property is_beam to Beam class.
  • Added property is_plate to Plate class.
  • Added property is_wall to Wall class.
  • Added side_as_surface to compas_timber.elements.Beam.
  • Added opposing_side_index to compas_timber.elements.Beam.
  • Added Plate element.
  • Added attribute plates to TimberModel.
  • 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 in connections package.
  • Added new compas_timber._fabrication.DoubleCut.
  • Added new compas_timber.connections.TBirdsmouthJoint.
  • Added new method add_group_element to TimberModel.
  • Added new method has_group to TimberModel.
  • Added new method get_elements_in_group to TimberModel.
  • Added attribute is_group_element to TimberElement.
  • Added JointRule.joints_from_beams_and_rules() static method
  • Added Element.reset() method.
  • Added new fasteners.py module with new Fastener element type.
  • Added new compas_timber._fabrication.Lap.
  • Added Joint_Rule_From_List GH Component that takes lists of beams to create joints.
  • Added MIN_ELEMENT_COUNT and MAX_ELEMENT_COUNT class attributes to Joint.
  • Added element_count_complies class method to Joint.
  • Added compas_timber.fasteners.FastenerTimberInterface.
  • Added compas_timber.connections.BallNodeJoint.
  • Added compas_timber.elements.BallNodeFastener.
  • Added transform() method to Feature types.
  • Added FastenerInterfaceComponent GH component.
  • Added ShowElementsByType GH Component.
  • Added fasteners property to TimberModel.
  • Added BTLx_Feature GH component.
  • Added CT_Beams_From_Mesh GH component.
  • Added new compas_timber._fabrication.FrenchRidgeLap.
  • Added new compas_timber.connections.LFrenchRidgeLapJoint.
  • Added new compas_timber._fabrication.Tenon and compas_timber._fabrication.Mortise.
  • Added new compas_timber.connections.TTenonMortiseJoint.
  • Added create override to BallNodeJoint.
  • Added PlateFastener class.
  • Added errors directory and __init__.py module.
  • Added new compas_timber._fabrication.Slot.
  • Added new compas_timber._fabrication.SlotParams.

Changed

  • Changed incorrect import of compas.geometry.intersection_line_plane() to compas_timber.utils.intersection_line_plane()
  • Renamed intersection_line_plane to intersection_line_plane_param.
  • Renamed intersection_line_line_3D to intersection_line_line_param.
  • Adjusted functions in compas_timber._fabrication.DovetailMortise and compas_timber.connections.TDovetailJoint.
  • Added conda-forge channel to installation instructions.
  • Fixed **kwargs inheritance in __init__ for joint modules: LMiterJoint, TStepJoint, TDovetailJoint, TBirdsmouthJoint.
  • Fixed GUID assignment logic from **kwargs to ensure correct fallback behavior for joint modules: LMiterJoint, TStepJoint, TDovetailJoint, TBirdsmouthJoint.
  • Changed model.element_by_guid() instead of direct elementsdict[] access for beam retrieval in joint modules: LMiterJoint, TStepJoint, TDovetailJoint, TBirdsmouthJoint.
  • Reworked the model generation pipeline.
  • Reworked comply methods for JointRules.
  • Fixed error with angle and inclination calculation in compas_timber._fabrication.JackRafterCut
  • Changed compas_timber.connections.TButtJoint and compas_timber.connections.LButtJoint by using the new implemented BTLx Processes to define the Joints
  • Changed DirectJointRule to allow for more than 2 elements per joint.
  • Changed beam objects get added to Joint.elements in Joint.create().
  • Fixed bug in vizualization of tenon/mortise in compas_timber._fabrication.StepJointand compas_timber._fabrication.StepJointNotch.
  • Changed model.process_joinery()so that it calls joint.check_elements_compatibility() before adding extensions and features.
  • Fixed incorrect data keys for beam_guid in the __data__ property for joint modules: LMiterJoint, TStepJoint, TDovetailJoint, TBirdsmouthJoint, LFrenchRidgeLapJoint.
  • Fixed JointRuleFromList GH component.
  • Changed TButtJoint to take an optional PlateFastener.
  • Moved FeatureApplicationError, BeamJoiningError, and FastenerApplicationError to errors.__init__.py.
  • Fixed a bug that occured when parallel beams are joined in the BallNodeJoint.
  • Fixed L_TopoJointRule, T_TopoJointRule and X_TopoJointRule for cases where Joint.SUPPORTED_TOPOLOGY is a single value or a list.
  • Fixed bug in JointRule.joints_from_beams_and_rules() that caused failures when topology was not recognized.
  • Implemented max_distance parameter in JointRule.joints_from_beams_and_rules() and JointRule.comply methods.
  • Bux fixes from extra comma argument and max_distance not implemented in DirectRule.comply.

Removed

  • Removed module compas_timber.utils.compas_extra.
  • Removed a bunch of spaghetti from CT_model GH component.
  • Removed module compas_timber.fabrication.joint_factories.t_butt_factory.
  • Removed module compas_timber.fabrication.joint_factories.l_butt_factory.
  • Removed module compas_timber.connections.butt_joint.
  • Removed module compas_timber.connections.french_ridge_lap.
  • Removed module compas_timber.fabrication.joint_factories.french_ridge_factory.
  • Removed module compas_timber.fabrication.btlx_processes.btlx_french_ridge_lap.

[0.11.0] 2024-09-17

Added

  • Added bake component for Plate elements.
  • Added default paramteters for Surface Model in the GH Component

Changed

  • Fixed wrong image file paths in the Documentation.
  • Changed TimberModel.beams to return generator of Beam elements.
  • Changed TimberModel.walls to return generator of Wall elements.
  • Changed TimberModel.plates to return generator of Plate elements.
  • Changed TimberModel.joints to return generator of Joint elements.
  • Fixed polyline analysis for generating SurfaceModel
  • Fixed errors in debug info components.

Removed

[0.10.1] 2024-09-11

Added

Changed

  • Implemented a workaround for #280.

Removed

[0.10.0] 2024-09-11

Added

  • Added SurfaceModelJointOverride GH Component.
  • Added Plate element.
  • Added attribute plates to TimberModel.
  • Added SurfaceModelJointOverride GH Component
  • Added ShowSurfaceModelBeamType GH Component
  • Re-introduced attribute key in Beam.
  • Added attribute key to Plate.
  • Added generation of plate elements to the SurfaceModel

Changed

  • Updated documentation for Grasshopper components.
  • Fixed missing input parameter in SurfaceModelOptions GH Component.
  • Fixed error with tolerances for SurfaceModels modeled in meters.
  • Renamed beam to element in different locations to make it more generic.
  • Fixed AttributeError in SurfaceModel.
  • Updated example scripts.
  • Calling process_joinery in SurfaceModel.
  • Changed how BeamDefinition and Plate types are handled in SurfaceModel
  • Changed the get_interior_segment_indices function to work when there are multiple openings.
  • Renamed ShowSurfaceModelBeamType to ShowBeamsByCategory.
  • Changed SurfaceModel component input handling to give warnings instead of errors.

Removed

  • Removed add_beam from TimberModel, use add_element instead.
  • Removed add_plate from TimberModel, use add_element instead.
  • Removed add_wall from TimberModel, use add_element instead.

[0.9.1] 2024-07-05

Added

  • Added ref_frame attribute to Beam.
  • Added ref_sides attribute to Beam.
  • Added ref_edges attribute to Beam.

Changed

  • Fixed error in BakeWithBoxMap component.
  • Added add_extensions to Joint interface.
  • Added process_joinery to TimberModel.
  • Features are not automatically added when creating a joint using Joint.create().
  • Features are not automatically added when de-serializing.

Removed

[0.9.0] 2024-06-14

Added

  • Added birdsmouth parameter to butt_joint which applies a btlx_double_cut process to the part.
  • Added BTLxDoubleCut BTLx Processing class.
  • Added BTLx support for TButtJoint and LButtJoint
  • Added BTLxLap process class.

Changed

  • Moved module workflow from package ghpython to new package design.
  • Moved compas_timber.ghpython.CategoryRule to compas_timber.design.
  • Moved compas_timber.ghpython.DirectRule to compas_timber.design.
  • Moved compas_timber.ghpython.JointRule to compas_timber.design.
  • Moved compas_timber.ghpython.TopologyRule to compas_timber.design.
  • Moved compas_timber.ghpython.JointDefinition to compas_timber.design.
  • Moved compas_timber.ghpython.FeatureDefinition to compas_timber.design.
  • Moved compas_timber.ghpython.DebugInfomation to compas_timber.design.

Removed

[0.8.1] 2024-06-13

Added

Changed

  • Fixed import errors in GH components.
  • Updated GH example file.

Removed

[0.8.0] 2024-06-12

Added

  • Added attribute geometry to Beam.
  • Added center_of_mass property to Assembly class.
  • Added volume property to Assembly class.
  • Added new element type Wall.

Changed

  • Reduced some boilerplate code in Joint subclasses.
  • Added argument beams to Joint.__init__() which expects tuple containing beams from implementing class instance.
  • Renamed TimberAssembly to TimberModel.
  • Renamed compas_timber.assembly to compas_timber.model.
  • Renamed compas_timber.parts to compas_timber.elements.
  • Based Beam on new compas_model.elements.Element.
  • Based TimberModel on new compas_model.model.Model.
  • Based Joint on new compas_model.interactions.Interaction.
  • Removed support for Python 3.8.

Removed

  • Removed joint_type attributes from all Joint classes.
  • Removed argument cutoff from LMiterJoint as it was not used anywhere.
  • Removed argument gap from TButtJoint as it was not used anywhere.
  • Removed argument gap from FrenchRidgeLap 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().

[0.7.0] 2024-02-15

Added

  • Added debug_geometries attribute to BeamJoiningError.
  • (Re)added BooleanSubtraction feature.
  • Added flag modify_cross to L-Butt joint.
  • Added flag reject_i to L-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 to LButtJoint and TButtJoint
  • 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 to CategoryRule to filter when joints get applied
  • Added new SurfaceAssembly class
  • Added GH component SurfaceAssembly which directly generates a TimberAssembly with standard wall framing from a planar surface.
  • Added GH component SurfaceAssemblyOptions
  • Added GH component CustomBeamDimensions for SurfaceAssembly

Changed

  • 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 with compas.datastructures.assembly and generates building plan acording to type.
  • Changed GH Categories for joint rules.
  • Made beam_side_incident a staticmethod of Joint and reworked it.
  • Extended DecomposeBeam component to optionally show beam frame and faces.
  • Changed CategoryJointRule and DirectJointRule 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 in CategoryRule.topos
  • Changed TopologyJoints GH component to DefaultJoints Component, which applies default joints based on topology.

Removed

  • 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 from DrillHole component.
  • Fixed broken TrimmingFeature component.
  • Removed all JointOption components. these are accessed in context menu of joint rules.

[0.6.1] 2024-02-02

Added

Changed

Removed

[0.6.0] 2024-02-02

Added

Changed

  • Updated COMPAS dependency to 2.0.0!

Removed

[0.5.1] 2024-01-31

Added

  • Added missing documentation for module ghpython.workflow.py.
  • Added missing documentation for package connections.
  • compas_timber.__version__ now returns current version.

Changed

Removed

[0.5.0] 2024-01-31

Added

  • Added class DebugInformation to workflow.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.

Changed

  • Feature application now fails more gracefully (un-processed geometry is returned).
  • Attempting to join beams which are already joined raises BeamJoiningError instead of AssemblyError
  • Joint.add_features which fails to calculate anything raises BeamJoiningError.
  • Changed COMPAS dependency to compas==2.0.0beta.4.
  • Assembly component shows blanks when CeateGeometry flag is set to False.

Removed

  • Removed JointDef GH components.
  • Removed AutomaticJoint GH Component. Joint rules are now input directly into TimberAssembly.

[0.4.0] 2024-01-24

Added

  • Added fabrication package
  • Added BTLx as a wrapper for TimberAssembly to generate .btlx files for machining timber beams
  • Added BTLxPart as wrapper for Beam
  • Added joint_factories folder and factories for existing joints except X-HalfLap
  • Added btlx_processes folder and processes JackCut and FrenchRidgeHalfLap
  • 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 for TimberAssembly to generate .btlx files for machining timber beams
  • added BTLxPart as wrapper for Beam
  • added joint_factories folder and factories for existing joints except X-HalfLap
  • added btlx_processes folder and processes JackCut and FrenchRidgeHalfLap
  • added BTLx Grasshopper component
  • added FrenchRidgeHalfLap joint

Changed

  • Changed Beam definition to include blank_frame and blank_length attributes
  • Replaced Artist with the new Scene.
  • Changed type hint for argument Centerline of GH component BeamFromCurve to Guid.
  • 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() in BakeBoxMap which was causing GH document to lock (cannot drag).

Removed

[0.3.2] 2023-11-17

Added

  • Added now released COMPAS 2.0.0a1 to requirements.

Changed

  • Explicitly added attribute key to (de)serialization of Beam.

Removed

[0.3.1] 2023-09-18

Added

Changed

Removed

[0.3.0] 2023-09-18

Added

  • Added new joint type: Half-lap joint.

Changed

  • Beam transformed geometry with features is available using property geometry.
  • Adapted the Data interface of Beam and Assembly according to the changes in COMPAS core.
  • Beam geometry is created on demand.
  • Adapted the Data interface of Joint and its implementations according to the changes in COMPAS core.
  • Explicitly choosing Grasshopper context for the Artist in ShowAssembly component.

Removed

  • Removed method Beam.get_geometry.

[0.2.16] 2023-05-16

Added

Changed

Removed

[0.2.15] 2023-05-15

Added

Changed

Removed

[0.2.14] 2023-05-15

Added

Changed

Removed

[0.2.13] 2023-05-15

Added

Changed

Removed

[0.2.12] 2023-05-15

Added

Changed

Removed

[0.2.11] 2023-05-15

Added

Changed

Removed

[0.2.10] 2023-05-14

Added

Changed

Removed

[0.2.9] 2023-05-12

Added

Changed

Removed

[0.2.8] 2023-05-12

Added

Changed

Removed

[0.2.7] 2023-05-12

Added

Changed

Removed

[0.2.6] 2023-05-12

Added

Changed

Removed

[0.2.5] 2023-05-12

Added

Changed

Removed

[0.2.4] 2023-05-12

Added

Changed

Removed

[0.2.3] 2023-05-12

Added

Changed

Removed

[0.2.2] 2023-05-12

Added

Changed

Removed

[0.2.1] 2023-05-12

Added

Changed

Removed

[0.2.0] 2023-05-11

Added

  • Integrated RTree search for neighboring beams using Rhino and CPython plugins.

Changed

Removed