Community
Civil 3D Forum
Welcome to Autodesk’s Civil 3D Forums. Share your knowledge, ask questions, and explore popular AutoCAD Civil 3D topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Subassembly Composer Conditional SA

17 REPLIES 17
Reply
Message 1 of 18
mathewkol
8389 Views, 17 Replies

Subassembly Composer Conditional SA

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 /
17 REPLIES 17
Message 2 of 18

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.

Message 3 of 18
mathewkol
in reply to: mathewkol

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 /
Message 4 of 18
sboon
in reply to: mathewkol

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
Message 5 of 18
peterfunkautodesk
in reply to: sboon

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.

Message 6 of 18
mathewkol
in reply to: mathewkol

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 /
Message 7 of 18
mathewkol
in reply to: mathewkol

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 /
Message 8 of 18

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

Message 9 of 18
mfernandes
in reply to: sboon

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

 

Message 10 of 18
sboon
in reply to: mfernandes

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
Message 11 of 18
mfernandes
in reply to: sboon

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.

 

 

Message 12 of 18
fcernst
in reply to: peterfunkautodesk

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 2024
Ernst Engineering
www.ernstengineering.com
Message 13 of 18

Yep no looping statements in SAC! infuriating as hell!! Kapanther
Civil 3D 2021 (Update 1), ACAD (SP1.3) MAP (HF0.4)
Infraworks 2021.1,
Win 10 -DELL Precision Notebook 7730

ceethreedee.com
Message 14 of 18
ekoneo
in reply to: ceethreedee.com

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?

Message 15 of 18
ceethreedee.com
in reply to: ekoneo

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 2021 (Update 1), ACAD (SP1.3) MAP (HF0.4)
Infraworks 2021.1,
Win 10 -DELL Precision Notebook 7730

ceethreedee.com
Message 16 of 18
ekoneo
in reply to: ceethreedee.com

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.

Message 17 of 18
ceethreedee.com
in reply to: ekoneo

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

Civil 3D 2021 (Update 1), ACAD (SP1.3) MAP (HF0.4)
Infraworks 2021.1,
Win 10 -DELL Precision Notebook 7730

ceethreedee.com
Message 18 of 18
alexpromd
in reply to: mathewkol

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.

Post to forums  

Rail Community


Autodesk Design & Make Report