Στην πιο πρόσφατη ενημέρωση της γεννήτριας συνδυασμού φορτίου, έχουμε απλοποιήσει τις εσωτερικές λειτουργίες της μονάδας και προσθέσαμε την ακόλουθη λειτουργικότητα:
- Η δημιουργία συνδυασμού φορτίου ορίζεται από ένα μόνο αρχείο .json (Σχήμα) για κάθε πρότυπο.
- Οι ομάδες φόρτωσης και οι συνδυασμοί μπορούν να δημιουργηθούν χωρίς να χρειάζεται να εκχωρήσετε πρώτα φορτία στο χώρο μοντελοποίησης S3D.
- Μοτίβα, τα οποία βασίζονται σε παλιά τα “Αναπτύξτε τα φορτία ανέμου” Το σχήμα λυγισμού της κατασκευής σχεδιάζεται και θα εμφανιστεί ένα αναδυόμενο παράθυρο που θα σας ενημερώσει για τον συντελεστή φορτίου λυγισμού, τώρα δουλεύετε με οποιεσδήποτε θήκες φορτίου.
Ονοματολογία
Στην τελευταία έκδοση της γεννήτριας συνδυασμού φορτίου, το όνομα φόρτωσης που χρησιμοποιήθηκε για πολλά πράγματα:
- Λειτουργήστε ως μοναδικό αναγνωριστικό.
- Διαφοροποίηση μεταξύ φορτίου σούπερ θήκη και θήκη φόρτωσης, και απαιτούν πάντα μία τιμή σε καθένα (που οδηγεί σε παράξενα όπως Νεκρός: νεκρός).
- Παραμείνετε αναγνώσιμος από τον άνθρωπο, όλο αυτό το διάστημα παραμένει αρκετά μικρό για αναπτυσσόμενα μενού με σύναψη λέξεων (Ζω: Q-dist-roof-δάπεδο).
Στην πιο πρόσφατη ενημέρωση, χωρίσαμε τα ονόματα φόρτωσης σε σύμβολα, τα οποία είναι συμπαγή και χρησιμοποιούνται όταν ο χώρος είναι περιορισμένος (κατά την ονομασία των συνδυασμών φορτίου για παράδειγμα: 1.25Δ1 + 1.5ο + 1.5Ld + 0.5Σλ + 0.5Τ), και ετικέτες, η οποία θα είναι περιγραφική (χρησιμοποιείται για παράδειγμα σε αναπτυσσόμενα μενού). Και τα δυο σύμβολα και ετικέτες θα πρέπει να είναι μοναδικό σε ένα δεδομένο πρότυπο. Θα επιτρέψουμε επίσης φορτία να ονομαστεί το ίδιο με το φορτίο σούπερ θήκη, συνήθως για την προεπιλεγμένη περίπτωση φόρτωσης (που χρησιμοποιείται πιο συχνά). Τα δύο παραδείγματα που χρησιμοποιήθηκαν παραπάνω θα χωριστούν έτσι:
{"ΡΕ": "Νεκρός"}
{"Ldr": "Ζω - Συμπυκνωμένος, Στέγες, Πάτωμα"}
ο σύμβολο πρέπει να αποτελείται τουλάχιστον από ένα κεφαλαίο γράμμα, που ορίζει την υπερπερίπτωση. ο σούπερ θήκη είναι μια νέα έννοια, χρησιμοποιείται για την ομαδοποίηση παρόμοιων περιπτώσεων φορτίου που συνήθως λειτουργούν μαζί. ο σούπερ θήκη Η ετικέτα δίνεται στην αρχή της ετικέτας της θήκης φόρτωσης (πριν την παύλα). Στο παραπάνω παράδειγμα (Ευρωκώδικας) η θήκη φορτίου Ldr θα ήταν μέρος της υπερθήκης L (ονομάζεται Live στην ετικέτα), παράλληλα με άλλες θήκες όπως το Ldd και το Ldo. Στα παρασκήνια, ο σούπερ θήκη χρησιμοποιείται κυρίως για την επιβολή των κανόνων φιλτραρίσματος, δηλαδή για τον προσδιορισμό ποιες σειρές σχήματος πρέπει να διατηρηθούν και ποιες πρέπει να αφαιρεθούν.

Το πρώτο μέρος της ετικέτας (πριν την παύλα) είναι το όνομα του σούπερ θήκη. Το δεύτερο μέρος είναι μια περιγραφή, χρησιμοποιώντας κόμματα για τον διαχωρισμό των κατηγοριών από τις υποκατηγορίες. Το δεύτερο μέρος είναι προαιρετικό, αλλά μόνο μία φόρτιση μπορεί να λάβει την προεπιλογή σούπερ θήκη σημείο.
Σειρές τυπικών σχημάτων
Κάθε πρότυπο έχει ένα σχήμα το οποίο καθορίζει πλήρως όλους τους πιθανούς συνδυασμούς φορτίων για αυτό το πρότυπο. ο Schema.json το αρχείο είναι αρκετά απλό, αλλά μπορεί να γίνει αρκετά μακρύ, ειδικά στα πρότυπα (όπως ο Ευρωκώδικας) που απαιτούν πλήθος μεταθέσεων. Για να πάρω ένα απλό παράδειγμα, πάρτε το ακόλουθο παράδειγμα απαίτησης.
1.2*ρε + 1.5*μεγάλο + (0.5*S ή 0,5*W ή 0,5*T)
Για να το μετατρέψουμε σε μας σχήμα, πρέπει να το αναλύσουμε σε κάθε πιθανή μετάθεση:
1.2*ρε + 1.5*L 1.2*D + 1.5*μεγάλο + 0.5*S 1.2*D + 1.5*μεγάλο + 0.5*W 1.2*D + 1.5*μεγάλο + 0.5*T 1.2*D + 1.5*μεγάλο + 0.5*μικρό + 0.5*W 1.2*D + 1.5*μεγάλο + 0.5*Δ + 0.5*T 1.2*D + 1.5*μεγάλο + 0.5*Τ + 0.5*S 1.2*D + 1.5*μεγάλο + 0.5*μικρό + 0.5*Δ + 0.5*Τ
Μόλις καταγραφεί κάθε συνδυασμός φορτίου με αυτόν τον τρόπο, μπορείτε να δημιουργήσετε το σχήμα ακολουθώντας αυτά τα βήματα:
- Χρησιμοποιήστε κάθε κλειδί περίπτωσης φόρτωσης και συντελεστή για να δημιουργήσετε ένα αντικείμενο γραμμής σχήματος.
- Ονομάστε κάθε σειρά με ένα μοναδικό αναγνωριστικό (αφού αυτό πρόκειται να είναι αντικείμενο). Η σύμβαση είναι να χρησιμοποιείτε παύλες για να διαχωρίζετε διαφορετικά στοιχεία του ονόματος.
- Ένα επίπεδο πάνω, ομαδοποιήστε τις σειρές σε κριτήρια (δύναμη, λειτουργικότητα, τυχαίος, και τα λοιπά.)
Το τελικό αποτέλεσμα θα πρέπει να μοιάζει κάπως έτσι:
"σειρές": {
"δύναμη":{
"Α-1-υ": {"ρε": 1.40},
"Α-2α-υ":{"ρε": 1.25, "μεγάλο": 1.50, "Ls": 1.50},
"A-2b-u":{"ρε": 1.25, "μεγάλο": 1.50, "Ls": 1.50, "μικρό": 1.00},
"A-2c-u":{"ρε": 1.25, "μικρό": 1.50, "Δ": 0.40},
"Α-3α-υ":{"ρε": 1.25, "μικρό": 1.50}
}
}
Αλγόριθμος δημιουργίας συνδυασμού φορτίου
Ο αλγόριθμος περνά από πολλά βήματα για να δημιουργήσει το τελικό αντικείμενο συνδυασμού φορτίου:
- ο σχήμα όπως ορίζεται παραπάνω απαιτείται. Θα μεταβιβαστεί στη λειτουργία παραγωγής συνδυασμού κύριου φορτίου.
- Δημιουργείται ένα αντικείμενο για να ομαδοποιήσει τον αριθμό των φορτία με πρότυπο. Για παράδειγμα, Ας εξετάσουμε ένα αίτημα για τις περιπτώσεις φόρτωσης παρακάτω:
2 Νεκρή θήκη φόρτωσης, με μοτίβο συγχώνευσης 4 Θήκες φόρτισης ανέμου, με ατομικό μοτίβο 1 Θήκες φόρτωσης χιονιού, με ατομικό μοτίβο 2 Νεκρές θήκες φόρτωσης, με μοτίβο συγχώνευσης
Ομαδοποίηση των μοτίβα με θήκη φόρτωσης θα δώσει το παρακάτω αντικείμενο, το οποίο θα περάσει στη συνάρτηση δημιουργίας συνδυασμού κύριου φορτίου.
input_by_case =
{
"ρε": {"συγχώνευση": [2, 2], "άτομο": []},
"Δ": {"συγχώνευση": [], "άτομο": [4]},
"μικρό": {"συγχώνευση": [], "άτομο": [1]}
}
- Τα δύο τελευταία ορίσματα είναι φιλτράρισμα αντικειμένων, που επιτρέπουν το φιλτράρισμα κατά κριτήρια ή με κλειδί σχήματος.
- Μόλις έχει όλα τα απαιτούμενα επιχειρήματα, καλείται η συνάρτηση δημιουργίας κύριου συνδυασμού φορτίου. Αυτή η συνάρτηση περνάει από πολλούς ένθετους βρόχους για να δημιουργήσει κάθε απαιτούμενο συνδυασμό, τα οποία επεξηγούνται στις ακόλουθες κουκκίδες, και απεικονίζεται στο επόμενο σχήμα.
- Στο υψηλότερο επίπεδο, περνάει μέσα από τις σειρές του σχήματος. Κάθε σειρά ελέγχεται για να διαπιστωθεί εάν πρέπει να διατηρηθεί ή να παραλειφθεί σε αυτό το βήμα, χρησιμοποιώντας τα αντικείμενα φιλτραρίσματος και τη συγκεκριμένη λογική που περιγράφεται στην παρακάτω ενότητα.
- Φωλιασμένος στον πρώτο βρόχο είναι ένας δεύτερος, η οποία διέρχεται από κάθε ζητούμενο θήκη φόρτωσης στη σειρά σχήματος. Εάν το ζητηθεί θήκη φόρτωσης υπάρχει επίσης η σειρά σχήματος (Οι αιτήσεις συνοψίζονται στο αντικείμενο input_by_case), μετά προχωράμε στο επόμενο επίπεδο.
- Φωλιασμένος στον δεύτερο βρόχο είναι ένας τρίτος, που διαπερνά κάθε δυνατό πρότυπο για να δείτε αν υπάρχουν ομάδες φόρτωσης για δημιουργία εντός αυτών, και εκτελεί τη συνάρτηση για να τα ονομάσει και να τα δημιουργήσει όταν το κάνουν.
- Μόλις δημιουργηθούν και ονομαστούν όλες οι περιπτώσεις φόρτωσης στη γραμμή σχήματος, ανασυνδυάζονται (παράλληλα με τους συντελεστές τους) σε έναν ή πολλαπλούς συνδυασμούς φορτίων.

- Αυτή η διαδικασία επαναλαμβάνεται για κάθε σειρά του σχήματος, ώθηση όλων των δημιουργούμενων συνδυασμών φορτίου στο τελικό αντικείμενο συνδυασμού φορτίου.
Δεν αξίζει τίποτα το γεγονός ότι όλη η λογική που σχετίζεται με τα μοτίβα συμβαίνει ενώ βρίσκεστε μέσα σε μια ενιαία σειρά σχήματος. Η γνώση αυτού είναι σημαντική για την κατανόηση της συμπεριφοράς των προτύπων. Το μοτίβο συγχώνευσης, για παράδειγμα, δεν επιτρέπει τη συγχώνευση τίποτα άλλο εκτός από τη θήκη φόρτωσης στην οποία έχει εκχωρηθεί. Αυτό σημαίνει ότι δεν μπορείτε:
- Συγχωνεύστε διαφορετικές θήκες φόρτωσης μαζί, όπως η προσπάθεια συγχώνευσης ομάδων φόρτωσης D1 και L1.
- Συγχώνευση πανομοιότυπων περιπτώσεων φόρτωσης σε διαφορετικές σειρές του πίνακα εισόδου. Για παράδειγμα, στο παράδειγμα που δίνεται στο σημείο #2 πάνω από, μας ζητείται να δημιουργήσουμε 2 νεκρά φορτία χρησιμοποιώντας το μοτίβο συγχώνευσης σε δύο ξεχωριστές σειρές. Οι συνδυασμοί τελικού αποτελέσματος θα μοιάζουν με κάτι τέτοιο:
1.2*Δ1 + 1.2*Δ2 + 1.5*μεγάλο 1.2*D3 + 1.2*Δ4 + 1.5*μεγάλο 1.2*Δ1 + 1.2*Δ2 + 1.5*μεγάλο + 0.5*μικρό 1.2*D3 + 1.2*Δ4 + 1.5*μεγάλο + 0.5*μικρό 1.2*Δ1 + 1.2*Δ2 + 1.5*μεγάλο + 0.5*Δ 1.2*D3 + 1.2*Δ4 + 1.5*μεγάλο + 0.5*Τ
Αυτόματο φιλτράρισμα περιττών συνδυασμών φορτίου
Ενώ ο παραπάνω αλγόριθμος είναι λειτουργικός χωρίς κανένα φιλτράρισμα, μπορεί να οδηγήσει σε περιττούς συνδυασμούς φορτίων, που οδηγεί σε επιπλέον υπολογιστικό χρόνο και περιττά αποτελέσματα. Πάρτε τους παρακάτω συνδυασμούς φορτίων:
1.2*ρε + 1.5*L 1.2*D + 1.5*μεγάλο + 0.5*S 1.2*D + 1.5*μεγάλο + 0.5*W 1.2*D + 1.5*μεγάλο + 0.5*Τ
Αν έχουμε μια μονή νεκρή θήκη, Αυτοί οι τέσσερις συνδυασμοί φορτίων θα οδηγήσουν σε πανομοιότυπους συνδυασμούς φορτίων:
1.2*D
1.2*D
1.2*D
1.2*D
Για να αποφευχθεί αυτή η κατάσταση, Χρησιμοποιούνται τέσσερις κανόνες που ο καθένας περιέχει μερικές μικρές εξαιρέσεις. Πρώτα, ας ρίξουμε μια ματιά στους κανόνες. Η προεπιλεγμένη κατάσταση είναι να διατηρηθεί ο συνδυασμός και οι κανόνες χρησιμοποιούνται για να καθοριστεί ποιος θα εξαιρεθεί.
Φιλτράρισμα με κριτήρια
Αυτή η περίπτωση είναι αρκετά αυτονόητη. Εάν το κριτήρια δεν ζητείται, όλες οι σειρές σχήματος που σχετίζονται με αυτό κριτήρια απορρίπτονται.
Φιλτράρισμα κατά χαρακτήρες στο κλειδί σχήματος
Τα κλειδιά σχήματος είναι συνήθως δείκτες διαχωρισμένοι με κόμματα στην αρχική αναφορά. Για παράδειγμα, στο παράδειγμα NBCC παρακάτω, το κλειδί έχει τρία στοιχεία:
- ΕΝΑ: Ο πρώτος όρος είναι συνήθως η κύρια αναφορά, ανατρέξτε στον πίνακα στον οποίο λαμβάνεται αυτό το μέρος των φορτίων.
- 2σι: Ο δεύτερος όρος είναι συνήθως ένα μοναδικό αναγνωριστικό για τον συνδυασμό φορτίου μέσα στον πίνακα.
- εσύ: Ο τρίτος όρος συνήθως δεσμεύεται για να υποδεικνύει πότε ένας μεγάλος αριθμός συνδυασμών φορτίου μετατίθεται με μια μικρή τροποποίηση. Για παράδειγμα, μπορεί να δείξει εάν τα νεκρά φορτία στο συνδυασμό φορτίων είναι ευνοϊκά ( φά ) ή δυσμενής ( εσύ ).
{
"δύναμη":{
"A-2b-u":{"ρε": 1.25, "μεγάλο": 1.50, "Ls": 1.50, "μικρό": 1.00},
}
}
Το φιλτράρισμα στο κλειδί σχήματος μπορεί να γίνει για οποιονδήποτε από αυτούς τους όρους. Για παράδειγμα, αν θέλουμε να φιλτράρουμε κατά τον τρίτο όρο, μπορούμε να προσθέσουμε το παρακάτω φίλτρο, το οποίο θα δημιουργήσει ένα αναπτυσσόμενο μενού φιλτραρίσματος για αυτόν τον όρο:
"name_filters": {
"Δύναμη": {
"Νεκρό φορτίο": {
"θέση": 2,
"συμβουλή εργαλείου": "",
"είδη": {
"Ευνοϊκός": "φά",
"Δυσμενής": "εσύ"
},
"προεπιλογές": ["Ευνοϊκός", "Δυσμενής"]
}
}
}
Όλα τα πιθανά αναπτυσσόμενα ονόματα και οι σχετικοί όροι πρέπει να παρατίθενται κάτω από τα "στοιχεία". Θα διατηρηθούν μόνο οι σειρές σχήματος με τα αντίστοιχα σύμβολα. Εάν απαιτείται να διατηρηθεί μια σειρά σχήματος ανεξάρτητα από αυτό που έχει εισαχθεί στο φίλτρο, ο όρος μπορεί να μείνει κενός. Οποιοδήποτε κλειδί σχήματος δεν περιέχει όλους τους αντίστοιχους αναπτυσσόμενους όρους θα απορριφθεί.
Περιττοί συνδυασμοί
Εάν μια σειρά σχήματος δεν φιλτράρεται από τα δύο πρώτα βήματα, προχωρά στο βήμα νούμερο τρία. Σε αυτό το βήμα, αντιμετωπίζεται το ζήτημα των απολύσεων από το παραπάνω παράδειγμα. Για να το κάνω αυτό, πρέπει να δούμε δύο αντικείμενα ταυτόχρονα, γραμμή σχήματος και το ταξινομημένο αντικείμενο input_by_case (δείτε την περιγραφή παραπάνω), που περιγράφει ποιες περιπτώσεις φόρτωσης έχουν ζητηθεί. Εάν η σειρά σχήματος περιέχει οποιαδήποτε υπερκείμενο που δεν περιέχει το αντικείμενο input_by_case, ο συνδυασμός φορτίου αφαιρείται. Παίρνω, για παράδειγμα, την ακόλουθη σειρά σχήματος:
"Α-2α-υ":{"ρε": 1.25, "μεγάλο": 1.50, "μικρό": 1.50}
και το ακόλουθο αντικείμενο input_by_case:
input_by_case =
{
"ρε": {"συγχώνευση": [], "άτομο": [1]},
"μεγάλο": {"συγχώνευση": [], "άτομο": [4]}
}
Σε αυτό το παράδειγμα, η σειρά σχήματος περιέχει α σούπερ θήκη S που δεν έχει ζητηθεί. Η διατήρηση αυτής της σειράς θα οδηγούσε σε έναν συνδυασμό φορτίου που θα ήταν πανομοιότυπος με τον συνδυασμό φορτίου που σχετίζεται με την παρακάτω σειρά σχήματος, οπότε αφαιρείται.
"Α-1α-υ":{"ρε": 1.25, "μεγάλο": 1.50}
Εξαιρέσεις
Ενώ αυτή η συμπεριφορά είναι συνήθως επιθυμητή, υπάρχουν περιπτώσεις όπου η ΜΗ διαγραφή μιας σειράς όταν απουσιάζει η περίπτωση φόρτωσης οδηγεί σε ένα πολύ απλούστερο σχήμα. Για παράδειγμα, εάν έχουμε οριζόντια φορτία γείωσης που πρέπει να προστεθούν σε κάθε συνδυασμό σχήματος, αλλά δεν είναι πάντα παρόντες, θα μπορούσαμε να αντιγράψουμε και να επικολλήσουμε όλους τους συνδυασμούς φορτίων και να τροποποιήσουμε το κλειδί σχήματος για τις νέες σειρές με ένα επίθημα όπως "h" για οριζόντια φορτία γείωσης. Εναλλακτικά, μπορούμε απλά να προσθέσουμε το οριζόντιο φορτίο γείωσης σε όλες τις περιπτώσεις και να προσθέσουμε μια εξαίρεση διατήρησης στην περίπτωση φόρτωσης στα μεταδεδομένα. Από εκεί, εάν δεν ζητηθεί η θήκη φόρτωσης, δεν θα εμφανιστεί, αλλά η σειρά θα παραμείνει. Το αποτέλεσμα μοιάζει κάπως έτσι στη μετα-ιδιότητα του σχήματος:
"Η": {
"επιγραφή": "Πλευρική γη - Δυσμενής",
"τάξη": 1,
"εξαιρέσεις": ["διατήρηση"],
"παλιές_ετικέτες": []
},
Περιττοί συνδυασμοί
Εάν μια σειρά σχήματος δεν φιλτράρεται από τα τρία πρώτα βήματα, προχωρά στο βήμα νούμερο τέσσερα. Σε αυτό το βήμα, το θέμα της αντιστοίχισης συγκεκριμένων περιπτώσεων φορτίου μεταξύ του σχήματος και αυτού που ζητείται. Εάν μια σειρά σχήματος και ένα αίτημα έχουν αντίστοιχες σούπερ περιπτώσεις, αλλά η συγκεκριμένη περίπτωση φορτίου που ζητήθηκε δεν περιλαμβάνεται στο σχήμα, η σειρά δεν θα διατηρηθεί. Παίρνω, για παράδειγμα, την ακόλουθη σειρά σχήματος:
"Α-2α-υ":{"ρε": 1.25, "Σλ": 1.50}
και την ακόλουθη input_by_case:
input_by_case =
{
"ρε": {"συγχώνευση": [], "άτομο": [1]},
"Sh": {"συγχώνευση": [], "άτομο": [1]}
}
Σε αυτό το παράδειγμα, Τόσο η σειρά σχήματος όσο και το αίτημα έχουν αντίστοιχες υπερθήκες. Ωστόσο, το αίτημα απαιτεί συνδυασμό με το Sh, που δεν παρέχει η σειρά σχήματος. Ετσι, η σειρά σχήματος δεν διατηρείται.
Εξαιρέσεις
Αλλη μια φορά, αυτή η συμπεριφορά είναι συνήθως επιθυμητή, αλλά μπορεί να οδηγήσει σε προβλήματα. Ένα τέτοιο πρόβλημα είναι όταν τα πρότυπα έχουν θήκες φόρτωσης που μοιράζονται μια υπερθήκη, αλλά μην ενεργείτε ταυτόχρονα. Για παράδειγμα, στην ASCE, τα φορτία ανέμου W και τα φορτία ανεμοστρόβιλου Wt δεν δρουν ταυτόχρονα, αν και μοιράζονται την ίδια σούπερ περίπτωση W. Όταν αντιμετωπίζουμε αυτό το πρόβλημα, μπορούμε να προσθέσουμε μια εξαίρεση για μετάβαση σε άλλη σούπερ θήκη πριν εκτελεστεί ο κώδικας στα μεταδεδομένα. Στα παρασκήνια, το σύμβολο που ακολουθεί το “->” χαρακτήρες θα αποδοθούν στην περίπτωση φόρτωσης, που θα προσομοιώσει τις περιπτώσεις φορτίου που ενεργούν σε αυτό σούπερ θήκη. Το αποτέλεσμα μοιάζει κάπως έτσι στη μετα-ιδιότητα του σχήματος:
"Β" : {
"επιγραφή": "Ανεμος - Ανεμοστρόβιλος",
"τάξη": 8,
"εξαιρέσεις": ["υπερθήκη->Χ"],
"παλιές_ετικέτες": []
},
Στην παραπάνω περίπτωση, ο σούπερ θήκη “Δ” θα ανταλλάσσονται σε “Χ” πριν εκτελεστεί ο κώδικας. Αυτή η δυνατότητα μπορεί επίσης να χρησιμοποιηθεί για την αποστολή ομαδικών περιπτώσεων φόρτωσης που έχουν μοναδικές σούπερ θήκη σύμβολα μαζί.

