Subassembly Composer is an application that can be installed with
Civil 3D and enables users to create their own subassemblies. You can then add
those subassemblies to Civil 3D and use them in a corridor.
During this blog, we will walk through an example to create a gabion
wall subassembly that adjusts the number of levels based on an elevation
target.
Let’s start by launching Subassembly Composer, the interface is
divided into several panels. In the packet Settings’ panel, set the subassembly
name to GabionWall. That is the name that will show in Civil 3D when the
subassembly is imported into Tool Palettes.
Next, set some input parameters to define the dimensions of the gabion baskets. These parameters will be exposed in Civil 3D in subassembly properties and can be edited.
In the same panel, change to the ‘Target Parameters’ tab and add an
elevation target, that will be used to work out the number of levels that are
needed. Our subassembly will have a minimum of 1 and a maximum of three levels
but you can easily add new levels following the same process.
We can now focus on the flowchart, which is where we can build the
logic of the program. You can click and drag the corresponding nodes from the
Tool Box to the Flowchart and then change the connections between them if
needed. This is how the finished graph should look like.We will now go through
the process.
Insert a sequence in the Flowchart and rename it Codes. A sequence
can be used to group a number of nodes that are related, helping you organise
the chart. Inside the sequence, add a few ‘Define Variable’ nodes to create
some variables that will define the point, link, and shape codes. By creating
variables, we reduce the risk of typing the same code differently if it needs
to be assigned multiple times. It will also make it easier to change the codes
once the chart is finished.
Add a Point node after the Codes sequence in the origin and assign a
code of TopInside. This point represents the attachment point of the
subassembly.
Next, we define a variable NumberofLevels to control the number of
levels that are needed to be based on the elevation of the attachment point, the
elevation target, and the height of each gabion basket. Assign the following
formula to the value of the variable:
CType(Math.Ceiling((P1.Elevation-BottomOfWall.Elevation)/Height),
Integer)
Now define another variable Currentlevel to keep track of the level
we are in and initialise it with a value of 1.
Include the geometry of the top level in a ‘Level 1’ sequence by
adding Point, Link, and Shape nodes and assigning the codes as indicated in the
preview below. At the end of the sequence, increase the current level by one
using a ‘Set Variable Value’ node.
Insert a
Decision node to determine if we continue to the next level or if we stop at
this point. The condition to check is ‘CurrentLevel<= NumberOfLevels’.If it
evaluates to True we will proceed to level 2, otherwise, the execution will end.
Copy the sequence used for level 1 and modify it accordingly to
reflect the geometry of level 2. Note how you can drag the BottomOfWall
elevation target and the preview will update, modifying the number of levels as
needed.
Create level 3
(and subsequent levels if desired) following the same logic and save the packet
file as ‘GabionWall.pkt’. There just remains to add the subassembly to Civil
3D.
Open Tool Palettes in Civil 3D, right-click on one of the existing
tabs and add a new palette.
Right-click on the newly created tab and import the subassembly:
The subassembly should now display in Tool Palettes, ready to be
inserted into an assembly.
It can now be used on a corridor where the baseline represents the
top-level of the gabion wall, the bottom level is given by an elevation target
(e.g. a profile) and the length of the baskets is controlled by the frequency.
If you need assistance with content creation, application automation,
project support and more, visit our website to explore our consultancy
services:
https://www.excitech.co.uk/Services/Consultancy/Services-Consultancy?specialism=4
Alternatively,
develop your software skills with us by attending one of our scheduled or
private training courses. Our full list of courses can be found here:
https://www.symetri.co.uk/training/training-courses