Pular para o conteúdo

Atualizando Scripts para Versões Mais Recentes

alterações do Aimsun Next 26.0.0

Principais alterações:

  • A versão do Python a ser usada com o Next 26 é Python 3.12. O instalador completo mais recente disponível para Python 3.12 é Python 3.12.10 de python.org.
  • A biblioteca PyANGBasic não está mais disponível para uso; todas as importações devem ser removidas.
  • O Aimsun Next 26 usa Qt6; todas as referências a funções ou imports do Qt5 devem ser atualizadas para os equivalentes do Qt6.
  • Nesta versão é obrigatório usar o nome dos enums para acessar seu valor. Em versões anteriores do Next isso era opcional. Exemplos:

    • No Next 24 e anteriores, você podia usar: GKColumn.Type._GKTimeSerie ou GKColumn._GKTimeSerie. No Next 26, somente GKColumn.Type._GKTimeSerie é aceito.
  • QVariant não existe mais.

  • Os IDs de coluna de GKObjects e GKSimulatedObjects não existem mais. Para definir ou obter os valores de todas as colunas, as colunas devem ser acessadas por seu nome interno e não pelo antigo ID. Exemplo: em vez de usar: value = section.getDataValueDoubleByID( GKSection::reactionTimeVariationAtt ) use: value = section.getDataValueDouble( model.getColumn("GKSection::reactionTimeVariationAtt" ) )

A seguir há uma lista de todas as classes e funções que foram alteradas ou adicionadas após o lançamento do Aimsun Next 24.0.2. As classes com alterações são:

Classe DTATurning

As funções a seguir são rotuladas como obsoletas. Atualize seus scripts para não as utilizar, pois elas serão removidas na próxima versão principal após o Next 26.

double currentDefaultCost(DTAManager * dtaManager) const;
double vdfDefaultCost(DTAManager * dtaManager) const;   
double getDynamicDefaultCost(const DTAManager * dtaManager ) const;

double getStaInitialCost(const DTAManager * dtaManager ) const;
double getStaInitialCostVT(const DTAManager * dtaManager, const DTAUserClass * gkUserClass ) const;
double getStaInitialCostVT( DTAManager * dtaManager, const DTAVehicleType * vehType ) const;
double getInitialDefaultCost(const DTAManager * dtaManager ) const;
double getInitialDefaultCostVT(const DTAManager * dtaManager, const DTAUserClass * gkUserClass ) const;
double getInitialDefaultCostVT( DTAManager * dtaManager, const DTAVehicleType * vehType ) const;

Classe GKDestinationChange

As seguintes funções foram removidas:

const GKCentroid * getOrigin() const;
void setOrigin( const GKCentroid * centroid );
const GKCentroid * getDestination() const;
void setDestination( const GKCentroid * centroid );
int numberOfDestinationCentroids() const;
const GKCentroid * getDestinationCentroidAt( int i ) const;
float getDestinationCentroidPercentage( const GKCentroid * aCentroid ) const;
float getDestinationCentroidPercentageAt( int pos ) const;
bool containsDestinationCentroid( const GKCentroid *centroid ) const;
void addDestinationCentroid( const GKCentroid * aCentroid, float aPercentage );
void removeDestinationCentroid( const GKCentroid * aCentroid );
void joinDestinationCentroids( const GKCentroid * masterCentroid, const GKCentroid * otherCentroid );
void revertJoinDestinationCentroids( const GKCentroid * masterCentroid, const GKCentroid * otherCentroid, float otherCentroidPercentage );
Substituído por:
const GKPolygon * getOriginCentroidOrGroup() const;
void setOriginCentroidOrGroup( const GKPolygon * centroidOrGroup );
const GKPolygon * getDestinationCentroidOrGroup() const;
void setDestinationCentroidOrGroup( const GKPolygon * centroidOrGroup );
int numberOfNewDestinationCentroids() const;
const GKCentroid * getNewDestinationCentroidAt( int i ) const;
float getNewDestinationCentroidPercentage( const GKCentroid * aCentroid ) const;
float getNewDestinationCentroidPercentageAt( int pos ) const;
bool containsNewDestinationCentroid( const GKCentroid *centroid ) const;
void addNewDestinationCentroid( const GKCentroid * aCentroid, float aPercentage );
void removeNewDestinationCentroid( const GKCentroid * aCentroid );
void joinNewDestinationCentroids( const GKCentroid * masterCentroid, const GKCentroid * otherCentroid );
void revertJoinNewDestinationCentroids( const GKCentroid * masterCentroid, const GKCentroid * otherCentroid, float otherCentroidPercentage );

Classe GKForceEnrouteAssignment

Os seguintes atributos foram removidos:

static uint originCentroidAtt;
static uint destinationCentroidAtt;
Substituído por:
static uint originCentroidOrGroupAtt;
static uint destinationCentroidOrGroupAtt;

Classe GKForceTurning

As seguintes funções foram removidas:

void setOrigin( const GKCentroid * centroid );
const GKCentroid * getOrigin() const;
void setDestination( const GKCentroid * centroid );
const GKCentroid * getDestination() const;
Substituído por:
void setOriginCentroidOrGroup( const GKPolygon * centroidOrGroup );
const GKPolygon * getOriginCentroidOrGroup() const;
void setDestinationCentroidOrGroup( const GKPolygon * centroidOrGroup );
const GKPolygon * getDestinationCentroidOrGroup() const;

Classe GKFunctionCost

Alguns tipos dentro do atributo GKFunctionCostType removidos:

eCost and eCostVehType
foram substituídos por:
eDynamicCost
e
eKInitials and eKInitialsVehType
foram unificados em:
eKInitials

Classe GKModel

Função adicionada que define o modelo em modo de modificação múltipla, o qual, se true, evita a atualização da visualização do projeto cada vez que um único objeto é adicionado/modificado/removido.

WARNING: Use com cautela e por sua conta e risco para evitar inconsistências de UI. A função deve ser chamada duas vezes com true e false para evitar inconsistências.

void setOnMultipleModifications( bool value );

Exemplo de uso:

model.setOnMultipleModifications(True)  #notify the model that we are about to do multiple modifications
sectionType = model.getType( "GKSection" )
for section in model.getCatalog().getObjectsByType( sectionType ).values():
    speedChange = GKSystem.getSystem().newObject("GKSpeedChange", model)
    speedChange.setSection(section)
    speedChange.setSpeed(speed)
    speedChange.setName("Speed Change to %.1f km/h for section: %s" %(float(speed), section.getExternalId()))
    traffic_condition.addChange(speedChange)

model.setOnMultipleModifications(False) #notify the model that we finished doing the modifications

Esta função retorna se o modelo está no modo de modificação múltipla.

bool isOnMultipleModifications() const;

Classe GKObject

Os IDs de coluna de GKObjects não existem mais. Para definir ou obter os valores de todas as colunas, as colunas devem ser acessadas pelo seu nome interno e não pelo antigo ID. Exemplo: Em vez de usar: value = section.getDataValueDoubleByID( GKSection::reactionTimeVariationAtt ) use: value = section.getDataValueDouble( model.getColumn("GKSection::reactionTimeVariationAtt" ) )

Todas estas funções não estão mais disponíveis:

    QVariant * getDataValueByID( uint attrId, bool * deleteit , const GKContext & context = GKContext::anyContext ) const;
    double getDataValueInTSByID( uint attrId, unsigned int index, double * deviation = nullptr ) const;
    GKTimeSerie * getDataValueTSByID( uint attrId ) const;
    int getDataValueIntByID( uint attrId, const GKContext & context = GKContext::anyContext ) const;
    double getDataValueDoubleByID( uint attrId, const GKContext & context = GKContext::anyContext ) const;
    QString getDataValueStringByID( uint attrId, const GKContext & context = GKContext::anyContext ) const;
    bool getDataValueBoolByID( uint attrId, const GKContext & context = GKContext::anyContext ) const;
    GKObject * getDataValueObjectByID( uint attrId, const GKContext & context = GKContext::anyContext ) const;
    QDate getDataValueDateByID( uint attrId, const GKContext & context = GKContext::anyContext ) const;
    QTime getDataValueTimeByID( uint attrId, const GKContext & context = GKContext::anyContext ) const;
    QDateTime getDataValueDateTimeByID(uint attrId, const GKContext& context = GKContext::anyContext) const;
    GKTimeDuration getDataValueTimeDurationByID( uint attrId, const GKContext & context = GKContext::anyContext ) const;

    void setDataValueObjectByID( uint attrId, const GKObject * obj );
    void setDataValueDoubleByID( uint attrId, double v );
    void setDataValueByID( uint attrId, const QVariant & v );
    void setDataValueInTSByID( uint attrId, unsigned int index, double value, double deviation, GKTSDescription * aDescription = nullptr );
    void setDataValueInExpandableTSByID( uint attrId, double value, double deviation, GKTSDescription * aDescription = nullptr );
    void setAggregatedValueInTSByID( uint attrId, double value, double deviation, GKTSDescription * aDescription = NULL );

    void clearDataValueTSByID( uint attrId );
    void removeDataValueByID( uint attrId );

As seguintes funções devem ser usadas em seu lugar:

    virtual QVariant * getDataValue( const GKColumn * attr, bool * deleteit , const GKContext & context = GKContext::anyContext ) const;
    virtual double getDataValueInTS( const GKColumn * attr, unsigned int index, double * deviation = nullptr ) const;
    virtual GKTimeSerie * getDataValueTS( const GKColumn * attr ) const;
    virtual int getDataValueInt( const GKColumn * attr, const GKContext & context = GKContext::anyContext ) const;
    virtual double getDataValueDouble( const GKColumn * attr, const GKContext & context = GKContext::anyContext ) const;
    QString getDataValueString( const GKColumn * attr, const GKContext & context = GKContext::anyContext ) const;
    virtual bool getDataValueBool( const GKColumn * attr, const GKContext & context = GKContext::anyContext ) const;
    virtual GKObject * getDataValueObject( const GKColumn * attr, const GKContext & context = GKContext::anyContext ) const;
    QDate getDataValueDate( const GKColumn * attr, const GKContext & context = GKContext::anyContext ) const;
    QTime getDataValueTime( const GKColumn * attr, const GKContext & context = GKContext::anyContext ) const;
    QDateTime getDataValueDateTime(const GKColumn* attr, const GKContext& context = GKContext::anyContext) const;
    GKTimeDuration getDataValueTimeDuration( const GKColumn * attr, const GKContext & context = GKContext::anyContext ) const;

    virtual void setDataValueObject( const GKColumn * attr, const GKObject * obj );
    virtual void setDataValueDouble( const GKColumn * attr, double v );
    virtual void setDataValue( const GKColumn * attr, const QVariant & v );
    virtual void setDataValueInTS( const GKColumn * attr, unsigned int index, double value, double deviation, GKTSDescription * aDescription = nullptr );
    virtual void setDataValueInTS( const GKColumn * attr, unsigned int index, double value, double deviation, double lowerValue, GKTSDescription * aDescription = nullptr );
    virtual void setAggregatedValueInTS( const GKColumn * attr, double value, double deviation, GKTSDescription * aDescription = NULL );

    virtual void clearDataValueTS( const GKColumn * attr );
    void removeDataValue( const GKColumn * attr );

Classe GKODMatrix

As seguintes funções, que em versões anteriores haviam sido marcadas como obsoletas, foram finalmente removidas:

void compress();
void descompress();
bool isCompressed() const;

Classe GKParkAndRideChange

As seguintes funções foram removidas:

void setOrigin( const GKCentroid * centroid );
const GKCentroid * getOrigin() const;
void setDestination( const GKCentroid * centroid );
const GKCentroid * getDestination() const;
Substituído por:
void setOriginCentroidOrGroup( const GKPolygon * centroidOrGroup );
const GKPolygon * getOriginCentroidOrGroup() const;
void setDestinationCentroidOrGroup( const GKPolygon * centroidOrGroup );
const GKPolygon * getDestinationCentroidOrGroup() const;

Classe GKPolygon

A GKObjectsClassification foi expandida, portanto agora é definida da seguinte forma:

enum GKObjectsClassification{ 
  eAll
, eOnlyNodesAndSections
, eOnlySections
, eAllButProblemNets 
};

Classe GKRoadType

As seguintes funções foram removidas:

GKFunctionCost* getTurnInitialCostFunction() const;
void setTurnInitialCostFunction( GKFunctionCost* function );
como agora o anteriormente existente;
GKFunctionCost* getTurnDynamicCostFunction() const;
void setTurnDynamicCostFunction( GKFunctionCost* function );
são usados em todos os casos.

Além disso, a coluna "GKRoadType::turnInitialCostFunctionAtt" não está mais disponível.

Classe GKSection

As seguintes funções foram removidas:

GKFunctionCost * getInitialFunction() const;
void setInitialFunction( GKFunctionCost *fc );
como agora o anteriormente existente;
GKFunctionCost * getDynamicFunction() const;
void setDynamicFunction( GKFunctionCost * fc );
são usados em todos os casos.

Além disso, o identificador de coluna initialFunctionAtt foi removido, pois a coluna "GKSection::initialFunctionAtt" não está mais disponível.

Classe GKSimulatedObject

Os IDs de coluna de GKObjects não existem mais. Para definir ou obter os valores de todas as colunas, as colunas devem ser acessadas pelo seu nome interno e não pelo antigo ID. Exemplo: Em vez de usar: value = section.getDataValueDoubleByID( GKSection::reactionTimeVariationAtt ) use: value = section.getDataValueDouble( model.getColumn("GKSection::reactionTimeVariationAtt" ) )

Todas essas funções não estão mais disponíveis em GKSimulatedObjects:

    QVariant * getDataValueByID( uint attrId, bool * deleteit , const GKContext & context = GKContext::anyContext) const override;
    double getDataValueInTSByID( uint attrId, unsigned int index, double * deviation = nullptr ) const;
    GKTimeSerie * getDataValueTSByID( uint attrId ) const;
    int getDataValueIntByID( uint attrId, const GKContext & context = GKContext::anyContext ) const;
    double getDataValueDoubleByID( uint attrId, const GKContext & context = GKContext::anyContext ) const;
    QString getDataValueStringByID( uint attrId, const GKContext & context = GKContext::anyContext ) const;
    bool getDataValueBoolByID( uint attrId, const GKContext & context = GKContext::anyContext ) const;
    GKObject * getDataValueObjectByID( uint attrId, const GKContext & context = GKContext::anyContext ) const;
    QDate getDataValueDateByID( uint attrId, const GKContext & context = GKContext::anyContext ) const;
    QTime getDataValueTimeByID( uint attrId, const GKContext & context = GKContext::anyContext ) const;
    QDateTime getDataValueDateTimeByID(uint attrId, const GKContext& context = GKContext::anyContext) const;
    GKTimeDuration getDataValueTimeDurationByID( uint attrId, const GKContext & context = GKContext::anyContext ) const;

As seguintes funções devem ser usadas em seu lugar:

    virtual QVariant * getDataValue( const GKColumn * attr, bool * deleteit , const GKContext & context = GKContext::anyContext ) const;
    virtual double getDataValueInTS( const GKColumn * attr, unsigned int index, double * deviation = nullptr ) const;
    virtual GKTimeSerie * getDataValueTS( const GKColumn * attr ) const;
    virtual int getDataValueInt( const GKColumn * attr, const GKContext & context = GKContext::anyContext ) const;
    virtual double getDataValueDouble( const GKColumn * attr, const GKContext & context = GKContext::anyContext ) const;
    QString getDataValueString( const GKColumn * attr, const GKContext & context = GKContext::anyContext ) const;
    virtual bool getDataValueBool( const GKColumn * attr, const GKContext & context = GKContext::anyContext ) const;
    virtual GKObject * getDataValueObject( const GKColumn * attr, const GKContext & context = GKContext::anyContext ) const;
    QDate getDataValueDate( const GKColumn * attr, const GKContext & context = GKContext::anyContext ) const;
    QTime getDataValueTime( const GKColumn * attr, const GKContext & context = GKContext::anyContext ) const;
    QDateTime getDataValueDateTime(const GKColumn* attr, const GKContext& context = GKContext::anyContext) const;
    GKTimeDuration getDataValueTimeDuration( const GKColumn * attr, const GKContext & context = GKContext::anyContext ) const;

Classe GKSimulationEvent

GKSimulatorEvent agora permite definir diferentes gatilhos de tempo para diferentes intervalos de tempo e definir uma duração mínima antes de verificar o gatilho de parada.

A seguinte função foi removida:

GKTrigger * getStartTrigger() const;
As seguintes funções foram adicionadas:
GKTrigger* getStartTrigger( const QTime& time ) const;
void addStartTrigger( GKTrigger * trigger, const QTime& initialTime, const GKTimeDuration& duration );
void removeStartTrigger( GKTrigger * trigger );
void clearStartTriggers();
const GKTimeDuration& getTriggerMinDuration() const;
void setTriggerMinDuration( const GKTimeDuration & duration );

Classe GKTriggerCondition

As funções

void setValue( const QString & avalue );
const QString & getValue() const;
tiveram sua assinatura alterada para
void setValue( const QVariant & avalue );
const QVariant & getValue() const;

Classe GKTurning

As seguintes funções foram removidas:

GKFunctionCost * getInitialFunction() const;
void setInitialFunction( GKFunctionCost *fc );
como agora o anteriormente existente;
GKFunctionCost * getDynamicFunction() const;
void setDynamicFunction( GKFunctionCost * fc );
são usados em todos os casos.

Além disso, o identificador de coluna initialFunctionAtt foi removido, pois a coluna "GKTurning::initialFunctionAtt" não está mais disponível.

Classe GKTurningClosingChange

As seguintes funções foram removidas:

void setOriginCentroid( const GKCentroid * centroid );
const GKCentroid * getOriginCentroid() const;
void setDestinationCentroid( const GKCentroid * centroid );
const GKCentroid * getDestinationCentroid() const;
Substituído por:
void setOriginCentroidOrGroup( const GKPolygon * centroidOrGroup );
const GKPolygon * getOriginCentroidOrGroup() const;
void setDestinationCentroidOrGroup( const GKPolygon * centroidOrGroup );
const GKPolygon * getDestinationCentroidOrGroup() const;

Classe GKType

Conforme indicado no Next 24, as funções para adicionar GKColumn a um GKType

GKColumn* addColumn( const QString & iname, const GKContents& contents , GKColumn::Type atype,
                    GKColumn::GKColumnType astoreType = GKColumn::eExternalTemporary, bool dynamic = false );

GKColumn* addColumn( const GKContents& contents , GKColumn::Type atype,
                    GKColumn::GKColumnType astoreType = GKColumn::eExternalTemporary, bool dynamic = false );

GKColumn * addColumn( const QString & iname, const QString & aname, GKColumn::Type atype,
                        GKColumn::GKColumnType astoreType = GKColumn::eExternal, bool dynamic = false );

foram descontinuados. Os abaixo são os que os substituem:

  • Adiciona uma GKColumn com tipo de armazenamento GKColumn::eExternal.

    GKColumn * addExternalColumn( const QString & iname, const QString & aname, GKColumn::Type atype, GKColumn::Origin from = GKColumn::eDeveloper, const QString& originDescription = QString(), bool dynamic = false, int precision = -1 );
    
  • Adiciona uma GKColumn com tipo de armazenamento GKColumn::eExternalTemporary.

    GKColumn * addTemporaryColumn( const QString & iname, const QString & aname, GKColumn::Type atype, bool dynamic = false, int precision = -1 );
    GKColumn * addTemporaryColumn( const QString & iname, const GKContents& contents , GKColumn::Type atype, bool dynamic = false, int precision = -1 );
    GKColumn * addTemporaryColumn( const GKContents& contents, GKColumn::Type atype, bool dynamic = false, int precision = -1 );
    
  • Adiciona uma GKColumn com tipo de armazenamento GKColumn::ePython.

    GKColumn * addPythonFunctionColumn( const GKContents& contents, GKColumn::Type atype, int precision = -1 );
    GKColumn * addPythonFunctionColumn( const QString & iname, const QString & aname, GKColumn::Type atype, int precision = -1 );
    

Classe GKCentroidSplitCmd

A classe GKCentroidSplitCmd foi adicionado.

Um comando para dividir um Centroide em vários centroides.

Classe GKControlPlanSignalStartDuration

As seguintes funções foram removidas:

void setStart(float start);
void setDuration(float duration);

Eles não foram destinados a atualizar o início e a duração dos semáforos do plano de controle. Para alterar os valores na interseção de controle, use GKControlJunction::setPhasesFromSignals.

Classe GKExperimentResult

As opções de armazenamento de matrizes skim agora estão disponíveis:

O armazenamento de matrizes Skim é desativado por padrão. O status atual pode ser verificado e modificado com as seguintes funções:

bool getGenerateSkimMatrices() const;
void setGenerateSkimMatrices( bool value );

Aggregate Route Choice Interval está desativado por padrão. Verifique o status atual e modifique-o com as seguintes funções:

bool getAggregateRouteChoiceInterval() const;
void setAggregateRouteChoiceInterval(bool value);

A agregação por classe de veículo é desativada por padrão. Verifique o status atual e modifique-o com as seguintes funções:

bool getAggregateByVehicleClass() const;
void setAggregateByVehicleClass(bool value);

Include Warm-up é desabilitado por padrão. Verifique o status atual e modifique-o com as seguintes funções:

bool getIncludeWarmup() const;
void setIncludeWarmup(bool value);

Calculate Cost for Zero Trips é desabilitado por padrão. Verifique o status atual e modifique-o com as seguintes funções:

bool getCalculateCostForZeroTrips() const;
void setCalculateCostForZeroTrips( bool value);

Quando a Average for calculada, armazene também suas Replication Skim Matrices. Desativado por padrão. Verifique o status atual e modifique-o com as seguintes funções:

bool getStoreIntermediateMatrices() const;
void setStoreIntermediateMatrices(bool value);

Os Current Route Choice Intervals podem ser recuperados usando a função a seguir. Os intervalos são expressos em segundos.

QVector<int> getRouteChoiceIntervals() const;

Define os Route Choice Intervals a serem usados ao gerar as Skim Matrices. Os intervalos devem ser expressos em segundos. Os seguintes requisitos devem ser atendidos para que os intervalos sejam efetivamente atribuídos: A opção "Aggregate Route Choice Interval" está habilitada O cenário tem uma demanda A duração dos intervalos é igual à duração do cenário Todos os intervalos são múltiplos da duração do intervalo do experimento

bool setRouteChoiceIntervals( const QVector<int>& intervals );

Limpa os Intervalos de Escolhas de Rota definidos com setRouteChoiceIntervals função.

void clearRouteChoiceIntervals();

Classe MacroScenarioOutputData

As seguintes funções foram adicionadas:

Retorna true se as matrizes skim a serem geradas devem ser o resultado agregado de cada Vehicle Class.

bool getAggregateByVehicleClass() const;

Define se as matrizes skim a gerar devem ser agregadas por Vehicle Class.

void setAggregateByVehicleClass(bool value);

Retorna true se as matrizes RGap serão geradas ao final da execução e false caso contrário.

bool getGenerateGapMatrices() const;

Define se matrizes Gap serão geradas ao final do processo de atribuição.

void setGenerateGapMatrices( bool iValue );

Classe GKViewModeStyleRange

As seguintes funções foram adicionadas:

Define o valor para este intervalo quando o atributo do estilo é do tipo GKColumn::String

void setValue( const QString& value );

Retorna o valor para este intervalo quando o atributo do estilo é do tipo GKColumn::String

QString getValue() const;

Classe GKPublicLine

As seguintes funções foram adicionadas para atribuir e recuperar informações OCIT:

int getOcitLineNumber() const;
void setOcitLineNumber( int value );

int getOcitRouteNumber() const;
void setOcitRouteNumber( int value );

int getOcitTrainLength() const;
void setOcitTrainLength(int value);

void setSREMRole( int role );
int getSREMRole() const;

void setSREMSubrole( int value );
int getSREMSubrole() const;

Classe GKNodeConflict

As seguintes funções foram removidas:

GKTurningSimEntity * getEntity1() const;
GKTurningSimEntity * getEntity2() const;

double getXIni1() const;
double getXIni2() const;

void setXIni1(double x);
void setXIni2(double x);

double getXEnd1() const;
double getXEnd2() const;

void setXEnd1(double x);
void setXEnd2(double x);

Substituído por:

GKTurningSimEntity * getFirstEntity() const;
GKTurningSimEntity * getSecondEntity() const;

double getFirstEntityXIni() const;
double getSecondEntityXIni() const;

void setFirstEntityXIni(double x);
void setSecondEntityXIni(double x);

double getFirstEntityXEnd() const;
double getSecondEntityXEnd() const;

void setFirstEntityXEnd(double x);
void setSecondEntityXEnd(double x);

Classe ComparisonTypeResultData

As seguintes funções foram removidas:

const GKColumn * getAbsDiffCol() const;
const GKColumn * getRelDiffCol() const;
const GKColumn * getRefCol() const;
const GKColumn * getCmpCol() const;

Substituído por:

enum ColumnDataType { eReferenceCol, eComparedCol, eAbsoluteDiffCol, eRelativeDiffCol };
const GKColumn* getColumn(ColumnDataType aColType) const;

alterações do Aimsun Next 24.0.1

A seguir está uma lista de todas as classes e funções que foram alteradas ou adicionadas após o lançamento da versão Aimsun Next 24.0.0 Final. As classes com alterações são:

Classe GKObject

As funções

    virtual void clearDataValueTS( const GKColumn * attr, GKTSDescription * aDescription = nullptr );
    void clearDataValueTSByID( uint attrId, GKTSDescription * aDescription = nullptr );
tiveram sua assinatura alterada para
    virtual void clearDataValueTS( const GKColumn * attr );
    void clearDataValueTSByID( uint attrId );
e agora apenas limpam as Time Series existentes na coluna fornecida. A lógica de inicialização extra foi movida para uma nova função.

Uma nova função para criação e inicialização de uma Time Series foi adicionada com a seguinte assinatura:

    GKTimeSerie* createDataValueTS(const GKColumn* attr, GKTSDescription* aDescription);

Esta função só cria a Time Series se a coluna associada ainda não tiver uma time serie já criada. Se já existir, a função retornará a Time Series sem fazer nenhuma alteração em seus valores.

Alterações do Aimsun Next 24

A seguir está uma lista de todas as funções que foram alteradas entre Aimsun Next 23 e Aimsun Next 24 para ajudar a atualizar scripts antigos facilmente. As classes com alterações são:

Classe GKControllerParsOCIT

A assinatura das seguintes funções:

void setProtocolFilepath( const QString& filepath );
const QString& getProtocolFilepath() const;
foi substituído por:
void setProtocolFilepath( const GKFilePath& filepath );
const GKFilePath& getProtocolFilepath() const;

Classe GKControllerParsVSPLUS

O tipo dos seguintes membros:

QString informationFile;
QString parametersFile;
foi alterado para:
GKFilePath informationFile;
GKFilePath parametersFile;

Classe GKControllerParsSitrafficOffice

A assinatura das seguintes funções:

void setConfigurationFolder( const QString& filepath );
const QString& getConfigurationFolder() const;
foi substituído por:
void setConfigurationFolder( const GKFilePath& filepath );
const GKFilePath& getConfigurationFolder() const;

Classe GKFilePath

A classe GKFilePath foi adicionada. Um caminho de sistema de arquivos para um arquivo no projeto, com algumas funções utilitárias.

Classe GKFunctionCostContext

Os atributos que foram descontinuados ( experiment, userClass, time, timeSta e iteration) foram removidos e precisam ser acessados usando as funções fornecidas.

    const GKGenericExperiment   * getExperiment() const;
    const GKBaseObject          * getUserClass() const;
    double                      getTime() const;
    double                      getTimeSta() const;
    GKMobileAgent               * getVehicle() const;
    GKTripPurpose               * getPurpose() const;

Classe GKNode

A assinatura da função getMinimalPolygons foi modificado, agora tem um terceiro parâmetro opcional curvedGeometry para obter os polígonos com linhas curvas ou retas unindo as seções.

QVector<GKPoints> getMinimalPolygons( const GKGenericScenario * scenario, bool includeNotDrawn = true, bool curvedGeometry = true ) const;

Classe GKObject

A assinatura da função clone foi modificado; agora tem um segundo parâmetro opcional temporary.

virtual GKObject * clone( bool addItToModel = true, bool temporary = false ) const;

Classe GKTrafficDemand

A função `getTotalTrips agora funciona com Matrizes OD e Estados de Tráfego.

Classe GKTrafficState

A seguinte função foi adicionada:

double getTotalTrips() const;

Classe GKScenarioInputData

A assinatura da seguinte função:

const QList< QPair<QString,QString> > & getExtensions() const;
foi substituído por:
const QList< QPair<GKFilePath,QString> > & getExtensions() const;

Classe GKSection

As seguintes funções para consultar o estado da geometria dado um cenário ou experimento foram adicionadas:

GKNode * getOrigin( const GKGenericScenario* scenario ) const;
GKNode * getDestination( const GKGenericScenario* scenario ) const;

GKNode * getOrigin( const GKGenericExperiment* experiment ) const;
GKNode * getDestination( const GKGenericExperiment* experiment ) const;

Classe GKSystem

A seguinte função teve seu comportamento alterado:

QString tryToPutVariablePath( const QString & fileName, GKModel * model = nullptr ) const;
Agora ela substitui apenas o caminho para $APP_HOME e $PLUGINS_HOME. Para $MODEL_HOME, use um caminho relativo.

DynamicDepartureAdjustmentExperimentResult Class

O DynamicDepartureAdjustmentExperimentResult classe foi adicionada. Representa um Resultado de Reprogramação Dinâmica do Horário de Partida OD.

Classe DynamicDepartureAdjustmentExperimentResultOutput

O DynamicDepartureAdjustmentExperimentResultOutput classe foi adicionada. Representa uma Saída de Resultado de Reprogramação Dinâmica do Horário de Partida OD.

Classe MacroExperimentParams

As seguintes funções foram adicionadas:

virtual bool getBiCriteriaEnabled() const;
virtual GKColumn* getSectionTollAttr( const GKUserClass* user ) const;
virtual GKColumn* getTurningTollAttr( const GKUserClass* user ) const;

virtual void setBiCriteriaEnabled( bool enabled );
virtual void resetTollAttributes();
virtual void setSectionTollAttr( const GKUserClass* user, GKColumn* col );
virtual void setTurningTollAttr( const GKUserClass* user, GKColumn* col );

Classe GKControlJunction

Um novo parâmetro foi adicionado para junções atuadas com fases coordenadas para definir como aplicar o parâmetro de defasagem:

enum OffsetReferencePoint { eBeginningOfFirstCoordinatedPhase, eBeginningOfLastCoordinatedPhase, eEndOfFirstCoordinatedPhase };

void setOffsetReferencePoint(OffsetReferencePoint referencePoint );
OffsetReferencePoint getOffsetReferencePoint() const;

Estas substituem as seguintes funções:

void setMatchesOffsetWithEndOfPhase( const bool c );
bool getMatchesOffsetWithEndOfPhase() const;

Todos os usos anteriores devem ser substituídos da seguinte forma:

#junction.setMatchesOffsetWithEndOfPhase(true);
junction.setOffsetReferencePoint(GKControlJunction.eEndOfFirstCoordinatedPhase);
#junction.setMatchesOffsetWithEndOfPhase(false);
junction.setOffsetReferencePoint(GKControlJunction.eBeginningOfFirstCoordinatedPhase);

alterações do Aimsun Next 23.0.1

A seguir é apresentada uma lista de todas as classes e funções que foram alteradas ou adicionadas após o lançamento do Aimsun Next 23 Final Release. As classes com alterações são:

Classe GKCentroidConfiguration

A assinatura das seguintes funções:

static GKCentroidConfiguration * getActualCentroidConfiguration( GKModel *, bool = false );
    void desactivate();
foi substituído por:
    static GKCentroidConfiguration * getCreateActiveCentroidConfiguration( GKModel *, bool = false );
    void deactivate();

Classe GKPedestrianCentroidConfiguration

A assinatura da seguinte função:

    void desactivate();
foi substituído por:
    void deactivate();

Classe GKPTZonePlan

A assinatura da seguinte função:

    void desactivate();
foi substituído por:
    void deactivate();

Classe NSPReader

As classes NSPReader e NSPTreeStats relacionadas foram descontinuadas. Se você precisar recuperar informações de um arquivo APA, consulte o seguinte exemplo.

Alterações do Aimsun Next 23

A seguir está uma lista de todas as funções que foram alteradas entre Aimsun Next 22 e Aimsun Next 23 para ajudar a atualizar scripts antigos facilmente. As classes com alterações são:

Classe GAnyObjectChooser

A seguinte assinatura de função foi alterada de

void setType( GKModel * amodel, GKType * atype, const ChooserMode & amode, bool listSubTypes = true );
para
void setType( GKType * atype, const ChooserMode & amode, bool listSubTypes = true );

O seletor não é mais definido chamando

GAnyObjectChooser.eOneObjectList
agora você precisa chamar
GAnyObjectChooser.ChooserMode.eOneObjectList

Classe GKCentroid

A seguinte função que recebia um ID de cenário agora recebe o objeto do cenário:

    void recalculatePercentages( const GKGenericScenario * scenario );

Classe GKCentroidSplitConnectionToNodeCmd

A classe GKCentroidSplitConnectionToNodeCmd foi adicionada.

Um comando para mover Centroid Connections de nós para seções. Todas as conexões de/para nós serão convertidas em conexões de/para as seções conectadas a esse nó.

função setCentroid
void setCentroid( GKCentroid* centroid );

Classe GKColumn

Informações sobre uma origem GKColumn foram adicionadas. As seguintes opções são reconhecidas:

enum Origin { eUnknown, eDeveloper, eImporter, eUI, eScript };

Esta informação pode ser definida usando a seguinte função:

void setOrigin( Origin from, const QString& originDescription = QString() );

Para recuperá-lo, as seguintes funções estão disponíveis:

    Origin getOrigin() const;   
    QString getOriginDescription() const;

As seguintes funções foram adicionadas para definir/obter a precisão de ponto flutuante ao armazenar e exibir o valor:

    void setPrecision( int precision );
    int getPrecision() const;

Classe GKControlPlan

As seguintes funções foram removidas, pois não são mais necessárias:

   void updateMatchesOffset();
   void updateRedToGreenYellowTimes();

Classe GKControllerDetector

A partir de agora, o membro "detector" só está disponível por meio das seguintes funções:

getDetector

    GKDetector* getDetector() const;

setDetector

    void setDetector( GKDetector* detector );

GKControllerDetector foi dividido em classes especializadas, portanto as seguintes funções não estão mais disponíveis:

    void setType( Type value );
    Type getType() const;
Estes foram movidos para a classe GKSCOOTControllerDetector(#GKSCOOTControllerDetector).

    bool getSPIP() const;
    void setSPIP( bool sp );    
Estes foram movidos para a classe GKSCATSControllerDetector(#GKSCATSControllerDetector).

    const QString & getName() const;
    void setName( const QString & aname );

    int getLane() const;
    void setLane( int alane );
Estes foram movidos para a classe GKSCATSRMSControllerDetector(#GKSCATSRMSControllerDetector).

Classe GKSCOOTControllerDetector

Specialization of GKControllerDetector specific to Yunex UTC controllers.

setType

    void setType( Type value );

getType

    Type getType() const;

Classe GKSCATSControllerDetector

Specialization of GKControllerDetector specific to SCATS controllers.

getSPIP

    bool getSPIP() const;

setSPIP

    void setSPIP( bool sp );    

Classe GKSCATSRMSControllerDetector

Specialization of GKControllerDetector specific to SCATS-RMS controllers.

getName

    const QString & getName() const;

setName

    void setName( const QString & aname );

getLane

    int getLane() const;

setLane

    void setLane( int alane );

Classe OCITControllerDetector

Specialization of GKControllerDetector specific to OCIT controllers.

addLine

    void addLine( GKPublicLine* line, GKBusStop* stop, double secondsBeforeDeparture );

getBusStop

    GKBusStop* getBusStop( GKPublicLine* line );

getSecondsBeforeDeparture

    double getSecondsBeforeDeparture( GKPublicLine* transitLine );

setCallingPointType

    void setCallingPointType( Type type );

getCallingPointType

    Type getCallingPointType() const;

Classe SiTrafficApValue

Class SiTrafficApValue has been renamed into OCITApValue

Classe GKDrawer

A função isHidden agora recebe um const GView *.

isHidden

virtual bool isHidden( const GView * view ) const;

Classe GKDynamicAdjustmentExperiment

Duas funções-membro foram adicionadas para permitir definir e obter o agrupamento de centroides utilizado:

função setCentroidGrouping

    void    setCentroidGrouping( GKGroupingType* iCentroidGrouping );
função getCentroidGrouping
    GKGroupingType*     getCentroidGrouping() const;

A seguinte chamada de função para definir o limiar mínimo de estado foi removida:

setStateThreshold

void setStateThreshold( double iValue );

Classe GKFunctionCostContext

O atributo userClass não é recomendado para acessar o GKMobileAgent nem o GKTripPurpose. Para acessar o tipo e a finalidade do veículo, duas novas funções podem ser usadas:

    GKMobileAgent * getVehicle() const;
    GKTripPurpose * getPurpose() const;

Classe GKGenerationAttractionVector

As seguintes funções foram adicionadas para completar a interface desta classe:

setCentroidConfiguration

void setCentroidConfiguration( GKCentroidConfiguration * cent );

setCarAvailability

void setCarAvailability( const int iCarAvailability );

Classe GKGeoObject

A seguinte função que recebia um ID de cenário agora recebe o objeto do cenário:

    virtual bool exists( const GKGenericScenario * scenario ) const;

Classe GKModel

getActiveScenarioId

Nome da função alterado:

quint32 getActiveScenarioId() const;
para
const GKGenericScenario* getActiveScenario() const;

Classe GKNode

A seguinte função que recebia um ID de cenário agora recebe o objeto do cenário:

    uint getSignalPos( uint /*idSignal*/, const GKGenericScenario * scenario = nullptr ) const;

Classe GKObject

A seguinte função foi adicionada para completar a interface desta classe:

cloneAsTemporary

virtual GKObject * cloneAsTemporary( bool addItToModel = true ) const;

Classe GKODMatrix

As informações de resumo foram adicionadas como Colunas. Os seguintes novos atributos podem ser usados para acessá-las:

static uint minimumValueAtt;
static uint maximumValueAtt;
static uint emptyCellsCountAtt;
static uint nonEmptyCellsCountAtt;
static uint totalValueAtt;
static uint diagonalTotalValueAtt;
As seguintes funções foram adicionadas:
/** Change matrix internal structure to sparse. Uses less memory if the data has a lot of zeros. */
void setMatrixSparse();

/** Calculate the summary info.
 *  @param canAskUser If true and the external file cannot be found, a dialog asking for the location will be shown. */
void calculateSummary( bool canAskUser = true ) const;

/** Invalidates current summary. */
void invalidateSummary() const;

GKODMatrix& operator +=(const GKODMatrix & iMatrix);
A função ensureMatrixData tem um novo parâmetro opcional:
/** Ensures that the matrix has data. In case the matrix is externally stored it restores the content.
 * @param canAskUser If true and the external file cannot be found, a dialog asking for the location will be shown.
 * Returns false if data cannot be restored.*/
bool ensureMatrixData( const QUuid & documentUUID = QUuid(), bool canAskUser = true ) const;

Classe GKPolygon

As seguintes funções que recebiam um ID de cenário agora recebem o objeto de cenário:

    QSet<GKGeoObject*> classifyObjects( const GKGenericScenario * scenario, GKObjectsClassification objsToClassify, GKLayer * layer ) const;
    QSet<GKGeoObject*> classifyObjects( const GKGenericScenario * scenario ) const;
    QSet<GKGeoObject*> classifyObjectsInside( const GKGenericScenario * scenario, GKLayer * layer ) const;
    QSet<GKGeoObject*> classifyObjectsPartiallyInside( const GKGenericScenario * scenario, GKLayer * layer ) const;

GKRoadType

O atributo additionalVolumeAtt foi renomeado para sectionAdditionalVolumeAtt.

Os seguintes atributos foram adicionados:

    uint turnAdditionalVolumeAtt
    uint turnPenaltyFunctionAtt;
    uint junctionDelayFunctionAtt;

Classe GKRoute

A seguinte função que recebia um ID de cenário agora recebe o objeto do cenário:

        virtual bool isCorrect( int * errorID = NULL, int * indexSection = NULL, int * previousSection = NULL, const GKGenericScenario * scenario = nullptr ) const;

Classe GKScenarioInputData

Várias funções obsoletas que não eram usadas ao definir a configuração de saída do cenário foram removidas. A lista exaustiva de funções que não estão mais disponíveis é:

    bool getSystemStatistics() const;
    bool getAllPTLinesStatistics() const;
    bool getTransytStatistics() const;
    void setTransytStatistics( bool );
    bool getVehTypeStatistics() const;
    bool getDeviationStatistics() const;
    bool getAllNodesTurnsStatistics() const;
    bool getAllSectStatistics() const;
    bool getEntrancesStatistics() const;
    bool getExitsStatistics() const;
    bool getAllSubPathsStatistics() const;
    bool getAllGroupingsStatistics() const;
    void addSectListStatistics( GKSection* );
    void removeSectListStatistics( GKSection * );
    const QVector<GKSection*> & getSectListStatistics() const;
    void clearSectListStatistics();
    bool isSectionInStatistics( GKSection * ) const;
    void addNodeTurnListStatistics( GKNode * aNode );
    void removeNodeTurnListStatistics( GKNode * aNode );
    const QVector<GKNode *> & getNodeTurnListStatistics() const;
    void clearNodeTurnListStatistics();
    bool isNodeInTurnStatistics( GKNode * aNode ) const;

Classe GKSimulationArea

A seguinte função que recebia um ID de cenário agora recebe o objeto do cenário:

    void calculateGates( const GKTrafficDemand* trafficDemand, const GKGenericScenario * scenario );

Classe GKTask

A seguinte função foi adicionada para dar acesso ao identificador único de uma tarefa:

const QString & getUUID() const;

Classe GKTimeSerie

GKTimeSerie mudou de uma base de dimensão + posição para uma base de posição. O GKTimeSerieIndex desapareceu e agora apenas a posição é usada (como unsigned int).

Como exemplo, a função setValue mudou de:

virtual void setValue( GKTimeSerieIndex index, double value, double deviation = -1.0, double lowerValue = -1.0 )
para
virtual void setValue( unsigned int interval, double value, double deviation = -1.0, double lowerValue = -1.0 )

Todas as referências a dimensões, incluindo a chamada para:

int dimensions() const;
foram apagados.

Uma observação menor: a maioria dos valores de saída e entrada que não podem ser negativos foi alterada de int para unsigned int.

Os métodos get agregados, como sum, foram alterados e agora não aceitam valores QDateTime diretos como parâmetros. Como as funções permitem um índice inicial/final para o intervalo, isso deve ser suficiente.

As funções que costumavam ter uma referência de série temporal (&) como parâmetro agora têm um ponteiro para série temporal (*).

Adicionadas duas funções que permitem a obtenção e a verificação do valor nulo da série temporal fornecida, pois ele pode ser diferente com base na descrição.

A lista completa de funções que desapareceram ou mudaram de alguma forma é:

GKTimeSerie();
unsigned int size() const;
int dimensions() const;
void setDescription( GKTSDescription * aDescription );
enum ExtraInfo { eNone, eDeviation, eBands };
ExtraInfo getExtraInfo() const;
virtual void setValue( GKTimeSerieIndex index, double value, double deviation = -1.0, double lowerValue = -1.0 );
virtual double getValue( GKTimeSerieIndex index, bool * = NULL ) const;
virtual double getDeviation( GKTimeSerieIndex index, bool * = NULL ) const;
virtual double getDeviation( const GKContext & , bool * = NULL ) const;
virtual QPair<double, double> getBand( GKTimeSerieIndex index, bool *valid = NULL ) const;
virtual QPair<double, double> getBand( const GKContext & context, bool *valid = NULL ) const;
double getMean( int dimension, const QDateTime & from = QDateTime(), const QDateTime & to = QDateTime(), bool useDate = true ) const;
double getSum( int dimension, const QDateTime & from = QDateTime(), const QDateTime & to = QDateTime(), bool useDate = true ) const;
double getMax( int dimension, const QDateTime & from = QDateTime(), const QDateTime & to = QDateTime(), bool useDate = true ) const;
double getMin( int dimension = 0, const QDateTime & from = QDateTime(), const QDateTime & to = QDateTime(), bool useDate = true ) const;
void setCustomAggregatedValue( int dimension, double value, double deviation = -1.0 );
double getCustomAggregatedValue( int dimension = 0 ) const;
double getCustomAggregatedDeviation( int dimension = 0 ) const;
double getAggregatedValue( int dimension = 0 ) const;
double getAggregatedDeviation( int dimension = 0 ) const;
double getStdDev( int dimension = 0 ) const;
double getSEMean( const GKTimeSerie & /*serie2*/ ) const;
double getTheilU( const GKTimeSerie & /*serie2*/ ) const;
void getTheilUmUcUs( const GKTimeSerie & /*serie2*/, double /*SEm*/, double * /*Um*/, double * /*Uc*/, double * /*Us*/ ) const;
double getRMS(const GKTimeSerie & /*serie1*/ ) const;

Leia a documentação do arquivo sip GKTimeSerie para mais detalhes.

Classe GKTraversal

As seguintes funções que recebiam um ID de cenário agora recebem o objeto de cenário:

    void calculateGates( const GKGenericScenario * scenario );
    void calculatePublicTransport( const GKGenericScenario * scenario );

Classe GKType

Não é mais possível usar as seguintes funções para adicionar GKColumn a um GKType

    GKColumn* addColumn( const QString & iname, const GKContents& contents , GKColumn::Type atype,
                        GKColumn::GKColumnType astoreType = GKColumn::eExternalTemporary, bool dynamic = false );

    GKColumn* addColumn( const GKContents& contents , GKColumn::Type atype,
                        GKColumn::GKColumnType astoreType = GKColumn::eExternalTemporary, bool dynamic = false );

    GKColumn * addColumn( const QString & iname, const QString & aname, GKColumn::Type atype,
                            GKColumn::GKColumnType astoreType = GKColumn::eExternal, bool dynamic = false );

em vez disso, use os que estão à frente...

  • Adiciona uma GKColumn com tipo de armazenamento GKColumn::eExternal.

        GKColumn * addExternalColumn( const QString & iname, const QString & aname, GKColumn::Type atype, GKColumn::Origin from = GKColumn::eDeveloper, const QString& originDescription = QString(), bool dynamic = false, int precision = -1 );
    
  • Adiciona uma GKColumn com tipo de armazenamento GKColumn::eExternalTemporary.

        GKColumn * addTemporaryColumn( const QString & iname, const QString & aname, GKColumn::Type atype, bool dynamic = false, int precision = -1 );
        GKColumn * addTemporaryColumn( const QString & iname, const GKContents& contents , GKColumn::Type atype, bool dynamic = false, int precision = -1 );
        GKColumn * addTemporaryColumn( const GKContents& contents, GKColumn::Type atype, bool dynamic = false, int precision = -1 );   
    
  • Adiciona uma GKColumn com tipo de armazenamento GKColumn::ePython.

        GKColumn * addPythonFunctionColumn( const GKContents& contents, GKColumn::Type atype, int precision = -1 );
        GKColumn * addPythonFunctionColumn( const QString & iname, const QString & aname, GKColumn::Type atype, int precision = -1 );
    

Classe DTAManager

A seguinte função foi removida:

    DTAVehicleType * getVehicleType(const DTAUserClass * userclass) const;

Todos os usos anteriores dessa função agora podem usar o existente:

    const DTAVehicleType * getDTAVehicleType() const;

encontrado em DTAUserClass dentro de GKContext.

Exemplo de uso:

context.userClass.getDTAVehicleType()

Classe CMacroStatsManager

As seguintes funções foram adicionadas para acessar a saída de estatísticas agregadas de uma Static Assignment por meio do CMacroStatsManager:

getTotalSectionVolume

double      getTotalSectionVolume( const GKSection& iSection, const bool iWeightedByPCU = true ) const;

getTotalSectionOccupancy

double      getTotalSectionOccupancy( const GKSection& iSection ) const;

getTotalSectionCost

double      getTotalSectionCost( const GKSection& iSection, const bool iWeightedByPCU = true ) const;
getTotalSectionCostComponent
double      getTotalSectionCostComponent( const GKSection& iSection, const GKFunctionComponent& iComponent, const bool iWeightedByPCU = true ) const;

getTotalTurningVolume

double      getTotalTurningVolume( const GKTurning& iTurning, const bool iWeightedByPCU = true ) const;

getTotalTurningPercentage

double      getTotalTurningPercentage( const GKTurning& iTurning, const bool iWeightedByPCU = true ) const;

getTotalTurningCost

double      getTotalTurningCost( const GKTurning& iTurning, const bool iWeightedByPCU = true ) const;

getTotalTurningCostComponent

double      getTotalTurningCostComponent( const GKTurning& iTurning, const GKFunctionComponent& iComponent, const bool iWeightedByPCU = true ) const;

getTotalTrajectoryVolume

double      getTotalTrajectoryVolume( const GKSuperNodeTrajectory& iTrajectory, const bool iWeightedByPCU = true ) const;

getTotalTrajectoryPercentage

double      getTotalTrajectoryPercentage( const GKSuperNodeTrajectory& iTrajectory, const bool iWeightedByPCU = true ) const;

getTotalTrajectoryCost

double      getTotalTrajectoryCost( const GKSuperNodeTrajectory& iTrajectory, const bool iWeightedByPCU = true ) const;

getTotalTrajectoryCostComponent

double      getTotalTrajectoryCostComponent( const GKSuperNodeTrajectory& iTrajectory, const GKFunctionComponent& iComponent, const bool iWeightedByPCU = true ) const;

getTotalConnectionVolume

double      getTotalConnectionVolume( const GKCenConnection& iConnection, const bool iWeightedByPCU = true ) const;

getTotalConnectionCost

double      getTotalConnectionCost( const GKCenConnection& iConnection, const bool iWeightedByPCU = true ) const;

getTotalConnectionCostComponent

double      getTotalConnectionCostComponent( const GKCenConnection& iConnection, const GKFunctionComponent& iComponent, const bool iWeightedByPCU = true ) const;

getTotalRouteVolume

double      getTotalRouteVolume( const GKRoute& iRoute, const bool iWeightedByPCU = true ) const;

getTotalRouteCost

double      getTotalRouteCost( const GKRoute& iRoute, const bool iWeightedByPCU = true ) const;

getTotalRouteCostComponent

double      getTotalRouteCostComponent( const GKRoute& iRoute, const GKFunctionComponent& iComponent, const bool iWeightedByPCU = true ) const;

getTotalDetectorVolume

double      getTotalDetectorVolume( const GKDetector& iDetector, const bool iWeightedByPCU = true ) const;

Classe MacroAdjustmentExperiment

As seguintes funções foram adicionadas:

função getTargetSlopeDev

    double getTargetSlopeDev() const;

função getTargetSlopeDev

    void setTargetSlopeDev(double targetSlopeDev);

Classe MacroAdjustmentOutput

As seguintes funções foram removidas:

    const QVector<RegressionData> & getConvergenceData() const;
    GKCentroidConfiguration * getCentroidConfiguration( ) const;
    GKTimeDuration getDuration() const;
    QDateTime getStart() const;
    double getOriginalTrip( const GKCentroid& origin, const GKCentroid& destination, const GKUserClass& user ) const;
Agora todos os dados relacionados à convergência via MacroAdjustmentIterationLog.

Classe MacroPTAdjustmentScenarioOutputData

A função a seguir, que recebia um ID de experimento, agora recebe o objeto de experimento:

    QString getPathAssignmentResultsFileName( const GKGenericExperiment * experiment ) const;

Classe PTResultAdjustmentState

Esta classe foi adicionada para ajudar os usuários a acessar a demanda original e ajustada, que agrupa os seguintes dados:

Centroide de origem

const GKCentroid *  origin:

Centroide de Destino

const GKCentroid *  destination;

Classe de Usuário

const GKUserClass * user;

Demanda Original

double originalDemand

Demanda ajustada

double adjustedDemand

Classe MacroPTAdjustmentResult

A forma como os valores de demanda original e ajustada são acessados foi alterada.

A seguinte função foi removida:

getStates

const QVector<MacroAdjustmentState*> & getStates() const;

E as seguintes funções foram adicionadas para fornecer acesso aprimorado aos mesmos dados:

getNumberOfStates

unsigned int    getNumberOfStates() const;

getState

const PTResultAdjustmentState &     getState( const unsigned int iIndex ) const;

findState

PTResultAdjustmentState     findState( const GKUserClass & iUserClass, const GKCentroid & iOrigin, const GKCentroid & iDestination ) const;

Classe MacroPTExperimentParams

As seguintes funções foram adicionadas:

walkingOnlyFunction

GKFunctionCost * walkingOnlyFunction() const;

setWalkingOnlyFunction

void setWalkingOnlyFunction( GKFunctionCost * aFunction );

GradientIterationValidationData Class

Uma nova variável de membro foi adicionada:

    AdjustmentRegressionData measurements_regression;

Além disso, a variável membro chamada "regression" foi alterada de:

    AdjustmentRegressionData regression;
para
    AdjustmentRegressionData demand_regression;
Para especificar quais informações contém.

OuterIterationValidationData Class

A classe "AssignmentData" foi adicionada para conter apenas os dados relevantes de uma Static Assignment para essa classe. Por esse motivo, uma variável membro "assign_data" foi adicionada:

    AssignmentData assignment_data;

Além disso, a variável membro chamada "regression" foi alterada de:

    AdjustmentRegressionData regression;
para
    AdjustmentRegressionData measurement_regression;
Para especificar quais informações contém.

Classe DistributionOutput

Várias funções foram adicionadas para completar o scripting desta classe e conceder acesso a todos os dados que ela contém:

getNumberOfIndices

unsigned int    getNumberOfIndices() const;

createMatrix

GKODMatrix *    createMatrix( const unsigned int iIndex, const bool iTemporary ) const;

getTripPurpose

GKTripPurpose *     getTripPurpose( const unsigned int iIndex ) const;

getModes

std::vector< GKTransportationMode* >    getModes( const unsigned int iIndex ) const;

getCarAvailability

unsigned int    getCarAvailability( const unsigned int iIndex ) const;

getAverageImpedance

double          getAverageImpedance( const unsigned int iIndex )const;

getNumberOfIterations

unsigned int    getNumberOfIterations( const unsigned int iIndex ) const;

getEpsilon

double      getEpsilon( const unsigned int iIndex, const unsigned int iIteration ) const;

getResidual

double      getResidual( const unsigned int iIndex, const unsigned int iIteration ) const;

getRelativeGap

double      getRelativeGap( const unsigned int iIndex, const unsigned int iIteration ) const;

getError

double      getError( const unsigned int iIndex, const unsigned int iIteration ) const;

Classe DistributionScenario

As seguintes funções foram adicionadas para permitir a edição de quais vetores são adicionados e quais são usados no DistributionScenario:

addVector

void addVector( const GKGenerationAttractionVector & iVector );

setUsedVector

void setUsedVector( const GKGenerationAttractionVector & iVector, const bool iUsed );

removeVector

void removeVector( const GKGenerationAttractionVector & iVector );

hasVector

bool hasVector( const GKGenerationAttractionVector & iVector ) const;

setUsedVector

void setUsedVector( const GKGenerationAttractionVector & iVector, const bool iUsed );

isUsed

bool isUsed( const GKGenerationAttractionVector & iVector ) const;

getVectors

QList<const GKGenerationAttractionVector*> getVectors() const;

Classe NodeCompositor

O método a seguir foi adicionado para acessar exclusivamente os Four-Step Loops incluídos no compositor:

getLoops

std::vector<FourStepLoop*>      getLoops( ) const;

Classe FourStepLoop

Esta classe foi adicionada e representa um Loop Controller Box e possui todos os métodos de NodeCompute, além dos seguintes disponíveis:

setLoopParams

void    setLoopParams( const FourStepLoopParams &loopParams );

getLoopParams

FourStepLoopParams      getLoopParams() const;

getLoopOutputs

const   FourStepLoopOutputs&    getLoopOutputs() const;

getNodesInLoop

QVector<NodeCompute *> getNodesInLoop() const;

Classe FourStepLoopParams

Esta classe foi adicionada e representa os parâmetros que podem ser configurados na Loop Controller Box.

Classe FourStepLoopOutputs

Esta classe foi adicionada e representa os resultados que podem ser gerados a partir da Loop Controller Box.

alterações do Aimsun Next 22.0.1

A seguir está uma lista de todas as funções que foram alteradas ou adicionadas após o lançamento do Aimsun Next 22.0.0 Final Release. As classes com alterações são:

Classe MacroDepartureAdjustmentOutput

createWarmupTrafficDemand

A seguinte função foi adicionada para gerar apenas a demanda de aquecimento:

    GKTrafficDemand * createWarmupTrafficDemand() const;

Classe GKFunctionCost

evaluateAdjustmentWeight

A assinatura desta função foi alterada de:

    double evaluateAdjustmentWeight(  double observed );
para:
    double evaluateAdjustmentWeight( const GKFunctionCostContext* context, const double observed );

Classe GKFunctionCostContext

  • A classe GKFunctionCostContext agora inclui um campo de iteração que contém a iteração de alocação estática na qual a função está sendo avaliada.

Classe CMacroStatsManager

As seguintes funções foram adicionadas para fornecer todos os usuários e veículos usados nas estatísticas:

função getUsers
    QVector< GKUserClass* >     getUsers() const;
função getVehicles
    QVector< GKVehicle* >       getVehicles() const;

As seguintes funções foram adicionadas para dar acesso a todas as estatísticas desta classe:

função getSectionVolume
    double          getSectionVolume( const GKUserClass * iUserClass, const GKSection& iSection) const;
função getSectionVehicleVolume
    double          getSectionVehicleVolume( const GKVehicle * iVehicle, const GKSection& iSection ) const;
função getSectionOccupancy
    double          getSectionOccupancy( const GKUserClass * iUserClass, const GKSection& iSection) const;
função getSectionCost
    double          getSectionCost( const GKUserClass * iUserClass, const GKSection& iSection) const;
função getSectionCostComponent
    double          getSectionCostComponent( const GKUserClass * iUserClass, const GKSection& iSection, const GKFunctionComponent& iComponent ) const;
função getTurningVolume
    double          getTurningVolume( const GKUserClass * iUserClass, const GKTurning& iTurning ) const;
função getTurningVehicleVolume
    double          getTurningVehicleVolume( const GKVehicle * iVehicle, const GKTurning& iTurning ) const;
função getTurningPercentage
    double          getTurningPercentage( const GKUserClass * iUserClass, const GKTurning& iTurning ) const;
função getTurningCost
    double          getTurningCost( const GKUserClass * iUserClass, const GKTurning& iTurning ) const;
função getTurningCostComponent
    double          getTurningCostComponent( const GKUserClass * iUserClass, const GKTurning& iTurning, const GKFunctionComponent& iComponent ) const;
função getTrajectoryVolume
    double          getTrajectoryVolume( const GKUserClass * iUserClass, const GKSuperNodeTrajectory& iTrajectory ) const;
getTrajectoryVehicleVolume function
    double          getTrajectoryVehicleVolume( const GKVehicle * iVehicle, const GKSuperNodeTrajectory& iTrajectory ) const;
função getTrajectoryPercentage
    double          getTrajectoryPercentage( const GKUserClass * iUserClass, const GKSuperNodeTrajectory& iTrajectory ) const;
função getTrajectoryCost
    double          getTrajectoryCost( const GKUserClass * iUserClass, const GKSuperNodeTrajectory& iTrajectory ) const;
getTrajectoryCostComponent function
    double          getTrajectoryCostComponent( const GKUserClass * iUserClass, const GKSuperNodeTrajectory& iTrajectory, const GKFunctionComponent& iComponent ) const;
função getConnectionVolume
    double          getConnectionVolume( const GKUserClass * iUserClass, const GKCenConnection& iConnection ) const;
getConnectionVehicleVolume function
    double          getConnectionVehicleVolume( const GKVehicle * iVehicle, const GKCenConnection& iConnection ) const;
função getConnectionCost
    double          getConnectionCost( const GKUserClass * iUserClass, const GKCenConnection& iConnection ) const;
getConnectionCostComponent function
    double          getConnectionCostComponent( const GKUserClass * iUserClass, const GKCenConnection& iConnection, const GKFunctionComponent& iComponent ) const;
função getRouteVolume
    double          getRouteVolume( const GKUserClass * iUserClass, const GKRoute& iRoute ) const;
função getRouteVehicleVolume
    double          getRouteVehicleVolume( const GKVehicle * iVehicle, const GKRoute& iRoute ) const;
função getRouteCost
    double          getRouteCost( const GKUserClass * iUserClass, const GKRoute& iRoute ) const;
função getRouteCostComponent
    double          getRouteCostComponent( const GKUserClass * iUserClass, const GKRoute& iRoute, const GKFunctionComponent& iComponent ) const;
função getDetectorVolume
    double          getDetectorVolume( const GKUserClass * iUserClass, const GKDetector& iDetector ) const;
função getDetectorVehicleVolume
    double          getDetectorVehicleVolume( const GKVehicle * iVehicle, const GKDetector& iDetector ) const;

Classe MacroPTAdjustmentResult

As seguintes funções foram adicionadas para dar acesso à demanda ajustada via scripting:

função getUsers
    QVector<GKUserClass*>   getUsers() const;
função publishAdjustedDemand
    GKTrafficDemand *       publishAdjustedDemand( GKModel *iModel );
função publishMatrix
    GKODMatrix *            publishMatrix(GKUserClass * iUser , bool iCreateInModel) const;

Classe MacroPTStatsView

Os seguintes métodos foram adicionados para obter as estatísticas de Centroides e conexões de Centroide:

função getCentroidAccess
    double getCentroidAccess( const GKUserClass* iUserClass, const GKCentroid& iCentroid ) const;
função getCentroidEgress
double getCentroidEgress( const GKUserClass* iUserClass, const GKCentroid& iCentroid ) const;
função getCentroidWalkOnlyAccess
    double getCentroidWalkOnlyAccess( const GKUserClass* iUserClass, const GKCentroid& iCentroid ) const;
função getCentroidWalkOnlyEgress
    double getCentroidWalkOnlyEgress( const GKUserClass* iUserClass, const GKCentroid& iCentroid ) const;
função getConnectionLoad
    double getConnectionLoad( const GKUserClass* iUserClass, const GKCenConnection& iConnection ) const;
função getConnectionAccess
    double getConnectionAccess( const GKUserClass* iUserClass, const GKCenConnection& iConnection ) const;
função getConnectionEgress
    double getConnectionEgress( const GKUserClass* iUserClass, const GKCenConnection& iConnection ) const;
função getConnectionWalkOnlyAccess
    double getConnectionWalkOnlyAccess( const GKUserClass* iUserClass, const GKCenConnection& iConnection ) const;
função getConnectionWalkOnlyEgress
    double getConnectionWalkOnlyEgress( const GKUserClass* iUserClass, const GKCenConnection& iConnection ) const;

Classe MacroPTPlugin

Os seguintes ids de colunas foram adicionados para coletar as estatísticas de Walking-Only Access e Walking-Only Egress em GKColumns:

ePTWalkOnlyAccess
const QString ePTWalkOnlyAccess;
ePTWalkOnlyEgress
const QString ePTWalkOnlyEgress;

GKGenerationAttractionDataSet Class

A seguinte função foi adicionada para dar acesso aos dados externos contidos na classe:

getExternalData
QVector<ExternalData>       getExternalData( const GKCentroid* centroid ) const;

Classe GKScriptNewCmd

Agora é possível criar diferentes tipos de objetos GKScript usando a seguinte função:

void setObjectType( GKScript::ScriptType type );
  • type param pode ser uma das seguintes opções, enum ScriptType{ eBasic, ePrePost, eFourStep }. Se não for especificado, o objeto será criado como GKScript::eBasic.

Classe GKSection

A seguinte função foi adicionada para extrair pontos de contorno de faixa:

função getExtremePointsLane
GKPoints getExtremePointsLane( uint lanepos ) const;

Alterações do Aimsun Next 22

A seguir está uma lista de todas as funções que foram alteradas entre Aimsun Next 20 e Aimsun Next 22 para ajudar a atualizar scripts antigos facilmente. As classes com alterações são:

Classe GKModel

função setActiveExperimentId

Nome da função alterado:

void setActiveExperimentId( quint32 id );
para
void setActiveExperiment( GKGenericExperiment* experiment );
função getActiveExperimentId

Nome da função alterado:

quint32 getActiveExperimentId() const;
para
GKGenericExperiment* getActiveExperiment() const;
função setActiveReplicationId

Nome da função alterado:

void setActiveReplicationId( quint32 id );
para
void setActiveReplication( const GKReplication* replication );
função getActiveReplicationId

Nome da função alterado:

quint32 getActiveReplicationId() const;
para
GKReplication* getActiveReplication() const;

Classe ModalSplitScenario

função setDataSet

A assinatura da função foi alterada de:

void setDataSet( quint32 id );
para
void setDataSet( GKDistributionDataSet * dataSet );
função getComponentSkim

A assinatura da função foi alterada de:

GKODMatrix* getComponentSkim( const GKODMatrix& iTripMatrix, const GKTransportationMode& iMode, const GKFunctionComponent& iComponent ) const;
para
GKODMatrix* getComponentSkim( const GKODMatrix* iTripMatrix, const GKTransportationMode* iMode, const GKFunctionComponent* iComponent ) const;
função setComponentSkim

A assinatura da função foi alterada de:

void setComponentSkim( const GKODMatrix& iTripMatrix, const GKTransportationMode& iMode, const GKFunctionComponent& iComponent, GKODMatrix& iSkim );
para
void setComponentSkim( const GKODMatrix* iTripMatrix, const GKTransportationMode* iMode, const GKFunctionComponent* iComponent, GKODMatrix* iSkim );
função removeComponentSkim

A assinatura da função foi alterada de:

void removeComponentSkim( const GKODMatrix& iTripMatrix, const GKTransportationMode& iMode, const GKFunctionComponent& iComponent );
para
void removeComponentSkim( const GKODMatrix* iTripMatrix, const GKTransportationMode* iMode, const GKFunctionComponent* iComponent );
função getUserDefinedSkim

A assinatura da função foi alterada de:

GKODMatrix* getUserDefinedSkim( const GKODMatrix& iTripMatrix, const GKTransportationMode& iMode, const uint iColumnIndex ) const;
para
GKODMatrix* getUserDefinedSkim( const GKODMatrix* iTripMatrix, const GKTransportationMode* iMode, const uint iColumnIndex ) const;
função setUserDefinedSkim

A assinatura da função foi alterada de:

void setUserDefinedSkim( const GKODMatrix& iTripMatrix, const GKTransportationMode& iMode, const uint iColumnIndex, GKODMatrix& iSkim );
para
void setUserDefinedSkim( const GKODMatrix* iTripMatrix, const GKTransportationMode* iMode, const uint iColumnIndex, GKODMatrix* iSkim );
função removeUserDefinedSkim

A assinatura da função foi alterada de:

void removeUserDefinedSkim( const GKODMatrix& iTripMatrix, const GKTransportationMode& iMode, const uint iColumnIndex );
para
void removeUserDefinedSkim( const GKODMatrix* iTripMatrix, const GKTransportationMode* iMode, const uint iColumnIndex );
função getAllSkims

A assinatura da função foi alterada de:

QVector<GKODMatrix*> getAllSkims( const GKODMatrix& iTripMatrix, const GKTransportationMode& iMode ) const;
para
QVector<GKODMatrix*> getAllSkims( const GKODMatrix* iTripMatrix, const GKTransportationMode* iMode ) const;

Classe ModalSplitOutput

função getTripPurposes

A assinatura da função foi alterada de:

QVector< GKTripPurpose* > getTripPurposes( GKModel * model ) const;
para
QVector< GKTripPurpose* > getTripPurposes() const;
função getVehicles

A assinatura da função foi alterada de:

QVector<const GKMobileAgent*> getVehicles( GKModel * model ) const;
para
QVector<const GKMobileAgent*> getVehicles() const;
função getUsers

A assinatura da função foi alterada de:

QVector< GKUserClass * > getUsers( GKModel * model ) const;
para
QVector< GKUserClass * > getUsers() const;
função getModalSplit

A assinatura da função foi alterada de:

double getModalSplit( GKModel * model, GKTripPurpose * purpose, const GKMobileAgent * vehicle ) const;
para
double getModalSplit( GKTripPurpose * purpose, const GKMobileAgent * vehicle ) const;
função getTimePeriod

A assinatura da função foi alterada de:

GKTimePeriod * getTimePeriod( GKModel * model ) const;
para
GKTimePeriod * getTimePeriod() const;

ModalSplitTripMatricesUtil Class

função tripMatrices

A assinatura da função foi alterada de:

QList<quint32> tripMatrices() const;
para
QList<const GKODMatrix*> tripMatrices() const;
função usedTripMatrices

A assinatura da função foi alterada de:

const QSet<quint32> & usedTripMatrices() const;
para
QList<const GKODMatrix*> usedTripMatrices() const;
função tripMatrixData

A assinatura da função foi alterada de:

GKLandUseModesUtil tripMatrixData( quint32 iTripMatrix ) const;
para
GKLandUseModesUtil tripMatrixData( const GKODMatrix* matrix ) const;
função setUsedTripMatrices

A assinatura da função foi alterada de:

void setUsedTripMatrices( const QSet<quint32> &iUsedTripMatrices );
para
void setUsedTripMatrices( const QVector<GKODMatrix*> &iUsedTripMatrices );
função modes

Funções:

QList<quint32> modes() const;
QList<quint32> modes( quint32 iTripMatrix ) const;
são substituídos por
QList<GKTransportationMode*> modes() const;

Classe DistributionScenario

função getSkim

A assinatura da função foi alterada de:

GKODMatrix* getSkim( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode ,  const GKODMatrix::AssignmentOutput & iCostType ) const;
para
GKODMatrix* getSkim( const GKGenerationAttractionVector* iGAVector , const GKTransportationMode* iMode ,  const SkimType& type ) const;
função setSkim

A assinatura da função foi alterada de:

void setSkim(const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode , GKODMatrix &iSkim );
para
void setSkim(const GKGenerationAttractionVector* iGAVector , const GKTransportationMode* iMode , GKODMatrix *iSkim );
função removeSkim

A assinatura da função foi alterada de:

void removeSkim( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode ,  const GKODMatrix::AssignmentOutput & iCostType );
para
void removeSkim( const GKGenerationAttractionVector* iGAVector , const GKTransportationMode* iMode ,  const SkimType& type  );
função getComponentSkim

A assinatura da função foi alterada de:

GKODMatrix* getComponentSkim( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode, const GKFunctionComponent& iComponent ) const;
para
GKODMatrix* getComponentSkim( const GKGenerationAttractionVector* iGAVector , const GKTransportationMode* iMode, const GKFunctionComponent* iComponent ) const;
função setComponentSkim

A assinatura da função foi alterada de:

void setComponentSkim( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode, const GKFunctionComponent& iComponent, GKODMatrix& iSkim );
para
void setComponentSkim( const GKGenerationAttractionVector* iGAVector , const GKTransportationMode* iMode, const GKFunctionComponent* iComponent, GKODMatrix* iSkim );
função removeComponentSkim

A assinatura da função foi alterada de:

void removeComponentSkim( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode, const GKFunctionComponent& iComponent );
para
void removeComponentSkim( const GKGenerationAttractionVector* iGAVector , const GKTransportationMode* iMode, const GKFunctionComponent* iComponent );   
função getUserDefinedSkim

A assinatura da função foi alterada de:

GKODMatrix* getUserDefinedSkim( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode, const uint iColumnIndex ) const;
para
GKODMatrix* getUserDefinedSkim( const GKGenerationAttractionVector* iGAVector , const GKTransportationMode* iMode, const uint iColumnIndex ) const;
função setUserDefinedSkim

A assinatura da função foi alterada de:

void setUserDefinedSkim( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode, const uint iColumnIndex, GKODMatrix& iSkim );
para
void setUserDefinedSkim( const GKGenerationAttractionVector* iGAVector , const GKTransportationMode* iMode, const uint iColumnIndex, GKODMatrix* iSkim );
função removeUserDefinedSkim

A assinatura da função foi alterada de:

void removeUserDefinedSkim( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode, const uint iColumnIndex );
para
void removeUserDefinedSkim( const GKGenerationAttractionVector* iGAVector , const GKTransportationMode* iMode, const uint iColumnIndex );
função getAllSkims

A assinatura da função foi alterada de:

QVector<GKODMatrix*> getAllSkims( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode ) const;s
para
QVector<GKODMatrix*> getAllSkims( const GKGenerationAttractionVector* iGAVector , const GKTransportationMode* iMode ) const;

Classe GravityModelParams

função setDeterrenceFunctionId

Função alterada de:

void setDeterrenceFunctionId(qint32 iDeterrenceFunctionId);
para
void setDeterrenceFunction( GKFunctionCost* iDeterrenceFunction );
função getDeterrenceFunctionId

Função alterada de:

qint32  getDeterrenceFunctionId() const;
para
GKFunctionCost*  getDeterrenceFunction() const;

Classe GKLandUseModesUtil

função setObject

A assinatura da função foi alterada de:

void setObject( quint32 iObject );
para
void setObject( const GKObject* iObject );
função de objeto

A assinatura da função foi alterada de:

quint32 object() const;
para
const GKObject* object() const;
função addMode

A assinatura da função foi alterada de:

void addMode( quint32 iMode );
para
void addMode( const GKTransportationMode* iMode );
contém função

A assinatura da função foi alterada de:

bool contains( quint32 iMode ) const;
para
bool contains( const GKTransportationMode* iMode ) const;
função modes

A assinatura da função foi alterada de:

QList<quint32> modes() const;
para
QVector<GKLandUseSkimMatricesUtil> modes() const;
função addMacroComponent

A assinatura da função foi alterada de:

void addMacroComponent( quint32 iMacroComponentId );
para
void addMacroComponent( const GKFunctionComponent* component );
função skims

A assinatura da função foi alterada de:

GKLandUseSkimMatricesUtil skims( quint32 iMode ) const;
para
GKLandUseSkimMatricesUtil skims( const GKTransportationMode * iMode ) const;

Classe GKLandUseSkimMatricesUtil

função transportationMode

A assinatura da função foi alterada de:

quint32 transportationMode() const;
para
const GKTransportationMode* transportationMode() const;
função setCostSkim

A assinatura da função foi alterada de:

void setCostSkim( const quint32 &iSkim );
para
void setCostSkim( const GKODMatrix *iSkim );
função costSkim

A assinatura da função foi alterada de:

const quint32 & costSkim() const;
GKODMatrix * costSkim( GKModel *iModel ) const;
para
GKODMatrix * costSkim() const;
função setDistanceSkim

A assinatura da função foi alterada de:

void setDistanceSkim( const quint32 &iSkim );
para
void setDistanceSkim( const GKODMatrix *iSkim );
função distanceSkim

Funções:

const quint32 & distanceSkim() const;
GKODMatrix * distanceSkim( GKModel *iModel ) const;
são substituídos por
GKODMatrix * distanceSkim() const;
função setTravelTimeSkim

A assinatura da função foi alterada de:

void setTravelTimeSkim( const quint32 &iSkim );
para
void setTravelTimeSkim( const GKODMatrix *iSkim );
função travelTimeSkim

Funções:

const quint32 & travelTimeSkim() const;
GKODMatrix * travelTimeSkim( GKModel *iModel ) const;
são substituídos por
GKODMatrix * travelTimeSkim() const;
função travelTimeSkim

Funções:

const quint32 & travelTimeSkim() const;
GKODMatrix * travelTimeSkim( GKModel *iModel ) const;
são substituídos por
GKODMatrix * travelTimeSkim() const;
função setInVehicleTimeSkim

A assinatura da função foi alterada de:

void setInVehicleTimeSkim( const quint32 &iSkim );
para
void setInVehicleTimeSkim( const GKODMatrix *iSkim );
função inVehicleTimeSkim

Funções:

const quint32 & inVehicleTimeSkim() const;
GKODMatrix * inVehicleTimeSkim( GKModel *iModel ) const;
são substituídos por
GKODMatrix * inVehicleTimeSkim() const;
função setWaitingTimeSkim

A assinatura da função foi alterada de:

void setWaitingTimeSkim( const quint32 &iSkim );
para
void setWaitingTimeSkim( const GKODMatrix *iSkim );
função waitingTimeSkim

Funções:

const quint32 & waitingTimeSkim() const;
GKODMatrix * waitingTimeSkim( GKModel *iModel ) const;
são substituídos por
GKODMatrix * waitingTimeSkim() const;
função setWalkingTimeSkim

A assinatura da função foi alterada de:

void setWalkingTimeSkim( const quint32 &iSkim );
para
void setWalkingTimeSkim( const GKODMatrix *iSkim );
função walkingTimeSkim

Funções:

const quint32 & walkingTimeSkim() const;
GKODMatrix * walkingTimeSkim( GKModel *iModel ) const;
são substituídos por
GKODMatrix * walkingTimeSkim() const;
função setTransferPenaltySkim

A assinatura da função foi alterada de:

void setTransferPenaltySkim( const quint32 &iSkim );
para
void setTransferPenaltySkim( const GKODMatrix *iSkim );
função transferPenaltySkim

Funções:

const quint32 & transferPenaltySkim() const;
GKODMatrix * transferPenaltySkim( GKModel *iModel ) const;
são substituídos por
GKODMatrix * transferPenaltySkim() const;
função setFareSkim

A assinatura da função foi alterada de:

void setFareSkim( const quint32 &iSkim );
para
void setFareSkim( const GKODMatrix *iSkim );
função fareSkim

Funções:

const quint32 & fareSkim() const;
GKODMatrix * fareSkim( GKModel *iModel ) const;
são substituídos por
GKODMatrix * fareSkim() const;
função setCrowdDiscomfortSkim

A assinatura da função foi alterada de:

void setCrowdDiscomfortSkim( const quint32 &iSkim );
para
void setCrowdDiscomfortSkim( const GKODMatrix *iSkim );
função crowdDiscomfortSkim

Funções

const quint32 & crowdDiscomfortSkim() const;
GKODMatrix * crowdDiscomfortSkim( GKModel *iModel ) const;
são substituídos por
GKODMatrix * crowdDiscomfortSkim() const;
função addMacroComponent

A assinatura da função foi alterada de:

void addMacroComponent( quint32 iMacroComponentId );
para
void addMacroComponent( const GKFunctionComponent* component );
função setMacroComponentSkim

A assinatura da função foi alterada de:

void setMacroComponentSkim( quint32 iMacroComponentId, quint32 iSkim );
para
void setMacroComponentSkim( const GKFunctionComponent* component, const GKODMatrix* iSkim );
função macroComponentSkim

A assinatura da função foi alterada de:

quint32 macroComponentSkim( quint32 iMacroComponentId ) const;
para
GKODMatrix* macroComponentSkim( const GKFunctionComponent* component ) const;
função setUserDefinedSkim

A assinatura da função foi alterada de:

void setUserDefinedSkim( int index, quint32 iSkim );
para
void setUserDefinedSkim( int index, const GKODMatrix* iSkim );
função userDefinedSkims

A assinatura da função foi alterada de:

const QList<quint32> & userDefinedSkims() const;
para
QList<const GKODMatrix*> userDefinedSkims() const;

Classe SkimDataProvider

O tipo enum SkimType foi movido para fora desta classe, para o namespace genérico. Agora ele é definido em GKLandUseSkimMatricesUtil.

Classe MacroPTExperimentParams

Funções

qint32 transferPenaltyId() const;
void setTransferPenalty( qint32 iId );

são substituídos por

GKFunctionCost* getTransferPenalty() const;
void setTransferPenalty( GKFunctionCost* function );

Classe MacroPTAdjustmentScenarioOutputData

função userDefinedSkims

A assinatura da função foi alterada de:

GKProblemNet * getProblemNet(GKModel *iModel) const;
para
GKProblemNet * getProblemNet() const;

Classe PTExperimentOutputData

função getSkimMatrices

A assinatura da função foi alterada de:

QVector< qint32 > getSkimMatrices( GKModel * model ) const;
para
QList< const GKODMatrix* > getSkimMatrices() const;
função setSkimMatrices

A assinatura da função foi alterada de:

void setSkimMatrices( const QVector<qint32> & iMatrices );
para
void setSkimMatrices( const QVector<const GKODMatrix*>& matrices );

Classe GKDistributionDataSet

função setDistributionArea

A assinatura da função foi alterada de:

void setDistributionArea( int iCentroidId, int iArea );
para
void setDistributionArea( const GKCentroid* centroid, GKDistributionCentroidType* area );
função setParkingArea

A assinatura da função foi alterada de:

void setParkingArea( int iCentroidId, int iArea );
para
void setParkingArea( const GKCentroid* centroid, GKParkingCentroidType* area );
função setAttributeValue

A assinatura da função foi alterada de:

void setAttributeValue(qint32 iCentroidId, int iUserClassId, int attributeIndex, double iValue );
para
void setAttributeValue( const GKCentroid* centroid, GKUserClass *user, int attributeIndex, double iValue );
função getAttributeValue

A assinatura da função foi alterada de:

double getAttributeValue(qint32 iCentroidId, int iUserClassId, int attributeIndex ) const;
para
double getAttributeValue( const GKCentroid* centroid, GKUserClass *user, int attributeIndex ) const;
função getDistributionData

A assinatura da função foi alterada de:

CentroidDistributionData* getDistributionData( int iCentroidId ) const;
para
CentroidDistributionData* getDistributionData( const GKCentroid* centroid ) const;
função setDistributionData

A assinatura da função foi alterada de:

void setDistributionData( int iCentroidId, CentroidDistributionData * iCentroidDistributionData );
para
void setDistributionData( const GKCentroid* centroid, CentroidDistributionData * iCentroidDistributionData );
função getDistributionArea

A assinatura da função foi alterada de:

GKDistributionCentroidType * getDistributionArea( int iCentroidId ) const;
para
GKDistributionCentroidType * getDistributionArea( const GKCentroid* centroid ) const;
função getParkingArea

A assinatura da função foi alterada de:

GKParkingCentroidType * getParkingArea( int iCentroidId ) const;
para
GKParkingCentroidType * getParkingArea( const GKCentroid* centroid ) const;
função setUseParkingAreaCosts

A assinatura da função foi alterada de:

void setUseParkingAreaCosts( int iCentroidId, bool iValue );
para
void setUseParkingAreaCosts( const GKCentroid* centroid, bool iValue );
função getUseParkingAreaCosts

A assinatura da função foi alterada de:

bool getUseParkingAreaCosts( int iCentroidId ) const;
para
bool getUseParkingAreaCosts( const GKCentroid* centroid ) const;
função setExternalArea

A assinatura da função foi alterada de:

void setExternalArea( int iCentroidId, bool iValue );
para
void setExternalArea( const GKCentroid* centroid, bool iValue );
função getExternalArea

A assinatura da função foi alterada de:

bool getExternalArea( int iCentroidId ) const;
para
bool getExternalArea( const GKCentroid* centroid ) const;
função getModalSplitData

Nova função para acessar os dados de divisão modal de um centroide. Conjunto total de registros:

void QVector<ModalSplitData> getModalSplitData( const GKCentroid* centroid ) const;
Registro específico:
ModalSplitData getModalSplitData(ModalSplitData::Type iType, const GKCentroid* centroid, qint32 iPurpose, qint32 iCarAvailability, qint32 iTimePeriod ) const;
função setModalSplitData

Nova função para definir o conjunto total de registros de divisão modal em um centroide:

void setModalSplitData( const GKCentroid* centroid, const QVector< ModalSplitData > & iData );

Classe ModalSplitData

função getCarAvailabiltiy

Nova função para obter a disponibilidade de carro:

qint32 getCarAvailabiltiy() const;
função getFactor

Nova função para obter um fator de modo de transporte:

double getFactor( GKTransportationMode* mode ) const;
função getPurpose

Nova função para obter o propósito:

qint32 getPurpose() const;
função getTimePeriod

Nova função para obter o período de tempo:

qint32 getTimePeriod() const;
função getType

Nova função para obter o tipo de divisão modal ( 0 - Geração, 1 - Atração ):

Type getType() const;
função setCarAvailability

Nova função para definir a disponibilidade de carro:

void setCarAvailability( qint32 iMode );
função setFraction

Nova função para definir o fator de um modo de transporte:

void setFraction( GKTransportationMode* iMode, double iFactor );
função setPurpose

Nova função para definir o propósito:

void setPurpose( GKTripPurpose* purpose );
função setTimePeriod

Nova função para definir o período de tempo:

void setTimePeriod( GKTimePeriod* period );
função setType

Nova função para definir o tipo de divisão modal ( 0 - Geração, 1 - Atração ):

void setType( Type iType );
função válida

Nova função para verificar a validade dos dados de divisão modal ( valid = atributos e percentuais estão corretos ):

bool valid() const;
função validAttributes

Nova função para verificar a validade dos atributos de dados de divisão modal:

bool validAttributes() const;
função validPercentages

Nova função para verificar a validade dos percentuais de dados de divisão modal:

bool validPercentages() const;

Classe CentroidDistributionData

atributo distributionArea

O atributo int distributionArea foi substituído pelas seguintes funções:

    void setDistributionArea( GKDistributionCentroidType* area );
    GKDistributionCentroidType* getDistributionArea() const;
atributo parkingArea

O atributo int parkingArea foi substituído pelas seguintes funções:

    void setParkingArea( GKParkingCentroidType * area );
    GKParkingCentroidType* getParkingArea() const;
função setDistributionAttribute

A assinatura da função foi alterada de:

void setDistributionAttribute( int iUserClassId, uint iIndex, double iValue );
para
void setDistributionAttribute( GKUserClass *user, uint iIndex, double iValue );
função getDistributionAttribute

A assinatura da função foi alterada de:

double getDistributionAttribute( int iUserClassId, uint iIndex ) const
para
double getDistributionAttribute( GKUserClass *user, uint iIndex ) const;

Classe MacroExperimentOutputData

função getSkimMatrices

A assinatura da função foi alterada de:

QVector< GKODMatrix* > getSkimMatrices( GKModel * model ) const;
para
QVector< GKODMatrix* > getSkimMatrices() const;
função setSkimMatrices

A assinatura da função foi alterada de:

void setSkimMatrices( const QVector<qint32> & iMatrices );
para
void setSkimMatrices( const QVector<GKODMatrix*> & iMatrices );

Classe GKGenerationAttractionScenario

função setDataGroup

A assinatura da função foi alterada de:

void setDataGroup( int dataGroup );
para
void setDataGroup( GKGenerationAttractionDataSet* dataGroup );
função getDataGroup

A assinatura da função foi alterada de:

int getDataGroup() const;
para
GKGenerationAttractionDataSet* getDataGroup() const;

Classe GKGenerationAttractionCentroidType

função setGAFactors

A assinatura da função foi alterada de:

void setGAFactors( qint32 dataSetId, qint32 variableId, qint32 timePeriodId, qint32 modeId, qint32 purposeId, double generation, double attraction );
para
void setGAFactors( GKGenerationAttractionDataSet* dataSet, qint32 variableId, qint32 timePeriodId, qint32 modeId, qint32 purposeId, double generation, double attraction );
função getGAFactors

A assinatura da função foi alterada de:

QPair<double,double> getGAFactors( qint32 dataSetId, qint32 variableId, qint32 timePeriodId, qint32 modeId, qint32 purposeId );
para
QPair<double,double> getGAFactors( GKGenerationAttractionDataSet* dataSet, qint32 variableId, qint32 timePeriodId, qint32 modeId, qint32 purposeId ) const;

GKGenerationAttractionData Class

atributo m_variable

O atributo int m_variable foi substituído pelas seguintes funções:

    void setVariable( GKGenerationAttractionDataSetAttribute* var );
    GKGenerationAttractionDataSetAttribute* getVariable() const;
atributo m_timePeriod

O atributo int m_timePeriod foi substituído pelas seguintes funções:

    void setTimePeriod( GKTimePeriod* period );
    GKTimePeriod* getTimePeriod() const;
atributo m_mode

O atributo int m_mode foi substituído pelas seguintes funções:

    void setMode( GKTransportationMode* mode );
    GKTransportationMode* getMode() const;

Classe GKGenerationAttractionFactor

atributo m_purpose

O atributo int m_purpose foi substituído pelas seguintes funções:

    void setPurpose( GKTripPurpose* purpose );
    GKTripPurpose* getPurpose() const;

GKGenerationAttractionDataSet Class

função getTripGenerationArea

A assinatura da função foi alterada de:

GKGenerationAttractionCentroidType * getTripGenerationArea( int iCentroidId ) const;
para
GKGenerationAttractionCentroidType * getTripGenerationArea( const GKCentroid* centroid ) const;
função setTripGenerationArea

A assinatura da função foi alterada de:

void setTripGenerationArea( int iCentroidId, int iAreaId );
para
void setTripGenerationArea( const GKCentroid* centroid, GKGenerationAttractionCentroidType* area );
função useExternalData

A assinatura da função foi alterada de:

bool useExternalData( int iCentroidId ) const;
para
bool useExternalData( const GKCentroid* centroid ) const;
função setExternalData

A assinatura da função foi alterada de:

void setExternalData( int iCentroidId, QVector<ExternalData> & iExternalData );
para
void setExternalData( const GKCentroid* centroid, QVector<ExternalData> & iExternalData );
função setUseExternalData

A assinatura da função foi alterada de:

void setUseExternalData( int iCentroidId, bool iExternalData );
para
void setUseExternalData( const GKCentroid* centroid, bool iExternalData );
função setCarAvailabilityData

A assinatura da função foi alterada de:

void    setCarAvailabilityData( int iCentroidId, QVector<CAData> & iCAData );
para
void    setCarAvailabilityData( const GKCentroid* centroid, QVector<CAData> & iCAData );

void    setCarAvailabilityData( int iCentroidId, int purposeId, double iValue );
para
void    setCarAvailabilityData( const GKCentroid* centroid, int purposeId, double iValue );
função getCarAvailabilityData

A assinatura da função foi alterada de:

double  getCarAvailabilityData( int iCentroidId, int purposeId );
para
double  getCarAvailabilityData( const GKCentroid* centroid, int purposeId );
função setAttributeData

A assinatura da função foi alterada de:

void setAttributeData( int iCentroidId, qint32 iAttributeId, double iValue );
para
void setAttributeData( const GKCentroid* centroid, GKGenerationAttractionDataSetAttribute* attr, double iValue );
função setCarOwnership

A assinatura da função foi alterada de:

void setCarOwnership( int iCentroidId, int iCarOwnership );
para
void setCarOwnership( const GKCentroid* centroid, int iCarOwnership );
função setAverageHousehold

A assinatura da função foi alterada de:

void setAverageHousehold( int iCentroidId, double iAverageHousehold );
para
void setAverageHousehold( const GKCentroid* centroid, double iAverageHousehold );
função doBalancing

A assinatura da função foi alterada de:

bool    doBalancing( int iCentroidId ) const;
para
bool    doBalancing( const GKCentroid* centroid ) const;
função setDoBalancing

A assinatura da função foi alterada de:

void    setDoBalancing( int iCentroidId, bool iBalancing );
para
void    setDoBalancing( const GKCentroid* centroid, bool iBalancing );
função getCarOwnership

A assinatura da função foi alterada de:

int     getCarOwnership( int iCentroidId ) const;
para
int     getCarOwnership( const GKCentroid* centroid ) const;
função getAverageHousehold

A assinatura da função foi alterada de:

double  getAverageHousehold( int iCentroidId ) const;
para
double  getAverageHousehold( const GKCentroid* centroid ) const;
função addAttribute

A assinatura da função foi alterada de:

void addAttribute(int iAttributeId);
para
void addAttribute( GKGenerationAttractionDataSetAttribute* iAttribute );
função getAttributes

A assinatura da função foi alterada de:

const QVector<int> & getAttributes();
para
QVector<GKGenerationAttractionDataSetAttribute*> getAttributes();
função checkCreateData

A assinatura da função foi alterada de:

void checkCreateData( int iCentroidId );
para
void checkCreateData( const GKCentroid* centroid );
função getData

A assinatura da função foi alterada de:

const CentroidGenerationAttractionData * getData( int iCentroid ) const;
para
const CentroidGenerationAttractionData * getData( const GKCentroid* centroid ) const;
função getValue

A assinatura da função foi alterada de:

double getValue( int iCentroid, int iAttributeId ) const;
para
double getValue( const GKCentroid* centroid, GKGenerationAttractionDataSetAttribute* iAttribute ) const;
função setValue

A assinatura da função foi alterada de:

void setValue( int iCentroid, int iAttributeId, double iValue );
para
void setValue( const GKCentroid* centroid, GKGenerationAttractionDataSetAttribute* iAttribute, double iValue );
função setExternalData

A assinatura da função foi alterada de:

void setExternalData( int iCentroidId, int purpose, int mode, int period, double arrivals, double departures );
para
void setExternalData( const GKCentroid* centroid, int purpose, int mode, int period, double arrivals, double departures );
função getExternalData

A assinatura da função foi alterada de:

QPair<double,double> getExternalData( int iCentroidId, int purpose, int mode, int period, bool found ) const;
para
QPair<double,double> getExternalData( const GKCentroid* centroid, int purpose, int mode, int period, bool found ) const;

Classe CentroidGenerationAttractionData

atributo attributes

O acesso aos atributos agora é feito por meio das seguintes funções:

    void setValue( GKGenerationAttractionDataSetAttribute* attr, double value );
    double getValue( GKGenerationAttractionDataSetAttribute* attr ) const;
atributo tripGenerationArea

O acesso a tripGenerationArea agora é feito por meio das seguintes funções:

    void setArea( GKGenerationAttractionCentroidType* area );
    GKGenerationAttractionCentroidType* getArea() const;

GKDistributionCentroidType Class

função getDistributionFunction

A assinatura da função foi alterada de:

int getDistributionFunction( int iDataSet, int iPurpose, int iCA, int iTimePeriod );
para
GKFunctionCost* getDistributionFunction( const GKDistributionDataSet* dataset, const GKTripPurpose* purpose, qint32 iCA, const GKTimePeriod* timePeriod ) const;    
função setDistributionFunction

A assinatura da função foi alterada de:

void setDistributionFunction( int iDataSet, int iPurpose, int iCA, int iTimePeriod, int iFunctionId );
para
void setDistributionFunction( const GKDistributionDataSet* dataset, const GKTripPurpose* purpose, qint32 iCA, const GKTimePeriod* timePeriod, const GKFunctionCost* function ); 
função getModalSplitFunction

A assinatura da função foi alterada de:

int getModalSplitFunction( int iDataSet, int iPurpose, int iCA, int iTimePeriod );
para
GKFunctionCost* getModalSplitFunction( const GKDistributionDataSet* dataset, const GKTripPurpose* purpose, qint32 iCA, const GKTimePeriod* timePeriod ) const;
função setModalSplitFunction

A assinatura da função foi alterada de:

void setModalSplitFunction( int iDataSet, int iPurpose, int iCA, int iTimePeriod, int iFunctionId );
para
void setModalSplitFunction( const GKDistributionDataSet* dataset, const GKTripPurpose* purpose, qint32 iCA, const GKTimePeriod* timePeriod, const GKFunctionCost* function );

Classe GKControlPlan

função addControlMetering

A assinatura da função foi alterada de:

void addControlMetering( uint idmetering, GKControlMetering *meter );
para
void addControlMetering( GKMetering *metering, GKControlMetering *meter );
função removeControlMetering

A assinatura da função foi alterada de:

void removeControlMetering( uint idmetering );
para
void removeControlMetering( GKMetering *metering );
função removeControlMetering

A assinatura da função foi alterada de:

GKControlMetering * getControlMetering( uint /*idmetering*/ ) const;
para
GKControlMetering * getControlMetering( GKMetering* metering ) const;
função removeControlMetering

A assinatura da função foi alterada de:

const GKControlPlanJunctions & getControlJunctions() const;
para
QMap<uint, GKControlJunction*> getControlJunctions() const;
função removeControlMetering

A assinatura da função foi alterada de:

const GKControlPlanMeterings & getControlMeterings() const;
para
QMap<uint, GKControlMetering*> getControlMeterings() const;

Classe GKControlPhase

função addSignal

A assinatura da função foi alterada de:

void addSignal( uint idSignal, const QString & name = "", GKControlPhaseSignal::FlashingType flashing = GKControlPhaseSignal::eNo );
para
void addSignal( GKControlPlanSignal* signal, GKControlPhaseSignal::FlashingType flashing = GKControlPhaseSignal::eNo );

Classe GKControlPhaseSignal

função GKControlPhaseSignal

A assinatura da função foi alterada de:

GKControlPhaseSignal( uint, const QString &, FlashingType );
para
GKControlPhaseSignal( GKControlPlanSignal* s, FlashingType f );

Atributos públicos para funções

Atributos públicos não mais disponíveis:

    uint signal;
    QString name;
    FlashingType flashing;

As seguintes funções precisam ser usadas no lugar:

    void setSignal( GKControlPhaseSignal* signal );
    GKControlPhaseSignal* getSignal() const;

    void setFlashingType( GKControlPhaseSignal::FlashingType flashing );
    GKControlPhaseSignal::FlashingType getFlashingType() const;

Classe NodeOutput

As seguintes funções foram renomeadas para facilitar a compreensão da classe NodeOutput:

função getOutputs

A assinatura da função foi alterada de:

const QVector< NodeOutputElement > &        getOutputs() const;
para:
const QVector< NodeOutputElement > &        getElements() const;
função setOutputs

A assinatura da função foi alterada de:

void    setOutputs( const QVector< NodeOutputElement > & elements );
para:
void    setElements( const QVector< NodeOutputElement > & elements );

Classe NodeSlot

As seguintes funções foram renomeadas para facilitar a compreensão da classe NodeSlot:

função getObjectType

A assinatura da função foi alterada de:

EDataObjectType     getObjectType() const;
para:
EDataObjectType     getSlotType() const;

Classe NodeConnection

As seguintes funções foram renomeadas para facilitar a compreensão da classe NodeConnection:

função getFilter

A assinatura da função foi alterada de:

const NodeOutput &      getFilter() const;
para:
const NodeOutput &      getDiscardedElements() const;
função setFilter

A assinatura da função foi alterada de:

void        setFilter( const NodeOutput & filter );
para:
void        setDiscardedElements( const NodeOutput & iElements );

Classes Yutraffic

Foi implementada uma generalização do plugin Yutraffic e, portanto, as seguintes classes foram renomeadas:

  • SitrafficDetectionPatternTemplateNewCmd to OCITDetectionPatternTemplateNewCmd
  • SitrafficDetectionPatternNewCmd to OCITDetectionPatternNewCmd
  • SitrafficDetectionPatternTemplate to OCITDetectionPatternTemplate
  • SitrafficDetectionPattern to OCITDetectionPattern
  • SitrafficDetectionPatternEvent para OCITDetectionPatternEvent
  • SitrafficSimulationEvent para OCITSimulationEvent
Classe OCITDetectionPatternEvent

O início e a duração de um SitrafficDetectionPatternEvent foram estabelecidos usando as seguintes funções:

    void setWhen( int cycle, double secondInCycle );
    void setDuration( const GKTimeDuration & time );

Este não é mais o caso para OCITDetectionPatternEvent; a forma correta de definir um tempo de ativação é usar a função:

    void setFrom( int cycle, double secondInCycle );

Para desativar o evento, use a seguinte função:

    void setTo( int cycle, double secondInCycle );

Chamar qualquer um void setWhen( int cycle, double secondInCycle ); ou void setDuration( const GKTimeDuration & time ); resultará em comportamento indefinido.

alterações do Aimsun Next 20.0.X

A seguir, apresenta-se uma lista de todas as funções que foram alteradas ou adicionadas após o lançamento do Aimsun Next 20. As classes com alterações são:

Classe GKFunctionComponent

A classe GKFunctionComponent foi disponibilizada para scripting por meio das seguintes funções:

setDerived
void    setDerived( bool iValue );
getDerived
bool    getDerived() const;
setFunctionString
void    setFunctionString( QString iValue );
getFunctionString
const QString & getFunctionString() const;
setComponent1
void    setComponent1( qint32 iValue );
getComponent1
qint32  getComponent1() const;
setComponent2
void    setComponent2( qint32 iValue );
getComponent2
qint32  getComponent2() const;
setFactor
void    setFactor( double iValue );
getFactor
double  getFactor() const;
setOperation
void    setOperation( Operation operation );
getOperation
Operation   getOperation() const;

Onde Operação pode representar as seguintes operações:

enum Operation{eMultiply=0, eDivide, eAdd, eSubtract}

Classe DistributionScenario

As seguintes funções foram adicionadas para permitir a seleção das matrizes skim associadas a GKFunctionComponents via scripting:

getComponentSkim
GKODMatrix* getComponentSkim( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode, const GKFunctionComponent& iComponent ) const;
setComponentSkim
void setComponentSkim( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode, const GKFunctionComponent& iComponent, GKODMatrix& iSkim );
removeComponentSkim
void removeComponentSkim( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode, const GKFunctionComponent& iComponent );

Classe ModalSplitScenario

As seguintes funções foram adicionadas para permitir a seleção das matrizes de viagens e facilitar a seleção das matrizes de skims associadas a elas:

removeTripMatrices
void removeTripMatrices();
addTripMatrix
void addTripMatrix( GKODMatrix& iMatrix );
getSkim
GKODMatrix* getSkim( const GKODMatrix& iTripMatrix, const GKTransportationMode& iMode ,  const GKODMatrix::AssignmentOutput & iCostType ) const;
setSkim
void    setSkim( const GKODMatrix& iTripMatrix, const GKTransportationMode& iMode , GKODMatrix &iSkim );
removeSkim
void    removeSkim( const GKODMatrix& iTripMatrix, const GKTransportationMode& iMode ,  const GKODMatrix::AssignmentOutput & iCostType );
getComponentSkim
GKODMatrix* getComponentSkim( const GKODMatrix& iTripMatrix, const GKTransportationMode& iMode, const GKFunctionComponent& iComponent ) const;
setComponentSkim
void    setComponentSkim( const GKODMatrix& iTripMatrix, const GKTransportationMode& iMode, const GKFunctionComponent& iComponent, GKODMatrix& iSkim );
removeComponentSkim
void    removeComponentSkim( const GKODMatrix& iTripMatrix, const GKTransportationMode& iMode, const GKFunctionComponent& iComponent );
getUserDefinedSkim
GKODMatrix* getUserDefinedSkim( const GKODMatrix& iTripMatrix, const GKTransportationMode& iMode, const uint iColumnIndex ) const;
setUserDefinedSkim
void    setUserDefinedSkim( const GKODMatrix& iTripMatrix, const GKTransportationMode& iMode, const uint iColumnIndex, GKODMatrix& iSkim );
removeUserDefinedSkim
void    removeUserDefinedSkim( const GKODMatrix& iTripMatrix, const GKTransportationMode& iMode, const uint iColumnIndex );
getAllSkims
QVector<GKODMatrix*>    getAllSkims( const GKODMatrix& iTripMatrix, const GKTransportationMode& iMode ) const;

As seguintes funções foram adicionadas para selecionar o GKTimePeriod:

setTimePeriod
void    setTimePeriod( GKTimePeriod* iTimePeriod );

Recomendamos usá-lo em vez de:

setTimePeriod
void    setTimePeriod( quint32 timePeriod );

Classe MacroScenarioOutputData

As seguintes funções foram adicionadas para configurar o cenário para coletar (ou não) estatísticas de SubPath:

getCollectSubPathsStats
bool getCollectSubPathsStats() const;
setCollectSubPathsStats
bool setCollectSubPathsStats( bool iValue );

Classe CMacroTurning

A função a seguir foi adicionada para acessar a duração do tempo não controlado para o período em estudo (por exemplo, duração da simulação):

double  getUncontrolledTime() const;

Classe DTATurning

A função a seguir foi adicionada para acessar a duração do tempo não controlado para o período em estudo (por exemplo, Route Choice Interval):

double  getUncontrolledTime() const;

Classe DistributionOutput

createMatrix

A função:

QVector< GKODMatrix * > createMatrix( GKTripPurpose* iPurpose, bool temporary )

Agora aceita apenas GKTripPurposes bem definidos (diferentes de None):

QVector< GKODMatrix * > createMatrix( const GKTripPurpose& iPurpose, bool temporary )

MacroAdjustmentScenarioParams Class

A seguinte função foi adicionada para dar acesso ao grupo Congested Sections:

getCongestedSections
GKGroup * getCongestedSections() const;

Classe MacroPTStatsManager

As seguintes funções foram adicionadas para permitir (quando combinadas com uma MacroPTStatsView) o acesso às saídas de uma Static Transit Assignment (MacroPTExperiment)

getExperiment
MacroPTExperiment *  getExperiment() const;
getFromTime
QDateTime   getFromTime() const;
getToTime
QDateTime   getFromTime() const;
restaurar
void   restore( MacroPTExperiment * _experiment );

Classe MacroPTStatsView

Foi adicionada uma nova classe auxiliar para ajudar na coleta de estatísticas. A classe Macro Transit Stats View dá acesso a todas as estatísticas calculadas por uma Static Transit Assignment (MacroPTExperiment). Há 52 métodos que não são listados aqui para melhorar a legibilidade.

Classe GKFunctionCost

As seguintes funções foram adicionadas à classe GKFunctionCost para melhorar a consistência do scripting ao avaliar o Transit Delay Time:

evaluatePTDelayTime

double evaluatePTDelayTime(const GKFunctionCostContext * context, const GKPublicLine& iLine, const GKPTSectionData&iSection ) const;

evaluatePTDelayTime

double evaluatePTDelayTime(const GKFunctionCostContext * context, const GKPublicLine& iLine, const StopToStop& iSection) const;

evaluatePTDelayTime

double evaluatePTDelayTime(const GKFunctionCostContext * context, const GKSimulatedObject& iLine, const void* iSection) const;

Como as funções anteriores contêm informações explícitas dos tipos de argumento, devem ser preferidas à função:

evaluatePTDelayTime

double evaluatePTDelayTime(const GKFunctionCostContext * context, const GKBaseObject * iLine, const void *iSection , const bool fromGui, const bool iFromDTA ) const;

Classe GKPTStation

As funções set/get para os tempos de espera de conexão foram atualizadas na classe GKPTStation para melhorar sua legibilidade e consistência:

A função:

setWaitingTimes

void setWaitingTimes(const QMap< QPair<GKPublicLine*,GKPublicLine*>, double> & waitingTimes);

foi substituído pela função:

setWaitingTime

void setWaitingTime( const GKPublicLine& iFromLine, const GKPublicLine& iToLine, const double iWaitingTime );

A função:

getWaitingTimes

const QMap< QPair<GKPublicLine*,GKPublicLine*>, double> & getWaitingTimes() const;

foi substituído pela função:

getWaitingTime

double & getWaitingTimes(const GKPublicLine& iFromLine, const GKPublicLine& iToLine) const;

Classe DTAPTLineSegment

O acesso ao ponto de origem e ao ponto de destino foi tornado consistente com o contexto a que se referem. As seguintes funções foram removidas:

getDTAOrigin

const DTAPTStop * getDTAOrigin() const;

getDTADestination

const DTAPTStop * getDTADestination() const;

Enquanto as seguintes funções foram modificadas:

getOrigin

const GKBusStop* getOrigin() const;

foi substituído pela função:

getOrigin

const DTAPTStop* getOrigin() const;

E a função:

getDestination

const GKBusStop* getDestination() const;

foi substituído pela função:

getDestination

const DTAPTStop* getDestination() const;

Se o usuário precisar acessar o GKBusStop associado a um DTAPTStop, basta usar a função GKSimulatedObject::getMaster() em DTAPTStop.

Classe PTSection

O acesso ao ponto de origem e ao ponto de destino foi tornado consistente com o contexto a que se referem. As seguintes funções foram removidas:

getOriginPT

const PTStop * getOriginPT() const;

getDestinationPT

const PTStop * getDestinationPT() const;

Enquanto as seguintes funções foram modificadas:

getOrigin

const GKBusStop* getOrigin() const;

foi substituído pela função:

getOrigin

const PTStop* getOrigin() const;

E a função:

getDestination

const GKBusStop* getDestination() const;

foi substituído pela função:

getDestination

const PTStop* getDestination() const;

Se o usuário precisar acessar o GKBusStop associado a um PTStop, basta usar a função GKSimulatedObject::getMaster() em PTStop.

Classe GKModel

A forma padrão do identificador agora é armazenada no nível GKModel. As seguintes funções foram adicionadas:

setIdentifierForm

void setIdentifierForm( GKObject::IdentifierForm form );

getIdentifierForm

GKObject::IdentifierForm getIdentifierForm() const;

Classe GKObject

A forma padrão de identificador agora é tratada no nível de GKModel. GKObject::defaultIdentifierForm não está mais disponível.

GenerationAttractionOutput Class

As seguintes funções foram adicionadas para acessar o total de chegadas e partidas filtrando por GKTripPurpose, GKTransportationMode e se o valor é antes ou depois do balanceamento de partidas e chegadas (por padrão, depois do balanceamento):

getTotalArrivals

double  getTotalArrivals( const GKTripPurpose& iPurpose , const GKTransportationMode& iMode, bool iBeforeBalance = false  )     const;

getTotalArrivalsCA

double  getTotalArrivalsCA( const GKTripPurpose& iPurpose , const GKTransportationMode& iMode, bool iBeforeBalance = false )    const;

getTotalArrivalsNCA

double  getTotalArrivalsNCA( const GKTripPurpose& iPurpose , const GKTransportationMode& iMode, bool iBeforeBalance = false )   const;

getTotalDepartures

double  getTotalDepartures( const GKTripPurpose& iPurpose , const GKTransportationMode& iMode,  bool iBeforeBalance = false )   const;

getTotalDeparturesCA

double  getTotalDeparturesCA( const GKTripPurpose& iPurpose , const GKTransportationMode& iMode, bool iBeforeBalance = false )  const;

getTotalDeparturesNCA

double  getTotalDeparturesNCA( const GKTripPurpose& iPurpose , const GKTransportationMode& iMode, bool iBeforeBalance = false ) const;

Classe NodeOutputElement

As seguintes funções foram adicionadas para completar a criação de scripts desta classe:

getOutputType

double  getOutputType() const;

setOutputType

double  setOutputType( const EDataObjectType iOutputType ) const;

setDiscriminant

QVector<FourSteps::DataDiscriminant>    getDiscriminants() const;

Arquivo FourStepsUtil

Este arquivo foi adicionado para centralizar todas as definições que são comuns a todas as classes e métodos definidos no scripting do plug-in FourSteps. Como FourSteps::DataDiscriminant ou EDataObjectType.

Classe NodeSlot

As seguintes funções foram adicionadas para completar a criação de scripts desta classe:

função getObjectType
EDataObjectType getObjectType() const;
função getConnectionType
EConnectionType getConnectionType() const;
função getMode
ESlotMode getMode() const;
função isCompatible
bool isCompatible( const NodeSlot * iNodeSlot ) const;
função getConnections
QVector< NodeConnection * > getConnections() const;
função getOutputElements
NodeOutput      getOutputElements() const;

Classe NodeCompute

As seguintes funções foram adicionadas para completar a criação de scripts desta classe:

função getInputSlots
QVector< NodeSlot * >       getInputSlots() const;
função getOutputSlots
QVector< NodeSlot * >       getOutputSlots() const;
função getTarget
GKObject*                   getTarget();
função getSlotOutputElements
QVector<NodeOutputElement>  getSlotOutputElements( const QString &slotId ) const;
função getOutputObjects
QVector<GKObject*> getOutputObjects( const QString & slotId ) const;

Classe NodeConnection

As seguintes funções foram adicionadas para completar a criação de scripts desta classe:

função getFilter
const NodeOutput &  getFilter() const;
função setFilter
void                setFilter( const NodeOutput & filter );

Classe GKControllerParsSitrafficOffice

As seguintes funções foram adicionadas para completar a criação de scripts desta classe:

função setProtocolFilepath
    void setProtocolFilepath( const QString& filepath );
função getProtocolFilepath
    const QString& getProtocolFilepath() const;
função setGraphicalViewConfigurations
    void setGraphicalViewConfigurations( const QStringList& configurations );
função getGraphicalViewConfigurations
    const QStringList& getGraphicalViewConfigurations() const;
função setProtocolViewConfigurations
    void setProtocolViewConfigurations( const QStringList& configurations );
função getProtocolViewConfigurations
    const QStringList& getProtocolViewConfigurations() const;

Alterações do Aimsun Next 20

A seguir há uma lista de todas as funções que mudaram entre o Aimsun Next 8.4 e o Aimsun Next 20 para ajudar a atualizar scripts antigos facilmente. As classes com alterações são:

Classe GKCatalog

função findObjectsByExternalId

A função agora retorna todos os objetos com o mesmo id externo para um determinado GKType, em vez de apenas um.

Classe GKGeometryConfiguration

função existente

A assinatura da função foi alterada de:

bool existent(quint32 val);

para

bool existent( const GKObject* object);
função inexistente

A assinatura da função foi alterada de:

bool nonexistent(quint32 val);

para:

bool nonexistent( const GKObject* object);
função getExistent

A assinatura da função foi alterada de:

const QSet<quint32> & getExistent() const;

para:

QVector<GKObject*> getExistent() const;
função getNonExistent

A assinatura da função foi alterada de:

const QSet<quint32> & getNonExistent() const;

para:

QVector<GKObject*> getNonExistent() const;
função addExistent

As assinaturas das funções foram alteradas de:

void addExistent( quint32 id );

para:

void addExistent( GKObject* object );
função addNonExistent

As assinaturas das funções foram alteradas de:

void addNonExistent( quint32 id );

para:

void addNonExistent( GKObject* object );
função removeExistent

As assinaturas das funções foram alteradas de:

void removeExistent( quint32 id );

para:

void removeExistent( GKObject* object );
função removeNonExistent

As assinaturas das funções foram alteradas de:

void removeNonExistent( quint32 id );

para:

void removeNonExistent( GKObject* object );

Classe GKProblemNet

função getManualSections

A assinatura da função foi alterada de:

const QVector<uint> & getManualSections() const;

para

QVector<GKSection*> getManualSections() const;
função setManualSections

A assinatura da função foi alterada de:

void setManualSections( QVector<uint> sections );

para

void setManualSections( const QVector<GKSection*>& sections );
função addManualSection

A assinatura da função foi alterada de:

void addManualSection( uint aId );

para

void addManualSection( GKSection* section );
função removeManualSection

A assinatura da função foi alterada de:

void removeManualSection( uint aId );

para

void removeManualSection( GKSection* section );
função containsManualSection

A assinatura da função foi alterada de:

bool containsManualSection( uint aId ) const;

para

bool containsManualSection( GKSection* section ) const;

Classe GKSimulationArea

função getManualSections

A assinatura da função foi alterada de:

const QVector<quint32> & getManualSections() const;

para

QVector<GKSection*> getManualSections() const;
função setManualSections

A assinatura da função foi alterada de:

void setManualSections( QVector<quint32> sections );

para

void setManualSections( const QVector<GKSection*>& sections );
função addManualSection

A assinatura da função foi alterada de:

void addManualSection( quint32 aId );

para

void addManualSection( GKSection* section );
função removeManualSection

A assinatura da função foi alterada de:

void removeManualSection( quint32 aId );

para

void removeManualSection( GKSection* section );
função containsManualSection

A assinatura da função foi alterada de:

bool containsManualSection( quint32 aId ) const;

para

bool containsManualSection( GKSection* section ) const;

Classe GKTrafficArrivals

função setReplication

A assinatura da função foi alterada de:

void setReplication( uint id );

para

void setReplication( GKReplication* replication );
função getReplication

A assinatura da função foi alterada de:

uint getReplication() const;

para

const GKReplication* getReplication() const;

Classe AdjustmentMeasurementContext

O tipo MeasurementType agora pode representar mais um tipo de medição: eTotalODCount (associado ao termo OD agregado por intervalo de tempo):

enum MeasurementType{ eNone, eSection, eTurning, eDetector, eOriginCount, eDestinationCount, eBoarding, eAlighting, ePathLengthDistribution, ePTDetector, eODProportions, eSuperNodeTrajectory, eGKRoute, eTotalODCount, eODCount }

Classe MacroAdjustmentScenario

As seguintes funções foram movidas para MacroAdjustmentExperiment:

Função getParams
    const MacroAdjustmentScenarioParams & getParams() const;
Função setParams
    void setParams( const MacroAdjustmentScenarioParams & params ); 
Função setTripMatrix
    void setTripMatrix( GKODMatrix *iMatrix );
Função tripMatrix
    GKODMatrix* tripMatrix() const;
Função setTripMatrixReliability
    void setTripMatrixReliability( double iFactor );
Função tripMatrixReliability
    double tripMatrixReliability() const;
Função setTripMatrixCentroidGrouping
    void setTripMatrixCentroidGrouping( GKGroup *iGroup );
Função tripMatrixCentroidGrouping
    GKGroup* tripMatrixCentroidGrouping() const;

As seguintes funções foram adicionadas:

Função getInitialDateTime
    QDateTime getInitialDateTime() const;
Função getDuration
    GKTimeDuration getDuration() const;
Função getFinishDateTime
    QDateTime getFinishDateTime() const;
Função storeOutput
    bool storeOutput() const;
Função setStoreOutput
    void setStoreOutput( bool iValue ); 

Classe MacroAdjustmentExperiment

As seguintes funções foram adicionadas:

Função getParams
    const MacroAdjustmentScenarioParams & getParams() const;
Função setParams
    void setParams( const MacroAdjustmentScenarioParams & params ); 
Função setTripMatrix
    void setTripMatrix( GKODMatrix *iMatrix );
Função tripMatrix
    GKODMatrix* tripMatrix() const;
Função setTripMatrixReliability
    void setTripMatrixReliability( double iFactor );
Função tripMatrixReliability
    double tripMatrixReliability() const;
Função setTripMatrixCentroidGrouping
    void setTripMatrixCentroidGrouping( GKGroup *iGroup );
Função tripMatrixCentroidGrouping
    GKGroup* tripMatrixCentroidGrouping() const;
Função setDefaultParamsForAllUserClasses
    void setDefaultParamsForAllUserClasses( float alpha, float tripLengthDistributionElasticity );

MacroAdjustmentScenarioUserClassParams Class

getPerCentroidEntranceData Function

A assinatura da função foi alterada de:

    GKCentroidVector * getPerCentroidEntranceData( GKModel * iModel ) const;

para

    GKCentroidVector * getPerCentroidEntranceData() const;
Função getPerCentroidExitData

A assinatura da função foi alterada de:

    GKCentroidVector * getPerCentroidExitData(GKModel *iModel) const;

para

    GKCentroidVector * getPerCentroidExitData() const;
Função getODMaxDeviations

A assinatura da função foi alterada de:

    GKODMatrix * getODMaxDeviations( GKModel * iModel ) const;

para

    GKODMatrix * getODMaxDeviations() const;

MacroAdjustmentScenarioParams Class

As funções a seguir foram movidas para MacroAdjustmentScenario:

Função getInitialDateTime
    QDateTime getInitialDateTime() const;
Função getDuration
    GKTimeDuration getDuration() const;
Função storeOutput
    bool storeOutput() const;
Função setStoreOutput
    void setStoreOutput( bool iValue );

A função a seguir foi movida para MacroAdjustmentExperiment:

Função setDefaultParamsForAllUserClasses
    void setDefaultParamsForAllUserClasses( double alpha, double tripLengthDistributionElasticity);

As seguintes funções foram alteradas:

Função setDetectorGrouping

A assinatura da função foi alterada de:

    void setDetectorGrouping( qint32 iGrouping );

para

    void setDetectorGrouping(  GKGroupingType* grouping  );
Função setCentroidGrouping

A assinatura da função foi alterada de:

    void setCentroidGrouping( qint32 iGrouping );

para

    void setCentroidGrouping( GKGroupingType* grouping  );
Função getDetectorGrouping

A assinatura da função foi alterada de:

    qint32 getDetectorGrouping() const;

para

    GKGroupingType* getDetectorGrouping() const;
Função getCentroidGrouping

A assinatura da função foi alterada de:

    qint32 getCentroidGrouping() const;

para

    GKGroupingType* getCentroidGrouping() const;

A seguinte função foi removida:

Função setDetectorCoverageThreshold
    void setDetectorCoverageThreshold( int value );

Classe MacroPTAdjustmentScenario

As seguintes funções foram movidas para MacroPTAdjustmentExperiment:

Função getMatrixDeviations
    QMap< GKUserClass*, GKODMatrix* > getMatrixDeviations() const;
Função setMatrixDeviations
    void setMatrixDeviations( const QMap< GKUserClass*, GKODMatrix * > & iMatrixDeviations );
Função getDeviationType
    MatrixDeviation::MatrixDeviationValueType getDeviationType() const;
Função setDeviationType
    void setDeviationType( MatrixDeviation::MatrixDeviationValueType iType );

MacroPTAdjustmentExperiment Class

As seguintes funções foram adicionadas:

Função getMatrixDeviations
    QMap< GKUserClass*, GKODMatrix* > getMatrixDeviations() const;
Função setMatrixDeviations
    void setMatrixDeviations( const QMap< GKUserClass*, GKODMatrix * > & iMatrixDeviations );
Função getDeviationType
    MatrixDeviation::MatrixDeviationValueType getDeviationType() const;
Função setDeviationType
    void setDeviationType( MatrixDeviation::MatrixDeviationValueType iType );

Classe DistributionScenario

As seguintes funções foram adicionadas:

Função getSkim

        GKODMatrix* getSkim( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode ,  const GKODMatrix::AssignmentOutput & iCostType ) const;

setSkimFunction

        void setSkim(const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode , GKODMatrix &iSkim ) const;

Função removeSkim

        void removeSkim( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode ,  const GKODMatrix::AssignmentOutput & iCostType );

Função getUserDefinedSkim

        GKODMatrix* getUserDefinedSkim( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode, const uint iColumnIndex ) const;

Função setUserDefinedSkim

        void setUserDefinedSkim( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode, const uint iColumnIndex, GKODMatrix& iSkim );

Função removeUserDefinedSkim

        void removeUserDefinedSkim( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode, const uint iColumnIndex );

Função getAllSkims

        QVector<GKODMatrix*> getAllSkims( const GKGenerationAttractionVector& iGAVector , const GKTransportationMode& iMode ) const;

Recomendamos usá-las para definir as Matrizes de Skims em vez de:

Função setInitialUserSkim

        void setInitialUserSkim( const QMap<GKUserClass*, GKODMatrix *> & iSkims );

Função getInitialUserSkims

        QMap<GKUserClass*, GKODMatrix*> getInitialUserSkims() const;

Função getInitialUserSkim

        getInitialUserSkim( GKUserClass * iUser ) const;

Alterações do Aimsun Next 8.4

A seguir há uma lista de todas as funções que mudaram entre o Aimsun Next 8.3 e o Aimsun Next 8.4 para ajudar a atualizar facilmente scripts antigos. As classes com alterações são:

Classe GKScenarioInputData

função getRecordSimulation

A função para definir ou obter se uma simulação dinâmica está sendo gravada foi movida da classe GKScenarioInputData para a classe GKReplication. A assinatura de ambas as funções permaneceu a mesma e é:

bool getRecordSimulation() const;

void setRecordSimulation( bool aRecordSimulation );

Classe AdjustmentMeasurementContext

O tipo MeasurementType agora pode representar mais dois tipos de medição: eGKRoute (associado a contagens de subcaminhos) e eODCount (associado ao termo OD):

enum MeasurementType{ eNone, eSection, eTurning, eDetector, eOriginCount, eDestinationCount, eBoarding, eAlighting, ePathLengthDistribution, ePTDetector, eODProportions, eSuperNodeTrajectory, eGKRoute, eODCount }

Alterações introduzidas antes do Aimsun Next 8.4

A seguir está uma lista de todas as funções que foram alteradas entre versões anteriores ao Aimsun Next 8.4 para ajudar a atualizar scripts antigos facilmente. As classes com alterações são:

Além disso, houve alterações em funções usadas para simulando e para criar comandos.

Classe GKFolder

Alterações do Aimsun 8.1.1

função getContentsTypes

A função getContentsTypes agora tem um quarto parâmetro para incluir o modelo de demanda de viagens.

Assinatura antiga:

QVector<GKType*> getContentsTypes( bool staticOn = true, bool mesoOn = true, bool microOn = true ) const;

Nova assinatura:

QVector<GKType*> getContentsTypes( bool staticOn = true, bool mesoOn = true, bool microOn = true, bool travelDemand = true ) const;

Classe GKPublicLine

Alterações do Aimsun 8.1.1

função createPTSections

As funções createPTSections disponíveis no Aimsun 8.0 não estão mais disponíveis no Aimsun 8.1, pois GKPTSection foi removido.

Em vez de chamar a função não disponível:

void createPTSections( const QList<GKSection*> & route, const QVector<GKBusStop*> & stops );

as seguintes funções podem ser usadas:

publicLine.unsetPTLineForSections()
publicLine.setRoute( route )
publicLine.setPTLineForSections()
publicLine.setStops( stops )

Classe GKNode

Alterações do Aimsun 8.1.2

função getSignalPos

A assinatura de getSignalPos foi alterada de:

uint getSignalPos( uint idSignal ) const;

para:

uint getSignalPos( uint idSignal, uint scenarioId = 0 ) const;

para incluir configurações de geometria.

    /*! Returns the resulting vector of calculating the vectorial product between this vector and v2 */
    GKVector prodVect( const GKVector & v2 ) const; //producto vectorial entre this y v2.
    /*! Returns the scalar product between to vectors*/
    double prodEsc( const GKVector & v2) const;

GKVector

Alterações do Aimsun 8.1.1

Função prodVect

A função prodVect com assinatura:

    GKVector prodVect( const GKVector & v2 ) const;

foi substituído pela função:

    GKVector crossProduct( const GKVector & v2 ) const;
Função prodEsc

A função prodEsc com assinatura:

    double prodEsc( const GKVector & v2) const;

foi substituído pela função:

    double dotProduct( const GKVector & v2) const;

QString

Alterações do Aimsun 8.2

O objeto QString foi descontinuado. A nova versão transforma automaticamente objetos QString em Python Strings e, portanto, seu uso pode ser exatamente como uma Python String. No exemplo:

    eid = section.getExternalId().toInt()

deve ser substituído por

    eid = int( section.getExternalId() )

QTime

Alterações do Aimsun 8.2

O uso de QTime foi alterado. O construtor padrão QTime() retorna um objeto QTime inválido. Portanto, qualquer método aplicado a ele falhará. Para criar um QTime corretamente, as horas e os minutos devem ser fornecidos.

    qtime = QTime(0,0)

GKSection

função GKSection getLanesLength

A função:

GKCoord getLanesLength() const;

foi descontinuado no Aimsun Next 8.3 e deve ser alterado para getLanesLength2D() ou getLanesLength3D() dependendo da saída esperada.

A principal alteração no Aimsun 8.3 foi a descontinuação de todas as diferentes classes de scripting para executar os procedimentos de cálculo (simulações dinâmicas, alocação, ajuste, recuperação de saídas etc.).

Essas classes e funções foram substituídas por um mecanismo, chamado Kernel Actions, para que os diferentes procedimentos de cálculo (simulações dinâmicas, alocação, ajuste etc.) forneçam uma interface comum para comandar sua execução.

GKSystem tem um método, GKSystem::executeAction, que permite executar uma Kernel Action para um objeto-alvo ou uma seleção de objetos.

Todos os objetos que executam um cálculo (replicação, experimento de atribuição, experimento de ajuste etc.) implementam uma Ação do Kernel, chamada execute, que inicia o cálculo. Isso tem o mesmo efeito que clicar com o botão direito no objeto e selecionar o item de menu que inicia o cálculo (executar simulação em lote, executar atribuição estática de tráfego, executar ajuste OD estático etc.).

Isso torna particularmente fácil executar tarefas como, por exemplo, iniciar uma simulação em lote de uma replicação:

replication = model.getCatalog().find( 1001 )
GKSystem.getSystem().executeAction( "execute", replication, [], "" )

Para executar um conjunto de simulações em sequência, basta fornecer uma lista de replicações como terceiro argumento. Observe que você precisa declarar uma das replicações como o segundo argumento, embora somente as que estão na lista (terceiro argumento), se ela não estiver vazia, serão simuladas. O segundo argumento precisa ser um objeto do mesmo tipo que os do terceiro argumento.

replication1 = model.getCatalog().find( 1001 )
replication2 = model.getCatalog().find( 1002 )
GKSystem.getSystem().executeAction( "execute", replication1, [replication1, replication2], "" )

Para executar uma simulação microscópica em modo animado, basta substituir a ação execute pela ação play.

Vale observar que Kernel Actions também são acessíveis pela linha de comando (prompt do DOS ou Terminal); portanto, você não precisa escrever um script se quiser executar programaticamente uma simulação que já esteja configurada.

"Aimsun Next" --verbose --project test.ang --command execute --target 1001

Comandos para criar todos os tipos de cenários e experimentos agora estão disponíveis.

Além disso, as funções doit e undoit não estão mais disponíveis, e a função model.getCommander().addCommand deve ser usada em seu lugar. Por exemplo, para criar um Experimento de Ajuste de Transporte Público Macro, o seguinte código poderia ser usado:

cmd = model.createNewCmd( model.getType( "MacroPTAdjustmentExperiment" ));
cmd.setScenario( scenario );
model.getCommander().addCommand( cmd );
res = cmd.createdObject();