Subassembly Composer Conditional SA

mathewkol
Advisor
Advisor

Subassembly Composer Conditional SA

mathewkol
Advisor
Advisor

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.

 

condition.png

 

Thanks.

Matt Kolberg
SolidCAD Professional Services
http://www.solidcad.ca /
0 Likes
Reply
8,912 Views
17 Replies
Replies (17)

peterfunkautodesk
Autodesk
Autodesk

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.



Peter Funk
Autodesk, Inc.

mathewkol
Advisor
Advisor
Thanks for the reply Peter, but I'm aware of that functionality. What I want is for my SA to behave exactly lilke the existing subs. I don't want this sub to draw anything. I want the user to place other subs after mine that will be drawn in a true condition but not in a flase condition.
If you can show me how to use the SAC to duplicate the conditionalcutfill, I will be able to modify it for my use.

I hope I've explained it well enough.
Matt Kolberg
SolidCAD Professional Services
http://www.solidcad.ca /
0 Likes

sboon
Mentor
Mentor

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 Smiley Happy

Steve
Expert Elite Alumnus
0 Likes

peterfunkautodesk
Autodesk
Autodesk

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.



Peter Funk
Autodesk, Inc.

0 Likes

mathewkol
Advisor
Advisor
Steve, I've done this and it is very easy. In fact, I have one that I created a couple of years ago. Had you asked... 🙂
Matt Kolberg
SolidCAD Professional Services
http://www.solidcad.ca /
0 Likes

mathewkol
Advisor
Advisor
Thanks Peter. That's the answer I was expecting; I just wanted confirmation that I wasn't missing something.
Matt Kolberg
SolidCAD Professional Services
http://www.solidcad.ca /
0 Likes

consultora
Contributor
Contributor

Im waiting for "stop processing" events in the SAC too.

0 Likes

Anonymous
Not applicable

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

 

0 Likes

sboon
Mentor
Mentor

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.

 

Steve
Expert Elite Alumnus
0 Likes

Anonymous
Not applicable

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.

 

 

0 Likes

fcernst
Mentor
Mentor

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:

 

  1. a Do While loop function
  2. Case Statement - for organization of our current compound IF statements, such as this impressive parenthetical jungle of an example from Dixon and Civil3DReminders:

 

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)))))

 

 



Fred Ernst, PE
C3D 2025
Ernst Engineering
www.ernstengineering.com
0 Likes

ceethreedee.com
Collaborator
Collaborator
Yep no looping statements in SAC! infuriating as hell!! Kapanther
Civil 3D 2025 / Infraworks 2025
Win 10 -DELL Precision Notebook 7680

Want FREE TOOLS! Come get my free tools for civil 3d at website below!
https://ceethreedee.com/ceethreedee-tools
0 Likes

ekoneo
Advocate
Advocate

After one year later I find this topic. Smiley Very Happy  Smiley Surprised I need that the stop the SAC workflow. Anybody could find the way of stopping SAC?

0 Likes

ceethreedee.com
Collaborator
Collaborator

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.

 

 

Civil 3D 2025 / Infraworks 2025
Win 10 -DELL Precision Notebook 7680

Want FREE TOOLS! Come get my free tools for civil 3d at website below!
https://ceethreedee.com/ceethreedee-tools

ekoneo
Advocate
Advocate

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.

0 Likes

ceethreedee.com
Collaborator
Collaborator

well you can always manually write the code instead of using SAC.. might be a little time consuiming though.

Civil 3D 2025 / Infraworks 2025
Win 10 -DELL Precision Notebook 7680

Want FREE TOOLS! Come get my free tools for civil 3d at website below!
https://ceethreedee.com/ceethreedee-tools
0 Likes

alexpromd
Participant
Participant

I also need to create a condition in subassembly composer which if it is fulfilled to assign a subansambly in civil 3d

0 Likes