jshial
March 15, 2018, 3:06am
1
Hi all,
I failed to create a rectangular shaft opening with Spring.Shaft.ByCurves.
It worked on circular boundary, so for rectangular boundary, I figured it requires the boundary as a whole instead of 4 separate lines. Even though, I’ve managed to combine 4 lines into a Polycurve or rectangle. It still failed.
jshial
March 15, 2018, 3:10am
3
Sry about an extra reply for images. How does this node work ?
Thx in advance.
jshial
March 16, 2018, 2:07am
4
A big thanks to WombatDynamo.
Though I still don’t understand how Spring.Shaft.ByCurves works, I went for an alternative way for rectangular openings, Opening.ByPathTypeAndLevel. Hope it’s helpful.
Not sure if it should be considered as a solution since it doesn’t explain how Spring.Shaft.ByCurves work but it’s pretty handy.
Have a look at the input type:
The node will work with either a flat list of curves, which will be promoted to a list of lists and use those curves to create a single shaft, or nested lists of curves, which will create multiple shafts, one per each list. There’s a sample file, but it might be a bit dated:
<Workspace Version="0.8.2.2392" X="102.99" Y="172.025" zoom="0.8425" Name="Home" Description="" RunType="Manual" RunPeriod="1000" HasRunWithoutCrash="True">
<NamespaceResolutionMap>
<ClassMap partialName="Point" resolvedName="Autodesk.DesignScript.Geometry.Point" assemblyName="ProtoGeometry.dll" />
<ClassMap partialName="Plane" resolvedName="Autodesk.DesignScript.Geometry.Plane" assemblyName="ProtoGeometry.dll" />
<ClassMap partialName="Vector" resolvedName="Autodesk.DesignScript.Geometry.Vector" assemblyName="ProtoGeometry.dll" />
<ClassMap partialName="Color.Geometry" resolvedName="DSCore.Color" assemblyName="DSCoreNodes.dll" />
</NamespaceResolutionMap>
<Elements>
<Dynamo.Nodes.DSFunction guid="34e9b243-880f-48df-b99a-2a9164d2a9da" type="Dynamo.Nodes.DSFunction" nickname="Geometry.Intersect" x="862" y="-49" isVisible="true" isUpstreamVisible="true" lacing="Shortest" isSelectedInput="False" assembly="ProtoGeometry.dll" function="Autodesk.DesignScript.Geometry.Geometry.Intersect@Autodesk.DesignScript.Geometry.Geometry" />
<DSRevitNodesUI.ElementsOfCategory guid="a998b0b6-d4c1-4024-894f-a088d861c886" type="DSRevitNodesUI.ElementsOfCategory" nickname="All Elements of Category" x="195" y="-6" isVisible="true" isUpstreamVisible="true" lacing="Disabled" isSelectedInput="False" />
<DSRevitNodesUI.Categories guid="4e7b1fde-78b5-4de3-9263-5c3279bd14fe" type="DSRevitNodesUI.Categories" nickname="Categories" x="-12" y="-8" isVisible="true" isUpstreamVisible="true" lacing="Disabled" isSelectedInput="True" index="830:StructuralColumns" />
<Dynamo.Nodes.DSFunction guid="55cf5405-ac3c-46d1-9095-6e54720b9e89" type="Dynamo.Nodes.DSFunction" nickname="Surface.PerimeterCurves" x="1226.5" y="-49" isVisible="true" isUpstreamVisible="true" lacing="Shortest" isSelectedInput="False" assembly="ProtoGeometry.dll" function="Autodesk.DesignScript.Geometry.Surface.PerimeterCurves" />
<Dynamo.Nodes.DSFunction guid="b12022b3-a7bd-4c10-b611-972f5446228f" type="Dynamo.Nodes.DSFunction" nickname="Flatten" x="1089.5" y="-51" isVisible="true" isUpstreamVisible="true" lacing="Shortest" isSelectedInput="False" assembly="BuiltIn" function="Flatten@var[]..[]" />
<Dynamo.Nodes.DSFunction guid="24c6ab12-844a-4316-bc44-95cb7ae3bbd0" type="Dynamo.Nodes.DSFunction" nickname="Element.Geometry" x="427.5" y="-48" isVisible="true" isUpstreamVisible="true" lacing="Shortest" isSelectedInput="False" assembly="RevitNodes.dll" function="Revit.Elements.Element.Geometry" />
<Dynamo.Nodes.DSFunction guid="a875ea05-8e9c-4f55-867e-64d9c9ef9a36" type="Dynamo.Nodes.DSFunction" nickname="Flatten" x="587" y="-48" isVisible="true" isUpstreamVisible="true" lacing="Shortest" isSelectedInput="False" assembly="BuiltIn" function="Flatten@var[]..[]" />
<Dynamo.Nodes.DSFunction guid="1874bee7-9bcd-4681-8e5b-93f425145a40" type="Dynamo.Nodes.DSFunction" nickname="Point.ByCoordinates" x="124.5" y="89" isVisible="true" isUpstreamVisible="true" lacing="Shortest" isSelectedInput="False" assembly="ProtoGeometry.dll" function="Autodesk.DesignScript.Geometry.Point.ByCoordinates@double,double,double">
<PortInfo index="0" default="True" />
<PortInfo index="1" default="True" />
<PortInfo index="2" default="True" />
</Dynamo.Nodes.DSFunction>
This file has been truncated. show original
The FloorOpening.ByCurves node works in a similar manner, however you need to provide the appropriate host floor instead of levels.
1 Like
jshial
March 16, 2018, 10:41am
6
I’ll give it a try. Thx, Dimitar!
Top
January 12, 2021, 10:29am
7
I like add symbolic for shaft and combine multi shaft small to group big, do we have a way? please