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 size and link numbering

17 REPLIES 17
SOLVED
Reply
Message 1 of 18
Buzz0m
1141 Views, 17 Replies

Subassembly size and link numbering

Hi,

I was wondering if anybody else has run into problems with subasemblies created in SAC? I have a single subassembly with maybe 50 links (3 different link codes) and lots and lots of points (both auxiliary and regular points). The subassembly works fine in C3D, but its painfully slow to edit in SAC.

 

At one point when I added the third link code and the respective links the file size tripled and the editing of the subassembli in SAC got really sticky and slow. I also noticed that the link codes jumped from something like L60, L61... to L340, L341 and the same happened with new points. Is it possible there are some kind of "phantom lines and points" (which aren't displayed but drain resources) in the .pkt-file?

 

Obviously I've done something wrong during the process, but I'm wondering is there a way to fix this and are there perhaps some limitations to how many links and points you can have in one subassembly?

 

I'll attach the subassembly for you guys to try it out in SAC. The flowchart is a mess, but try editing anything and it will take ages before SAC responds again... atleast on my PC.

 

Cheers!

17 REPLIES 17
Message 2 of 18
KMercier_C3D
in reply to: Buzz0m

I don't see the attachment to open but there is definitely a limit in SAC that the flowcharts just become too complex for it to process smoothly and there is severe lag. The only real solution is learning to make flowcharts that are as clean and concise as possible and potentially breaking complex subassemblies into separate subassemblies when possible.



Kati Mercier, P.E. | LinkedIn | AutoCAD Civil 3D Certified Professional
Pronouns: She/Her
Co-author of "Mastering AutoCAD Civil 3D 2013"
AU2019 Speaker::: CES321590: Analyze and Revise Existing Subassembly Composer PKT Files for AutoCAD Civil 3D
AU2017 Speaker::: CI125544: Analyze and Devise in Subassembly Composer
AU2012 Speaker::: CI3001: Reverse Engineering with Subassembly Composer for AutoCAD Civil 3D
AU2011 Speaker::: CI4252: Create Subassemblies That Think Outside the Box With Subassembly Composer for AutoCAD® Civil 3D®

Message 3 of 18
Buzz0m
in reply to: KMercier_C3D

Sry, I reattached the subassembly to my original post...

 

That's what I figured, but the leap from 41kb to 127kb doesn't correlate with the changes I made in the subassembly (pkt-file). Have you heard of corrupted pkt-files? I did alot of copy and pasting in order to get the conditional and dynamic functions of the subassembly to work, and I'm afraid something happened during that stage of the design (maybe too many CTRL + V commands at once?)...

Message 4 of 18
doni49
in reply to: Buzz0m

Can you give a little info as to what it's trying to accomplish?  I opened it and it looks very complicated.  I'm cleaning it up a little to make it easier to follow (and I'll post it when I've done that) but if I knew what it's doing, I'd be better able to assist.

 

I think part of my trouble is that it's not in english.



Don Ireland
Engineering Design Technician




If a reply solves your issue, please remember to click on "Accept as Solution". This will help other users looking to solve a similar issue. Thank you.


Please do not send a PM asking for assistance. That's what the forums are for. This allows everyone to benefit from the question asked and the answers given.

Message 5 of 18
doni49
in reply to: doni49

Ok.  I cleaned it up a little to make it easier to follow the flow.

 

I didn't change anything that it does since I don't know what it's trying to do.

 

 



Don Ireland
Engineering Design Technician




If a reply solves your issue, please remember to click on "Accept as Solution". This will help other users looking to solve a similar issue. Thank you.


Please do not send a PM asking for assistance. That's what the forums are for. This allows everyone to benefit from the question asked and the answers given.

Message 6 of 18
KMercier_C3D
in reply to: Buzz0m

I think one of the things that will help you the most is utilizing Sequences. I have no idea how the back end of the SAC software really works but I have learned that it takes less computing power for the program to run through a sequence than a flowchart (since flowcharts have to analyze each of the little nodes even if they don't connect to anything whereas a sequence just happens sequentially). I've just shifted the starting "Define Variable" elements into a sequence and it dropped the file size from 127KB to 110KB. I am sure it will be even more 'compact' and run smoother in SAC if you also move the points/links into Sequences as well instead of sub-flowcharts. 

 

 



Kati Mercier, P.E. | LinkedIn | AutoCAD Civil 3D Certified Professional
Pronouns: She/Her
Co-author of "Mastering AutoCAD Civil 3D 2013"
AU2019 Speaker::: CES321590: Analyze and Revise Existing Subassembly Composer PKT Files for AutoCAD Civil 3D
AU2017 Speaker::: CI125544: Analyze and Devise in Subassembly Composer
AU2012 Speaker::: CI3001: Reverse Engineering with Subassembly Composer for AutoCAD Civil 3D
AU2011 Speaker::: CI4252: Create Subassemblies That Think Outside the Box With Subassembly Composer for AutoCAD® Civil 3D®

Message 7 of 18
doni49
in reply to: KMercier_C3D


@KMercier_C3D wrote:

I think one of the things that will help you the most is utilizing Sequences. I have no idea how the back end of the SAC software really works but I have learned that it takes less computing power for the program to run through a sequence than a flowchart (since flowcharts have to analyze each of the little nodes even if they don't connect to anything whereas a sequence just happens sequentially). I've just shifted the starting "Define Variable" elements into a sequence and it dropped the file size from 127KB to 110KB. I am sure it will be even more 'compact' and run smoother in SAC if you also move the points/links into Sequences as well instead of sub-flowcharts. 

 

 



One of the sub-flowcharts has a number of Decision trees so that one will need to remain as a sub flowchart (although a lot of what's being done in it could be put in a sequence within that sub flowchart).

 

As to moving all this stuff from the sub flowchart to a sequence:  when you try to cut/paste points from one place to another, the paste operation will cause the points to be renumbered (because until the new point gets copied in, the original stays put and that results in two points trying to use the same point number).  So start a second session of SAC and paste your points into there.  The points will get removed from your original location and will retain the same pooint numbers in the "new file".  Then go back to your file and open the sequence in which you want to paste the points because the original points are no longer in the file, there will be no conflicts when you paste the points back in.

 

EDIT:  This method will only work with the Points.  The Variable definitions will still come over with "_copy" appended to the names.



Don Ireland
Engineering Design Technician




If a reply solves your issue, please remember to click on "Accept as Solution". This will help other users looking to solve a similar issue. Thank you.


Please do not send a PM asking for assistance. That's what the forums are for. This allows everyone to benefit from the question asked and the answers given.

Message 8 of 18
doni49
in reply to: doni49

I've been sorting through the assembly and I've come across one thing that should help a LITTLE BIT.

 

All your Decision objects have an if statement as the condition (for example:  IF(tplo<>0, TRUE, FALSE)).  But the Decision object is itself an if statement.

 

The first portion of your if statement is the "Condition".  Then if this condition is true, the TRUE side of the Decision will run otherwise the FALSE side will run.

 



Don Ireland
Engineering Design Technician




If a reply solves your issue, please remember to click on "Accept as Solution". This will help other users looking to solve a similar issue. Thank you.


Please do not send a PM asking for assistance. That's what the forums are for. This allows everyone to benefit from the question asked and the answers given.

Message 9 of 18
doni49
in reply to: doni49

One of your sub-flowcharts contains three sub-charts that are not attached to anything  (see the first image).  As such, they'll never run -- they're just making the file larger.

 

I only found these when I tried to move them to make things easier to follow.

 

SAC_dynassu_PVA_Detatched Flowcharts.png

 

In addition, within the same sub-flowchart, you've got a bunch of Decision objects and I think you might be better served to use a Switch object.  As it is now, SAC will go through EVERY part of EVERY one of those Decisions.  If you use a Switch, it will evaluate each condition and only perform for the ones that meet the condition.  EDIT:  The more that it as to do, the more time it'll take to do it.

 

SAC_dynassu_PVA_UseSwitch.png

 

EDIT:  Here's my version of your file.  I made the flow charts a little easier to follow and moved some things from flow charts to sequences.



Don Ireland
Engineering Design Technician




If a reply solves your issue, please remember to click on "Accept as Solution". This will help other users looking to solve a similar issue. Thank you.


Please do not send a PM asking for assistance. That's what the forums are for. This allows everyone to benefit from the question asked and the answers given.

Message 10 of 18
doni49
in reply to: doni49

I've always found the SAC to be fascinating (it's very much like programming which I like) and I like trying to find a way to optimize code.  So I've continued to work with your file.  I now think I understand the purpose of all those Decision objects (in which I suggested a Switch statement) and no longer suggest a Switch there.

 

But there a LOT of Decision ojbects and they all include an if statement in the conditions.

 

As I said the Decsion object IS an if statement.  So that's basically the same as saying:

 

=IF(IF(kpst1>7, True, False) = True, "Perform True Side", "Perform False Side")

 

 



Don Ireland
Engineering Design Technician




If a reply solves your issue, please remember to click on "Accept as Solution". This will help other users looking to solve a similar issue. Thank you.


Please do not send a PM asking for assistance. That's what the forums are for. This allows everyone to benefit from the question asked and the answers given.

Message 11 of 18
doni49
in reply to: Buzz0m

Attached are two versions of your file.  In the first (the same file name as the original), I left those Sequences that aren't attached to anything.  I changed all your Decision objects as I previously described (except within those detached Sequences).

 

Then I did a save as and deleted those unattached Sequences.  Having done that, the file is down to less than 60kb (less than have the original size).



Don Ireland
Engineering Design Technician




If a reply solves your issue, please remember to click on "Accept as Solution". This will help other users looking to solve a similar issue. Thank you.


Please do not send a PM asking for assistance. That's what the forums are for. This allows everyone to benefit from the question asked and the answers given.

Message 12 of 18
Buzz0m
in reply to: doni49

The goal:

as you may have figured out the subassembly is of a (hard rock) tunnel. There are two surfaces which depict the rock surface ("holvi" and "pohja"). There is a third surface ("RB") which depicts the shotcrete which usually in my part of the world is applied on tunnel roof and wall surfaces. All these surfaces are linked to each other (I'm aware I could do this with multiple subassemblies but I've opted not to... atleas for now). All the parameters are acronyms and translating them wouldn't necessary give much help. All I can say is that if a parameter has the letter "o" in the end it refers to the right side of the assembly and "v" corresponds to the left side. I'm trying to create one single subassembly, which could be used for most of the tunnels we design in our firm. The tunnel can vary from symmetric dimensions to assymetric. The tunnel floor is rarely flat, so there is a bunch of parameters for describing this as well.

 

There are a few input parameters that are of the Yes/No-type. The "PVA" makes the subassembly point definition values to change gradually from one value to another (it uses the "baseline.station" and "baseline.regionstart" to calculate the factors pvakl and pvaka used in the gradual change...)

 

I'll attach a pdf which hopefully will clarify what all the parameters do...and yes, it's also in Finnish (some of it) 😃

Message 13 of 18
Buzz0m
in reply to: doni49

The decision sequences I made imitate the "For"-loop in coding. The loop is needed because I have to be able to adjust how many links the tunnel roof is defined by. Imagine having a tunnel with the span of 20 m vs a tunnel with the span of 6 m. For the one with the span 20m I'll need more links to model the surface with adequate precision and vice verse with the 6m tunnel. I can't use arcs to model the tunnel roof because the tunnel slope affects the vertical height of the whole subassembly making the circles ellipses. To my knowledge this can not be done in any other way...? I posted a question a while ago about this and Katie helped me back then...

http://forums.autodesk.com/t5/AutoCAD-Civil-3D-General/How-to-model-corridors-with-assemblies-perpen...

 

 

 

Message 14 of 18
Buzz0m
in reply to: doni49

yeah about that... I got it to work one way back when I started trying out SAC and didn't give it another thought before you pointed this out! Thanks for that! As you can see from the original pkt-file all the "coding-like" work I've put into the SAC has been done in a not so neat way, and cleaning it up is ranked high on my to-do-list. I'll change the If-statements in the the decision-elements when I find the time...

 

The same goes for the orphan sub-flowcharts... they are earlier versions of my development attempts...

CORRECTION: they are not earlier work... these orphans probably have spawned during my copy/paste:ing of elements in the decision trees (the "for"-loop)... deleting them makes the file size smaller!

Message 15 of 18
Buzz0m
in reply to: doni49

Is there a way to create a pkt-file from the .zip-folders you attached? When I open them in explorer there are 7 different files...

Message 16 of 18
KMercier_C3D
in reply to: Buzz0m

The autodesk forums used to not let us post pkt files directly so we had to change the .pkt to .zip to post. Now we can post .pkt files directly but some still choose to post them as .zip. Just manually change the letters at the end of the file to .pkt and it should open as normal.


Kati Mercier, P.E. | LinkedIn | AutoCAD Civil 3D Certified Professional
Pronouns: She/Her
Co-author of "Mastering AutoCAD Civil 3D 2013"
AU2019 Speaker::: CES321590: Analyze and Revise Existing Subassembly Composer PKT Files for AutoCAD Civil 3D
AU2017 Speaker::: CI125544: Analyze and Devise in Subassembly Composer
AU2012 Speaker::: CI3001: Reverse Engineering with Subassembly Composer for AutoCAD Civil 3D
AU2011 Speaker::: CI4252: Create Subassemblies That Think Outside the Box With Subassembly Composer for AutoCAD® Civil 3D®

Message 17 of 18
Buzz0m
in reply to: KMercier_C3D

Doni and Kati,

I'm really grateful for you help! Thank you! 🙂

 

I marked Donis post as the solution even though it's obvious there are many ways of making subassemblies work smoother (which you, Kati, pointed out).

 

Cheers!

Message 18 of 18
doni49
in reply to: KMercier_C3D


@KMercier_C3D wrote:
The autodesk forums used to not let us post pkt files directly so we had to change the .pkt to .zip to post. Now we can post .pkt files directly but some still choose to post them as .zip. Just manually change the letters at the end of the file to .pkt and it should open as normal.


After we were told the site had been updated to allow direct posting of pkt files, I tested it and the site still wouldn't allow me.  If I remember correctly, it was determined that it was an issue with the browser as some browsers are able to do it.



Don Ireland
Engineering Design Technician




If a reply solves your issue, please remember to click on "Accept as Solution". This will help other users looking to solve a similar issue. Thank you.


Please do not send a PM asking for assistance. That's what the forums are for. This allows everyone to benefit from the question asked and the answers given.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Rail Community


Autodesk Design & Make Report