So C3D has a couple of conditional subassemblies. They test a condition and if it passed, the SA is allowed to continue. If it fails, the SA stops and no SA's that follow are processed. I can do this in VB.Net, but there doesn't seem to be a way (or I can't find the way) in the SAC.
Anyone have any tips on how/if this can be done?
My intended use is like the Conditional Cut and Fill, except my new SA checks the cut/fill height along the slope (Intended) to daylight instead of vertically from the insert point (Built-In). I don't want anything drawn, like the built-in conditionals, I just want the test to pass or fail and allow the user to place SA's after this condition.
Thanks.
Matt,
Check out the help WIKI in Subassembly Composer for how to do this. There is a section under "Common Workflows" on Adding Conditional Behavior to a Subassembly that shows how to do this. The key is the use of the Auxiliary points and links to make the tests. The SAC is far more powerful than the generic links are when it comes to conditionals.
There are also some example PKT files as part of the WIKI to help get you started.
Cheers,
Peter Funk
Autodesk, Inc.
A sub that can test along a slope has been on my personal wish list since the '06 version. Hopefully this thread will lead to wish fulfillment
Matt,
This can't be done with SAC right now because we don't have a way to stop processing of a branch. We are looking at ways that this could be done in the future.
Steve,
There are lots of things you could do with the SAC. If you share a picture of what you are thinking about I'd be glad to get you moving in the right direction. We've tried to make the tool so that anyone can make subassemblies to meet their specific needs.
Cheers,
Peter Funk
Autodesk, Inc.
Hello Steve
In an update to my AU2008, for my AU2009 presentation I had created a "ConditionalSlope" subassembly, although the goal for this subassembly was to utilize subassemblies for lot grading, it may work for you.
Unfortunately I have not updated the code for C3D2013.
I only stumbled onto this discussion because I was considering rewriting my paper to demonstrate how to create the subassembly using SAC , and thus eliminating the need for Vb.net skills.
Here is the link to my AU2009 presentation.
http://au.autodesk.com/?nd=class&session_id=5341
Hi Malcolm,
Reading through your course materials, I don`t think that your sub would do what I want. My scenario is similar to the one that Matt posted originally, where a sliver cut or fill situation results from a daylight slope that is near parallel to the existing ground.
Essentially what I need is a version of the ConditionalCutorFill sub which tests the height to a surface measured along a projected slope, rather than vertically up or down from the insertion point.
I believe that the behaviour of at least one of the OOTB daylight subs has been changed in recent versions of the software to act this way, but I really need a Conditional sub for complex scenarios.
Hi Steve
Yes, my "ConditionalSlope" subassembly checks for the slope between the connection point and the target.
I am guessing you are looking for a ConditionalHeight subassembly that checks for the height between the connection point and the target, given the slope from the connection.
Let me know if this is correct and if there is still a requirement for this subassembly and when I have some time (use the term loosely) I can look into modifying my subassembly. Hopefully it is easily salvageable from 2009.
What is the progress status now on control flow statements in SAC for 2014 from Development?
In the Expressions dialog boxes we it would be so helpful to have as a start:
IF(0.00<ABS({Surface Slope})<=0.01,0.03+((({Surface Slope Distance}/22.13)^0.2)*SIN(ATAN(ABS({Surface Slope})))*10.8),
IF(ABS({Surface Slope})<=0.03, 0.03+((({Surface Slope Distance}/22.13)^0.3)*SIN(ATAN(ABS({Surface Slope})))*10.8),
IF(ABS({Surface Slope})<=0.05, 0.03+((({Surface Slope Distance}/22.13)^0.4)*SIN(ATAN(ABS({Surface Slope})))*10.8),
IF(ABS({Surface Slope})<=0.09, 0.03+((({Surface Slope Distance}/22.13)^0.5)*SIN(ATAN(ABS({Surface Slope})))*10.8),
IF(1.0>ABS({Surface Slope})>0.09, (({Surface Slope Distance}/22.13)^0.5)*(SIN(ATAN(ABS({Surface Slope})))/0.0896)^0.6,0)))))
After one year later I find this topic. I need that the stop the SAC workflow. Anybody could find the way of stopping SAC?
Welcome to the world of Autodesk.
Where every Autodesk product is like dads overcrowded garage of unfinished prototypes and things he bought at random garage sales. But by the time he is ready to work on something he gets distracted with something else and never returns because he wants to develop a cloud based collaboration tool with "BIM" compliant features that will change the face of drafting and modelling forever!!!!!
But of course, please remember to continue to post about your problem. More people posting equals more kids screaming at dad to fix the swing in the backyard, eventually he will cave.
Hi all of you that are in Autodesk world already 🙂
If you writing a program ending a process is simple. SAC works like program scripting. So Ending a process can't be hard for Autodesk. That is really really simple.
May 2015 version includes the ending process functionality. If no way still, I dont wait screaming. I must try and try up to find a solution. With this way or another way.
well you can always manually write the code instead of using SAC.. might be a little time consuiming though.
I also need to create a condition in subassembly composer which if it is fulfilled to assign a subansambly in civil 3d
Can't find what you're looking for? Ask the community or share your knowledge.